xs:key und xs:kleyref

Tikonteroga

Erfahrenes Mitglied
#1
Hallo,

ich muss ein XML-Schema für ein bereits bestehendes XML erstellen. Dabei liegt das XML in folgender Form vor.

HTML:
<person>
   <id>1</id>
   <vorname>Hans</vorname>
   <nachname>Müller</nachname>
   <unternehmen>3</unternehmen>
</person>

<person>
   <id>2</id>
   <vorname>Peter</vorname>
   <nachname>Müller</nachname>
   <unternehmen>3</unternehmen>
</person>

<unternehmen>
   <id>3<id>
   <firma>Müller GmbH</firma>
   <personen>1 2</personen>
</unternehmen>
Ist es denn möglich, dass ich über xs:key und xs:keyref die Relationen zwischen Person und Unternehmen beschreiben und dann auch validieren kann?

Problematisch sehe ich, dass für <personen>1 2</personen> eine Liste verwendet wird.
 

Tikonteroga

Erfahrenes Mitglied
#2
Ich habe auch mal meinen ersten Versucht gepostet, mit dem ich dem Element "person" einen key definiert habe.

HTML:
<xsd:element name="person">
   <xsd:complexType>
      <xsd:sequence>
         <xsd:element name="id" type="xsd:int"/>
         <xsd:element name="vornane" type="xsd:string"/>
         <xsd:element name="nachname" type="xsd:string"/>
         <xsd:element name="unternehmen" type="xsd:int"/>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:key name="personId">
      <xsd:selector xpath="id"/>
      <xsd:field xpath="."/>
   </xsd:key>
</xsd:element>
Habe ich hier selector und field richtig angewendet? Hier war ich mir unsicher.