3

これは不可能だと思いますが、私はそれをそこに捨てると思いました。このXMLを考えると:

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

XSDで、@ count属性値を定義された要素(この場合はperson要素)の正しいカウントにすることは可能ですか?上記の例は明らかに正しく、以下の例は検証されません。

 <people count="5">
      <person>Bill</person>
      <person>Joe</person>
      <person>Susan</person>
 </people>
4

2 に答える 2

4

XSDではそれができないと確信しています。ただし、count属性が以下の要素の実際の数であることを保証する場合は、ドキュメントでXSLTスタイルシートを実行すると、値を設定することでそれが真になることが保証されます。

<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 -->
于 2010-04-13T20:57:44.143 に答える
0

XSD仕様1.1を実装するパーサーは、子ノードの数に対してXMLコンテンツを検証するために使用できるassert関数を提供する必要があります

于 2010-07-10T10:03:23.210 に答える