0

私はxmlとhtmlが初めてで、質問があります:)

次の xml で:

<element name="itemDescription"> 
    <any minOccurs="0"/>            
</element>

「itemDescription」タグは、ul、li、b、i、および span タグのみを使用する HTML のサブセットをどのようにサポートできますか? 現在、すべての XML を受け入れるように定義されています。

私はこれについて多くのことをグーグルで調べましたが、解決策が思いつきません。それだけで、complexTypes を使用できる可能性があります。

誰かが私を助けることができますか?:)

どうも

4

2 に答える 2

0

itemDescriptionの子として特定のXHTML要素のセットを許可する場合は、適切な複合型を定義することにより、それらがどの子であるかを指定する必要があります。(スキーマがXSDであることが意図されている場合は、既存の要素宣言の構文エラーも修正する必要があります。)言及した特定のXHTML要素から、idemDescriptionに文字データを含めることも許可する必要があると思います。

ジョブを実行するitemDescriptionの宣言は、次のようになります。

<xsd:element name="itemDescription">
  <xsd:complexType mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="xhtml:ul"/>
      <xsd:element ref="xhtml:b"/>
      <xsd:element ref="xhtml:i"/>
    </xsd:choice>
  </xsd:complexType>
</xsd:element>

XHTML名前空間内の特定のアイテムを参照する必要があるため、それもインポートする必要があります。これを行う最も簡単な方法は、次のようなインポートを使用することです。

<xsd:import namespace="http://www.w3.org/1999/xhtml"/>

ただし、ある時点で、XSDバリデーターをXHTMLのスキーマドキュメントに転送する必要があります。一部の人々は、呼び出し時ではなくimportステートメントでこれを行うことを好むため、importステートメントでschemaLocation属性を指定します。

<xsd:import namespace="http://www.w3.org/1999/xhtml"  
            schemaLocation="..."/> 

ここで、「...」は、使用するXHTMLスキーマへのポインターに置き換える必要があります。(W3Cでは、過剰なDTDおよびスキーマトラフィックを阻止する方法として、サイトからスキーマドキュメントを取得するのが非常に遅くなるため、ローカルコピーをお勧めします。)

XMLは初めてだと言うので、すべてを1か所にまとめた完全なスキーマドキュメントがあると便利な場合があります。繰り返しますが、これを実際に使用する場合は、schemaLocation値をURIに置き換えることを忘れないでください。

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified"> 

  <xsd:import namespace="http://www.w3.org/1999/xhtml"  
              schemaLocation="..."/>

  <xsd:element name="itemDescription">
    <xsd:complexType mixed="true">
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="xhtml:ul"/>
        <xsd:element ref="xhtml:b"/>
        <xsd:element ref="xhtml:i"/>
      </xsd:choice>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>
于 2013-02-19T16:47:56.857 に答える
0

同様の構文を除いて、HTML は XML とほとんど関係がないことに注意してください。

XHTML のスキーマを見て、必要な部分をコピーすることもできますが、おそらく自分で実装する方が簡単でしょう。

いずれにせよ、XML アプリケーション内で (X)HTML を再実装しようとするのは得策ではありません。どちらかの方がやりやすいかも

  • HTML に似たものを実装し、XML を読み取るアプリケーションにそれを HTML に変換させます。
  • 代わりに HTML を (CDATA) 文字列として保存します
  • HTML を使用せず、たとえば軽量のマークアップ言語を使用する
于 2013-02-19T15:00:51.907 に答える