-1

如何使用 XSD '期望'一个元素具有命名空间?此时我收到一条错误消息:“发现以元素 'ns:person' 开头的无效内容。需要 '{"":person}' 之一。”

如您所见,我在“人”name上定义了属性。xs:element如果我将“ns:person”定义为,name那么我会收到一个错误,即名称无效 aaarghh。

我在这里想念什么?

这是 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 回答