Frage

Ich glaube nicht, das ist möglich, aber ich dachte, dass ich es werfen würde da draußen. In Anbetracht dieser XML:

 <people count="3">
      <person>Bill</person>
      <person>Joe</person>
      <person>Susan</person>
 </people>

Ist es möglich, in einem XSD des @count Attributwert zu zwingen, die richtige Anzahl von definierten Elementen zu sein (in diesem Fall der Person Element)? Das obige Beispiel wäre natürlich richtig und die folgende Beispiel würde nicht überprüfen:

 <people count="5">
      <person>Bill</person>
      <person>Joe</person>
      <person>Susan</person>
 </people>
War es hilfreich?

Lösung

Ich bin mir ziemlich sicher, dass XSD kann das nicht tun. Allerdings, wenn Sie sicherstellen wollen, dass Ihr Attribut count ist die wirkliche Anzahl der Elemente unten, ein Stylesheet auf dem Dokument ausgeführt wird, kann dafür sorgen, dass wahr ist, indem Sie den Wert festlegen:

<xsl:template match="people">
   <xsl:attribute name="count">
      <xsl:value-of select="count(person)"/>
   </xsl:attibute>
   <xsl:apply-templates/>
</xsl:template>

<!-- insert your identity template here -->

Andere Tipps

Parser XSD-Spezifikation Implementierung 1.1 sollte eine Assertion Funktion bereitzustellen, die verwendet werden, um die XML-Inhalte gegen die Anzahl der untergeordneten Knoten

zu validieren
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top