我如何使用XSD“期望”元素具有名称空间?在这一点上,我收到一个错误说: “从元素'ns:person'开始发现的“无效内容。

如您所见,我定义了 name 属性 xs:element: : “人”。如果我将“ NS:人”定义为 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:NONAMESPACESPACESCHEMALOFITION”的事实,我看到的问题是您使用了使用模式 没有目标名称空间 指定但您有资格 具有名称空间前缀的元素。只需在您的实例文档中的所有地方删除“ NS:”,您都很好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top