как заполнить таблицы в xmlDataDocument.DataSet - PullRequest
0 голосов
/ 12 мая 2010

Я работаю над приложением C #, которое использует файл схемы XML в качестве базы данных для определений сообщений и файл XML в качестве баз данных для данных сообщений.

Я следовал найденному примеру: http://msdn.microsoft.com/en-us/library/system.xml.xmldatadocument.dataset%28v=VS.100%29.aspx

Я написал свой собственный файл xsd и XML. Я использовал тот же подход в примере, прочитал файл xsd и затем загрузил XML-файл. Но у меня нет никаких «строк», созданных для моей таблицы данных. Я использовал отладчик, чтобы пройти через мои коды. Когда я получаю свой DataTable, использую xmlDataDocument.DataSet.Tables ["имя таблицы"], свойство Rows этих таблиц равно 0.

Кто-нибудь знает, что может привести к тому, что таблицы DataSet не будут заполнены после того, как я загрузил xmlDataDocument с файлом XML?

Вот фрагмент файла XSD:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="test"
    targetNamespace="http://tempuri.org/test.xsd"
      elementFormDefault="qualified"
    xmlns="http://tempuri.org/test.xsd"
    xmlns:mstns="http://tempuri.org/test.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>

<xs:element name="reboot_msg">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="header_s">
          <xs:sequence>

           <xs:element name="que_name">
            <xs:simpleType>
             <xs:restriction base="xs:string">
              <xs:minLength value="4"/>
               <xs:maxLength value="8"/>
              </xs:restriction>
             </xs:simpleType>
            </xs:element>

        <xs:element name="priority" type="xs:unsignedShort"/>

          </xs:sequence>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>

а вот фрагмент файла XML:

<?xml version="1.0" standalone="yes"?>
<test xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >

  <reboot_msg>
    <message_length>16</message_length>
    <message_type>7</message_type>
    <message_sequence>0</message_sequence>
    <que_name>NONE</que_name>
    <priority>5</priority>
  </reboot_msg>

Это может быть файл XML и XSD, который я создал, что-то пропустил. Пожалуйста, помогите.

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 апреля 2012

XmlDataDocument теперь устарела.

Используйте XmlDocument, где это возможно. Используйте DataSet.ReadXml (), DataSet.ReadSchema ().

0 голосов
/ 12 мая 2010

Чтобы использовать XML-схему с XmlDataDocument, вам нужно только создать схему в конструкторе DataSet. XmlDataDocument и DataSet в целом могут обрабатывать только часть XML-схемы. Чтобы ваша схема использовала только это подмножество, вы должны создать ее с помощью DataSet Designer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...