Announcement

Collapse
No announcement yet.

Eindeutigkeit innerhalb eines Elements / Sortierung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Eindeutigkeit innerhalb eines Elements / Sortierung

    Hallo

    Gibt es eine Möglichkeit, eine ID oder etwas Ähnliches in einem Schema zu haben, die nur innerhalb eines Elements gültig ist? Was ich bräuchte wäre ein Element-Attribut, nachdem ich in einem Programm sortieren kann. Das Schema wäre dann im Stil von:

    (Code ist ungültig, soll nur den Ansatz aufzeigen)
    Code:
    <xs:element name="Table">
       <xs:complexType>
         <xs:sequence minOccurs="0" maxOccurs="unbounded">
           <xs:element name="Row">
             <xs:complexType>
               <xs:choice minOccurs="0" maxOccurs="unbounded">
                 <xs:element name="Value">
                   <xs:complexType>
                     <xs:simpleContent>
                       <xs:extension base="xs:string">
                         <xs:attribute name="type" use="required">
                           <xs:simpleType>
                             <xs:restriction base="xs:string">
                               <xs:enumeration value="doubleValue"/>
                               <xs:enumeration value="intValue"/>
                               <xs:enumeration value="stringValue"/>
                             </xs:restriction>
                           </xs:simpleType>
                         </xs:attribute>
                         <xs:attribute name="order" use="required" type="xs:OrderId"/>
                       </xs:extension>
                     </xs:simpleContent>
                   </xs:complexType>
                 </xs:element>
               </xs:choice>
             </xs:complexType>
           </xs:element>
         </xs:sequence>
       </xs:complexType>
    </xs:element>
    Ein entsprechendes XML-Dokument würde dann zB so aussehen:
    Code:
    <Table>
      <Row>
        <Value type="intValue" order="0"/>
        <Value type="intValue" order="1"/>
        <Value type="intValue" order="2"/>
        <Value type="intValue" order="3"/>
        <Value type="intValue" order="4"/>
        <Value type="intValue" order="5"/>
      </Row>
      <Row>
        <Value type="intValue" order="3"/>
        <Value type="intValue" order="4"/>
        <Value type="intValue" order="1"/>
        <Value type="intValue" order="5"/>
        <Value type="intValue" order="2"/>
        <Value type="intValue" order="0"/>
    </Row>
      </Table>
      <Table>
    <Row>
        <Value type="intValue" order="5"/>
        <Value type="intValue" order="1"/>
        <Value type="intValue" order="0"/>
        <Value type="intValue" order="2"/>
        <Value type="intValue" order="3"/>
        <Value type="intValue" order="4"/>
      </Row>
    </Table>
    Wie man jetzt hier sieht, wäre die "order" nur innerhalb einer Row eindeutig, aber über die Tabelle hinweg, bzw das gesamte Dokument nicht. Wie gesagt, das Ziel soll sein, dass das XML-Dokument in einem Programm weiterverarbeitet werden kann. Dabei muss es egal sein, in welcher Reihenfolge die Werte innerhalb einer Row angegeben sind, jedoch muss diese durch die Order eindeutig sein. 2x die selbe Order innerhalb einer Row wäre also unzulässig. Die Order muss nicht zwangsläufig aufeinanderfolgende Zahlen beinhalten, es kann also auch mal was übersprungen werden.
    Gültige Beispiele:
    {0, 1, 2, 4, 5}, {7, 5, 3}, {3, 4, 8, 1}

    Ungültige Beispiele:
    {0, 0}, {0, 1, 0}, {1, 2, 3, 1}, {5, 3, 7, 3}

    Ich hoffe Ihr versteht was ich meine
Working...
X