2012-01-18 9 views
3

これはmy.xsdのスキーマです:私のXMLスキーマには何が問題なのですか?

<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' 
    xmlns:p='some-namespace' targetNamespace='some-namespace'> 
    <xs:element name='root' type='p:main'/> 
    <xs:complexType name='main'> 
    <xs:sequence> 
     <xs:element name='alpha' type='xs:string' /> 
    </xs:sequence> 
    </xs:complexType> 
</xs:schema> 

これは私がそれに対して有効だXMLドキュメントです:

<root xmlns='some-namespace' 
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
    xsi:schemaLocation='some-namespace my.xsd'> 
    <alpha>xxx</alpha> 
</root> 

SAXパーサーは言う:

"Invalid content was found starting with element 'alpha'. One of 
'{alpha}' is expected." 

間違っているのですか?

+1

名前空間...... – bmargulies

答えて

4

あなたのスキーマ定義に

elementFormDefault="qualified" 

を追加する必要があります。相対的な名前空間を使用しないこと、つまり次のようなものを使用しないこともお勧めします。

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:p="http://some-namespace" targetNamespace="http://some-namespace" 
elementFormDefault="qualified"> 
+0

ありがとうございます! – yegor256

関連する問題