質問
要素がXSDを使用して名前空間を持つことを「期待」するにはどうすればよいですか?この時点で、次のようなエラーを受け取ります。 「無効なコンテンツは、要素「ns:person」から始まりました。「{"":person}」の1つが予想されます。」
ご覧のとおり、私は定義します name
の属性 xs:element
: : "人"。 「ns:person」を定義する場合 name
次に、名前が無効であるというエラーが発生します。
ここに何が欠けていますか?
これは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>
解決
あなたを助けるために完全なXSDを含める必要があります。しかし、私が見たエラーと、XMLインスタンスドキュメントに「XSI:NONAMESSPACESCHEMALOCATION」を含めたという事実から、私が見る問題は、あなたがスキーマを定義したことです TargetNamesPaceはありません 指定されていますが、あなたは資格があります 人 名前空間プレフィックスを備えた要素。インスタンスドキュメントのすべての場所で「ns:」を削除するだけで、すべてが良いです。
所属していません StackOverflow