0

プロジェクトの XML スキーマを書いています。次の問題を解決できません。

要素を単独でネストすることはできません。例:

<document>
   <text>
      <b>
         <i>
            <a link="http://wikipedia.org">
               <b />
            </a>
         </i>
      </b>
   </text>
</document>

b 自体がネストされているため、この例は許可されません。だから私の質問は次のとおりです。

有利にthx!

\モルテン・モラー

編集:これまで、要素がそれ自体の子になることができることだけを確認しましたが、要素がそれ自体である子孫を持つことができないことは確認していません。

<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
        xmlns:xs="http://cs.au.dk/dWebTek/WikiXML"
        targetNamespace="http://cs.au.dk/dWebTek/WikiXML"
        elementFormDefault="qualified">

<element name="wiki">
    <complexType>
            <choice maxOccurs="unbounded">
                <!-- A lot of other element is listed here -->
                <element name="bold" type="xs:boldnest"/> <!-- Missing nest function -->
            </choice>
    <complexType>
</element>

<complexType name="boldnest">
    <choice maxOccurs="unbounded">
        <element name="bold" minOccurs="0" maxOccurs="0" type="xs:boldnest"/>
        <!-- All the other element is copy pasted in here -->
    </choice>
</complexType>
4

1 に答える 1

0

あなたがやろうとしていることは不可能です。XML スキーマでは、型ベースのアプローチを使用している場合、コンテンツ モデルを介して要素の子のみを制御でき、可能なすべての子孫を制御することはできません。

やろうとしていることに近づくことができる唯一の方法は、内容をdocument最後のレベルまで完全に定義することです。しかし、再帰的な構造を確立してから、考えている種類の制約を配置することはできません。

XML スキーマの検証が完了したら、他のメカニズムを使用してこれを検証する必要があります。

于 2010-03-05T11:55:24.960 に答える