Reference til "abstrakt" gruppe
HejsaJeg sidder og arbejder på et schema der skal bruges ifm. et workflowmanagement system, men jeg er løbet ind i et problem.
Jeg har et element der hedder <token> der kan være af 13 forskellige typer. Jeg vil derfor gerne lave en reference til de forskellige subpatterns:
<xs:element name="token">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="xpnml:tokenplace1"/>
<xs:element ref="xpnml:tokenplace2"/>
<xs:element ref="xpnml:tokenplace3"/>
<xs:element ref="xpnml:tokenplace4"/>
<xs:element ref="xpnml:tokenplace5"/>
<xs:element ref="xpnml:tokenplace6"/>
<xs:element ref="xpnml:tokenplace7"/>
<xs:element ref="xpnml:tokenplace8"/>
<xs:element ref="xpnml:tokenplace9"/>
<xs:element ref="xpnml:tokenplace10"/>
<xs:element ref="xpnml:tokenplace11"/>
<xs:element ref="xpnml:tokenplace12"/>
<xs:element ref="xpnml:tokenplace13"/>
</xs:choice>
<xs:attribute ref="xpnml:id" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="tokenplace1">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="adress" type="xs:string"/> <xs:element ref="xpnml:cpr"/>
<xs:element name="tlf" type="xs:integer"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Problemet er at elementet tokenplace1 ikke "findes" med blot er en slags fællesbenævnelse for token der er af typen token id="1". Hvordan får jeg schemaet til at forstå at tokensplace1 ikke er et element, men en gruppebetegnelse.
Her er et eksempel på fra mit XML:
<place id="p1" name="start">
<tokens>
<token id="1">
<name>Rasmus</name>
<adress>Testvej</adress>
<cpr>270675-1111</cpr>
<tlf>99999999</tlf>
</token>
</tokens>
</place>
<place id="p2" name="Nogetandet">
<tokens>
<token id="2">
<ribers/>
</token>
</tokens>
</place>
<place id="p3" name="Nogettredje">
<tokens>
<token id="3">
<regno/>
<accountno/>
<accountType/>
</token>
</tokens>
</place>
Når jeg prøver at validere imod mit schema får jeg at vide "Unexpected element 'name' in element 'token'
Hvis jeg bare sætter
<xs:element name="name" type="xs:string"/>
ind blandt de mulige tokenplaces får jeg ikke nogen fejl, men det er jo ikke det jeg ønsker.
Håber der er hjælp derude.
Rasmus