-1

XSDを使用して要素に名前空間があることを「期待」するにはどうすればよいですか?この時点で、「要素'ns:person'で始まる無効なコンテンツが見つかりました。'{"":person}'のいずれかが必要です。」というエラーが表示されます。

ご覧のとおり、 :"person"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>
4

1 に答える 1

2

あなたはあなたを助けるために完全なXSDを含める必要があります。しかし、私が見たエラーと、XMLインスタンスドキュメントに「xsi:noNamespaceSchemaLocation」が含まれているという事実から、私が見た問題は、targetNamespaceを指定せずにスキーマを定義したが、名前空間プレフィックスを使用してperson要素を修飾していることです。インスタンスドキュメントのすべての場所で「ns:」を削除するだけで、問題ありません。

于 2010-12-30T03:31:26.693 に答える