質問

要素が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:」を削除するだけで、すべてが良いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top