2016-10-27 24 views
1

我有以下兩個(不變),XML與相同命名空間的文件,我需要創建一個XSD:用xsd:any或xsd:sequence混合xsd:choice?

僞XML例子#1:

<Project> 
    <ProjectInformation/> 
    <HistoryEntry/> 
    <UserFiles/> 
</Project> 

僞XML例子# 2:

<Project> 
    <Installations/> 
</Project> 

沒有HistoryEntryUserFiles元素,我會用xsd:choiceProjectInformationInstallations。但是如何將HistoryEntryUserFiles元素帶入遊戲?

是否有標準的XSD機制允許這樣做?

回答

0

無序被高估。只需使用xs:sequence而不是xs:any避免XSD 1.0獨特的顆粒歸屬違規:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Project"> 
    <xs:complexType> 
     <xs:choice> 
     <xs:sequence> 
      <xs:element name="ProjectInformation"/> 
      <xs:element name="HistoryEntry"/> 
      <xs:element name="UserFiles"/> 
     </xs:sequence> 
     <xs:element name="Installations"/> 
     </xs:choice> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
+0

謝謝,我不知道我可以在選擇混合順序和元素。現在對我的作品。 – Alex