簡體   English   中英

vb.net數據表的XML文件中的XML模式

[英]XML Schema from XML file for vb.net datatable

好的,所以甚至不確定如何問這個問題,但是我正在尋求有關如何創建XML模式文件的幫助,以便在將XML文件加載到基於所述模式的數據集中時,表中的數據與我一樣。希望是這樣。

這是XML數據:

<Cabinet>
   <Name>DANCE</Name>
   <MappedTypes>
      <TypeMapInfo>
         <TypeName>HIP HOP</TypeName>
         <DefaultInstitution />
         <DefaultAuthority>511</DefaultAuthority>
         <DefaultDocumentName />
      </TypeMapInfo>
      <TypeMapInfo>
         <TypeName>JITTERBUG</TypeName>
         <DefaultInstitution />
         <DefaultAuthority>511</DefaultAuthority>
         <DefaultDocumentName />
      </TypeMapInfo>
   </MappedTypes>
</Cabinet>

基本上,我希望它顯示在數據表中:

Cabinet      | Type Name | DefaultInstitution | DefaultAuthority | DefaultDocumentName
Dance        | HIP HOP   |                    | 511              |                    
Dance        | JITTERBUG |                    | 511              |                      

到目前為止,這就是我所擁有的,但是它只加載櫃子下面列出的第一個類型名稱:

<xs:element maxOccurs="unbounded" name="Cabinet">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Name" type="xs:string" />
      <!--<xs:element name="MappedTypes"/>
      <xs:element name="TypeMapInfo"/>-->
      <xs:element  name="TypeName" type="xs:string" />
      <xs:element name="DefaultInstitution" type="xs:string" />
      <xs:element name="DefaultAuthority" type="xs:unsignedShort" />
      <xs:element name="DefaultDocumentName" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

如果您希望xml對它有效,則必須更正xsd,可能您的數據表僅顯示<Name>元素,因為這是xsd中唯一為xml定義的元素。

以下xsd適合您的xml嘗試一下:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="http://your_namespace" 
           targetNamespace="http://your_namespace" 
           elementFormDefault="qualified" 
           attributeFormDefault="unqualified">

    <xs:element name="Cabinet" maxOccurs="unbounded">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Name" type="xs:string"/>
                <xs:element name="MappedTypes">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="TypeMapInfo" maxOccurs="unbounded" minOccurs="0">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="TypeName" type="xs:string"/>
                                        <xs:element name="DefaultInstitution" type="xs:string"/>
                                        <xs:element name="DefaultAuthority" type="xs:unsignedShort"/>
                                        <xs:element name="DefaultDocumentName" type="xs:string"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

編輯:

我查看了您的問題並再次閱讀了您的評論,我意識到也許您在尋找適合您XSD的XML而不是適合您XML的XSD,因為我在第一次嘗試時就做出了回應。 因此,如果您有一個類似的XSD:

<xs:element maxOccurs="unbounded" name="Cabinet">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Name" type="xs:string" />
      <xs:element  name="TypeName" type="xs:string" />
      <xs:element name="DefaultInstitution" type="xs:string" />
      <xs:element name="DefaultAuthority" type="xs:unsignedShort" />
      <xs:element name="DefaultDocumentName" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

您必須將XML更改為:

<Cabinet>
 <Name>DANCE</Name>
 <TypeName>HIP HOP</TypeName>
 <DefaultInstitution/>
 <DefaultAuthority>511</DefaultAuthority>
 <DefaultDocumentName/>
</Cabinet>
<Cabinet>
 <Name>DANCE</Name>
 <TypeName>JITTERBUG</TypeName>
 <DefaultInstitution/>
 <DefaultAuthority>511</DefaultAuthority>
 <DefaultDocumentName/>
</Cabinet>

希望這可以幫助,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM