XSD架构命名空间问题

时间:2010-12-30 00:08:48

标签: xml xsd xsd-validation

我如何'期望'元素使用XSD拥有命名空间?此时我收到一条错误消息:“从元素'ns:person'开始发现无效内容。预计会有一个'{”“:person}'。”

正如您所看到的,我在name:“person”上定义了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>

1 个答案:

答案 0 :(得分:2)

您需要包含完整的XSD才能为您提供帮助。但是从我看到的错误以及你在XML实例文档中包含“xsi:noNamespaceSchemaLocation”的事实来看,我看到的问题是你定义的模式是指定了 no targetNamespace 但是你是否符合条件<具有名称空间前缀的strong> person 元素。只需在实例文档中的所有位置删除“ns:”即可。