私はXMLスキーマを初めて使用しますが、基本を理解しようとしています。ここに私のXMLスキーマコード(ファイル名:example1.xsd)があります:
<?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 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>
Xmlファイルを検証しようとすると、netbeansから次のようなエラーが表示されます。要素「sample:school」の接頭辞「sample」はバインドされていません。 [9]
XMLでは、次のいずれかが必要です。
[〜#〜] a [〜#〜]。 sample:
からsample:school
プレフィックスを削除します
または
[〜#〜] b [〜#〜]。 xmlns="http://www.example.com"
をxmlns:sample="http://www.example.com"
に変更し、sample:
プレフィックスを残りの要素(<sample:element1>
、<sample:element2>
など)に追加します
このようなエラーが発生した場合、最も簡単な方法はプレフィックス宣言を追加することです。あなたの場合、スキーマに従って、次の属性をルート要素に追加するだけです:
xmlns:sample="http://www.example.com"
また、これはむしろ XML名前空間 と関連しています。
それはあなたの質問への直接的な答えではありませんが、自分の問題を解決しようとしてここでつまずいたので、誰かの助けになるかもしれません。
Weblogic 10.3.6から12.2.1.2にアップグレードした後、「プレフィックスns2がバインドされていません」というエラーが表示されました。
上位バージョンのデフォルトのJAXB実装はMoxyであるため、javax.xml.bind.JAXBContextをcom.Sun.xml.bind.v2.ContextFactoryに変更する必要がありました。