2012-02-27 137 views
14

私はXMLスキーマを全く新しくしており、基本を下ろそうとしています。ここに私のXMLスキーマコード(:example1.xsdファイル名は):あるxmlスキーマ検証エラー「接頭辞がバインドされていません」

<?xml version="1.0"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:sample="http://www.example" 
targetNamespace="http://www.example.com" 
elementFormDefault="qualified"> 

<xs:element name="school"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="element1" type="xs:string"/> 
     <xs:element name="element2" type="xs:string"/> 
     <xs:element name="element3" type="xs:string"/> 
     <xs:element name="element4" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

</xs:schema> 

ここでXML文書があります。 xmlファイルを検証しようとしたら

<?xml version="1.0" encoding="UTF-8"?> 

<sample:school xmlns="http://www.example.com" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="./example1.xsd"> 

     <element1>hello</element1> 
     <element2>hello</element2> 
     <element3>hello</element3> 
     <element4>hello</element4> 

</sample:school> 

、私が言うのNetBeansからのエラーを取得:要素の 接頭辞「サンプル」、「サンプル:学校は、」バインドされていませんが。 [9]あなたのXMLで

答えて

16

、あなたのいずれかを行う必要があります。

を。 sample:school

または

Bからsample:プレフィックスを削除します。 xmlns="http://www.example.com"xmlns:sample="http://www.example.com"に変更し、あなたがこのようなエラーが出る場合は、最も簡単な方法は、接頭辞の宣言を追加することです

10

残りの要素(<sample:element1><sample:element2>、など)にsample:接頭辞を追加します。あなたのケースでは、スキーマごとに、ちょうどあなたのルート要素に次の属性を追加します。

xmlns:sample="http://www.example.com" 

はまた、これはXML namespacesとかなり関連しています。

関連する問題