1

次の条件でXMLスキーマを作成しようとしています。

私はHTMLのようなXMLを持っています。「b」タグが「p」、「li」、「cell」などの子である場合、子要素「footnote」を持つことができます。他の子「b」タグをネストすることもできます。ただし、「ht」タグの子である場合、「脚注」はその子ツリーで禁止されています。

例えば:

<p><b>text<footnote>footnote text</footnote><b>double bold</b>more text</p>

<p><b>text<b>double <footnote>footnote text</footnote> bold</b></p>

有効であり、

<ht><b>text<footnote>footnote text</footnote><b>double bold</b></ht>

<ht><b>text<b>double <footnote>footnote text</footnote> bold</b> more text</ht>

ではありません。「ht」の「b」タグをオーバーライドすることはできますが、ネストされた「b」を含めることができるため、最大深度を設定する必要があります。XPathなどによる「ht」子ツリーでの「脚注」の使用を禁止できますか?

4

1 に答える 1

1

XSD1.0ではありません。別のスキーマ言語を使用するか、XSD1.0をSchematronで拡張する必要があります。

XSD 1.1は、XPathベースのアサーションをサポートするようになったため、これも役立ちます。残念ながら、現時点では、XSD 1.1のサポートはXerces(ベータ版、無料)とSaxon EE(本格的、商用)に限定されており、まだ広く使用されていません。

于 2013-03-26T13:33:23.173 に答える