2012-01-26 6 views
0

'テンプレート'タグ内にhtmlタグ(または 'my:' - namespaced以外)を許可することはできますか?xmlスキーマ内の名前空間以外のタグを許可する

<?xml version="1.0"?> 
<my:template xmlns:my="http://my.example.com"> 

    <my:aa/> 

    <my:aa> 
    <b>stuff</b> 
    <my:aa/> 
    </my:aa> 

    <my:bb/> 
</my:template> 

この

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     xmlns="http://my.example.com" 
     xmlns:my="http://my.example.com" 
     targetNamespace="http://my.example.com" 
     elementFormDefault="qualified" 
     attributeFormDefault="unqualified"> 

<xs:complexType name="MyContent"> 
    <xs:choice minOccurs="0" maxOccurs="unbounded"> 
    <xs:element name="aa" type="MyContent"/> 
    <xs:element name="bb" type="MyContent"/> 
    </xs:choice> 
</xs:complexType> 

<xs:element name="template" type="MyContent"/> 

</xs:schema> 

xmllintがエラー

kk.xml:7: element b: Schemas validity error : Element 'b': This element is not expected. Expected is one of ({http://my.example.com}aa, {http://my.example.com}bb). 
kk.xml fails to validate 

答えて

1

あなたがいる限り

  1. として別のスキーマから任意の要素またはcomplexTypeのを参照することができますが現れるように今私のスキーマが見えますそれらは全体的に定義されています
  2. あなたimport/includeそれらのスキーマ/ XSD
  3. あなたがHTMLを使用する場合は、正しい名前空間(targetNamespace

を使用して参照は、あなたが本当にxhtmlを使用する必要があります。ここでは、名前空間の詳細を検索http://www.w3.org/1999/xhtml/

輸入チュートリアル

xsd:import tutorial

+0

ええと、私は作るためにXHTML名前空間を置くべき場所私の例は動作しますか? – spacevillain

+0

@spacevillain私の編集を参照してください。 –

+0

こんにちはパンゲアを読むためのチュートリアルを追加しました。あなたの答えは、 "any element or complexType"に関してはあまりにも制限があります。私は "任意のコンテンツ"を使用したでしょう。また、厳密にimport/includeが必要であると述べるのは誤りです。あなたはネームスペース内の特定の要素/属性にワイルドカードを使うことができるので、それらのスキーマを必ずしも必要とせずにこれらの要素を使うことができます.... –

関連する問題