1

HTMLタイプのカスタムxmlスキーマがあります。このhtmlタイプ(a、p、ulなど)内で使用できるいくつかの「標準」html要素を参照したいと思います。これらの要素を持つ次のスキーマを見つけました。

http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd

スキーマをインポートするために次の行を追加しました

<xs:import schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd" />

そして私は次のように内部の要素を使用しようとしています

<xs:complexType name="Html">
  <xs:choice maxOccurs="unbounded">
    <xs:element ref="ul"></xs:element>
  </xs:choice>
</xs:complexType>

それは機能していません、私が欠けているものは何ですか?これを行う正しい方法は何ですか?

4

1 に答える 1

2

インポートされたスキーマで定義されたHTML要素は、xhtml名前空間にありますhttp://www.w3.org/1999/xhtmlnamespace="http://www.w3.org/1999/xhtml"したがって、要素にも属性を追加する必要があります<xs:import>。インポートされたスキーマで定義された要素とタイプを参照するには、xhtml名前空間のプレフィックスが付いた名前空間定義が必要です。つまり、たとえば要素にxmlns:xh="http://www.w3.org/1999/xhtml"定義を含める必要があります。次に、XHTMLスキーマで定義されたタイプ、要素などを参照するときに、<xs:schema>このプレフィックス(ここ)を使用する必要があります。xh

したがって、サンプルコードは次のようになります。

<xs:schema 
    ... 
    xmlns:xh="http://www.w3.org/1999/xhtml"
    ...
    >

<xs:import schemaLocation="http://www.w3.org/2002/08/xhtml/xhtml1-strict.xsd"
           namespace="http://www.w3.org/1999/xhtml" />

    <xs:complexType name="Html">
      <xs:choice maxOccurs="unbounded">
        <xs:element ref="xh:ul"></xs:element>
      </xs:choice>
    </xs:complexType>

</xs:schema>
于 2013-02-28T01:07:20.060 に答える