我如何'期望'元素使用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>
答案 0 :(得分:2)
您需要包含完整的XSD才能为您提供帮助。但是从我看到的错误以及你在XML实例文档中包含“xsi:noNamespaceSchemaLocation”的事实来看,我看到的问题是你定义的模式是指定了 no targetNamespace 但是你是否符合条件<具有名称空间前缀的strong> person 元素。只需在实例文档中的所有位置删除“ns:”即可。