Отличие черно-белой XML-схемы от XSD-схемы

Некоторое время я сокращался, но не мог найти учебники или ресурсы по XML-схеме, предоставленные Microsoft по этой ссылке. Это выглядит как:

<Schema xmlns="urn:schemas-microsoft-com:xml-data" 
  xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <AttributeType name='studentID' dt:type='string' required='yes'/>
  <ElementType name='name' content='textOnly'/>
  <ElementType name='GPA' content='textOnly' dt:type='float'/>
  <ElementType name='student' content='mixed'>
    <attribute type='studentID'/>
    <element type='name'/>
    <element type='GPA'/>
  </ElementType>
  <ElementType name='class' content='eltOnly'>
    <element type='student'/>
  </ElementType>
</Schema>  

Я знаю, что это не рекомендованный W3C формат XSD... Я сталкиваюсь с трудностью, чтобы знать, как читать и делать из него стандартный формат XSD. Я также хочу генерировать классы C# из этого.

Любая помощь будет оценена. Это действительно смутило мое понимание схем XML.

1 ответ

Решение

Это схема XDR. Если вы хотите преобразовать этот файл в XML-схему W3C в Windows с установленной платформой.NET или Visual Studio SDK, вы можете использовать xsd.exe инструмент командной строки т.е. xsd.exe schema.xdr создаст соответствующий schema.xsd файл. Тогда вы можете подать заявку xsd.exe на schema.xsd создать файлы классов в C# или VB.NET для использования с System.Xml.Serialization.XmlSerializer,

Когда я запускаю VS 2012 xsd.exe в вашем примере создается следующая схема W3C XSD:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="class">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="student" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="name" type="xs:string" minOccurs="0" msdata:Ordinal="1" />
                    <xs:element name="GPA" type="xs:double" minOccurs="0" msdata:Ordinal="2" />
                  </xs:sequence>
                  <xs:attribute name="studentID" type="xs:string" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
Другие вопросы по тегам