別のXSDにインポートされたXSDに対して自分のXMLを検証しようとしています。インポートしたXSDに対して検証できません
次のコードを見てください:
xml1.xml:
<e1 xmlns="n1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="n2 main.xsd">
</e1>
をxsd1.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="n1"
elementFormDefault="qualified">
<xsd:element name="e1"/>
</xsd:schema>
main.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="n2"
elementFormDefault="qualified">
<xsd:import namespace = "n1" schemaLocation = "xsd1.xsd"/>
</xsd:schema>
(XMLツールまたはJavaでNetBeansで)xml1.xmlの検証単にスロー:
cvc-elt.1: Cannot find the declaration of element 'e1'. [3]
何が問題だろうか?
ありがとうございました!私は、主なスキーマにxsd1スキーマをインポートしたので、インポートされた名前空間が含まれているので、メインのみを参照するだけで十分だと思いました。私はそれがこのように動作しないことを認識し始めたが、私は、インポートされた名前空間を接頭辞にバインドし、メインのスキーマで使用する必要があります。私はあなたの答えが良かったと確信しています。 – user1856926