0

XML スキーマの型について質問があります。

タイプは次のようにする必要があります。

テキスト、埋め込み HTML フォーマットを許可

これを行うには何を使用すればよいですか? (埋め込みHTMLフォーマットを許可しますか?たとえば、テキスト xsd:string は問題ないと思いますが、埋め込みHTMLフォーマットを許可するために何をすべきかわかりません)

この場合、何を含めるべきですか?

4

3 に答える 3

2

xsd:stringが良い選択だと思います。それはあなたがそのようにCDATAの中にhtmlを埋め込むことを可能にするでしょう。

<xsd:element name="embedded_html" type="xsd:string"/>

<embedded_html><![CDATA[<p>This is silly HTML</p>]]></embedded_html>

ただし、検証はまったく行われません。どの文字列でも可能です。

もう1つできることは、xhtmlhttp://www.w3.org/TR/xhtml1-schema/#schemas用に提供されているスキーマを使用することです。しかし、それは本当にあなたがやろうとしていることに依存します。

于 2012-09-16T20:04:37.217 に答える
1

このxs:stringデータ型は、マークアップが散在する文字データには実際には適していません。それが複雑な型mixed="true"の目的です。

ドキュメント タイプの XSD スキーマを作成していて、特定の要素に任意の XHTML 要素を含めることができるようにしたい場合、それを宣言する正しい方法は次のようになります。

<xs:element name="embedded_html">
  <xs:complexType mixed="true">
    <xs:sequence>
      <xs:any namespace="http://www.w3.org/1999/xhtml" 
              minOccurs="0" 
              maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

これにより、HTML をタグ salad で構成することができなくなります。HTML は整形式である (つまり、XHTML としてエンコードされている) 必要があります。なんらかの理由で、タグ salad を のコンテンツとして許可する必要があると思われる場合はembedded_html、実際に必要なものを再検討するか、他の語彙と同じようにして HTML エンコーディングをエスケープするかを選択します。しかし、その場合でも、混合コンテンツを使用するよりも優れていると思いますxs:string

于 2012-09-16T23:41:50.897 に答える
0

スキーマの目的は、ドキュメントの論理構造を制御することであり、文字データのエスケープ規則を選択することではありません。

CDATAXSDを変更せずに、ドキュメントXMLにセクションを追加するだけです。

リンク:http ://www.w3schools.com/xml/xml_cdata.asp

于 2012-09-16T20:04:27.007 に答える