2016-10-27 6 views
1

Ich habe die folgenden zwei (unveränderbar) XML-Dateien mit gleichen Namespace, die ich brauche, um ein XSD zu erstellen:Mischen von xsd: Wahl mit xsd: any oder xsd: sequence?

pseudo-xml Beispiel # 1:

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

pseudo-xml Beispiel # 2:

<Project> 
    <Installations/> 
</Project> 

Ohne das HistoryEntry und UserFiles Element, würde ich xsd:choice für ProjectInformation undverwenden. Aber wie kann HistoryEntry und UserFiles Element in das Spiel bringen ?!

Gibt es einen Standard-XSD-Mechanismus, der dies ermöglicht?

Antwort

0

Ungeordnet ist überbewertet. Verwenden Sie einfach xs:sequence statt xs:any einzigartige Partikel Zuschreibung Verletzungen in XSD 1.0 zu vermeiden:

<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

Danke, ich war nicht bewusst, dass ich Sequenz und Element bei der Wahl mischen sich jetzt für mich .. Works. – Alex