Отображение XSD в БД через C#
Привет,
У меня есть XML-файл, как показано ниже.
<HouseInfo> <HouseNumber>1</HouseNumber> <HouseLog> <RoomInfo> <RoomNumber>1</RoomNumber> <Timestamp>2017-12-29T12:16:51</Timestamp> <Furnitures> <Table> <Color>Blue</Color> <Height>23</Height> </Table> </Furnitures> <ToolCounts> <Scope>1</Scope> </ToolCounts> </RoomInfo> <RoomInfo> <RoomNumber>2</RoomNumber> <Timestamp>2017-12-29T15:43:23</Timestamp> <Furnitures> <Table> <Color>Black</Color> <Height>35.2</Height> </Table> </Furnitures> <ToolCounts> <Scope>1</Scope> </ToolCounts> <Bathroom> <Code>1234</Code> <Faucets>3></Faucets> </Bathroom> </RoomInfo> <RoomInfo> <RoomNumber>2</RoomNumber> <Timestamp>2017-12-29T15:45:48</Timestamp> <Furnitures> <Table> <Color>Red</Color> <Height>98.56</Height> </Table> </Furnitures> <ToolCounts> <Scope>1</Scope> </ToolCounts> <Bathroom> <Code>1234</Code> <Faucets>2></Faucets> </Bathroom> </RoomInfo> </HouseLog> </HouseInfo>
Я создал файл XML-схемы, как показано ниже.
<pre lang="HTML">
<?xml version="1.0" encoding="utf-8"?> <!-- Created with Liquid Technologies Online Tools 1.0 (https://www.liquid-technologies.com) --> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="HouseInfo"> <xs:complexType> <xs:sequence> <xs:element name="HouseNumber" type="xs:unsignedByte" /> <xs:element name="HouseLog"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="RoomInfo"> <xs:complexType> <xs:sequence> <xs:element name="RoomNumber" type="xs:unsignedByte" /> <xs:element name="Timestamp" type="xs:dateTime" /> <xs:element name="Furnitures"> <xs:complexType> <xs:sequence> <xs:element name="Table"> <xs:complexType> <xs:sequence> <xs:element name="Color" type="xs:string" /> <xs:element name="Height" type="xs:decimal" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ToolCounts"> <xs:complexType> <xs:sequence> <xs:element name="Scope" type="xs:unsignedByte" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element minOccurs="0" name="Bathroom"> <xs:complexType> <xs:sequence> <xs:element name="Code" type="xs:unsignedShort" /> <xs:element name="Faucets" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
После создания XSD - файла я использовал XSD2DB.exe чтобы создать все таблицы в MS SQL Server.
У меня есть приложение на C#, и в этом SQLXMLBulkLoad библиотека используется для загрузки XML-содержимого в БД. Я передаю XSD и XML в качестве параметров функции Execute. Теперь я получаю ниже ошибки.
relationship expected on 'HouseLog'.
Что я уже пробовал:
Я попробовал добавить
sql:is-constant="1"к HouseLog и некоторые другие теги, и это удаляет вышеуказанную ошибку, но вызывает еще одну ошибку, говоря, что он не может найти конкретные столбцы в БД, даже если они существуют.
Поэтому я думаю, что проблема в том, что мне нужно правильно определить отношения в XSD, и я понятия не имею, как это сделать. Надеюсь, кто-нибудь сможет предложить какие-то решения.
Пожалуйста, дайте мне несколько примеров, так как я совершенно новичок в этой схеме для разговора с БД и у меня закончились идеи. Заранее спасибо.