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>