XSDを使用して要素に名前空間を持たせるにはどうすればよいですか?この時点で、次のようなエラーメッセージが表示されます:"要素 'ns:person'で始まる無効なコンテンツが見つかりました。 '{" ":person}'のいずれかが必要です。"XSDスキーマ名前空間の問題
ご覧のとおり、には「人」のname
という属性が定義されています。私がname
として "ns:person"を定義すると、名前が無効であるというエラーが表示されます。
私はここで何が欠けていますか?
これは、XSD(ns.xsd)です:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="peoples">
<xs:complexType>
<xs:sequence>
<xs:element name="person"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
これは、XML(peoples.xml)です:
<?xml version="1.0" encoding="ISO-8859-1"?>
<peoples xmlns:ns="url" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ns.xsd">
<ns:person>
<name>John</name>
</ns:person>
</peoples>
ここにはいくつかのエラーがあります。http://zvon.org/xxl/XMLSchemaTutorial/Output/series.htmlやhttp:// wwwなど、いくつかのチュートリアルの例を実行するのが最適かもしれません。 w3schools.com/schema/default.asp。 {エラーにはインスタンス内の名前空間宣言は含まれていません。スキーマの名前空間宣言なし、スキーマの要素 "名前"なし) –
残念ですが、読みやすさのためにそれらを残しました...もちろん、それらは私のファイルにあります。バリデーターを実行すると、エラーが発生します。 – Ropstah
@Ropstah:おそらく、質問を編集して欠落した項目を追加することができます。その省略は、実際には読みやすさを妨げるためです。 –