27

我看到一些 XSD 架构文档在其顶部元素中同时声明了 atargetNamespacexmlns:tns属性。schema例如下面的一个取自这里。它们似乎也具有相同的字符串值。我了解角色的作用,targetNamespacexmlns:tns除此之外还能做什么?

<?xml version="1.0" encoding="UTF-8"?>
<schema
    xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.org/Product"
    xmlns:tns="http://www.example.org/Product"
    elementFormDefault="qualified">
...
4

1 回答 1

44

它允许您稍后在模式中引用名称空间。例如,如果您声明了一个命名类型,然后还想声明该类型的元素

<complexType name="someType">
  <!-- ... -->
</complexType>

<element name="someElement" type="tns:someType" />

简单地说type="someType"是行不通的,因为那将指的是命名空间(模式文件的)someType中的(不存在的),而不是命名空间中的那个。http://www.w3.org/2001/XMLSchemaxmlns="..."http://www.example.org/Product

于 2013-06-25T12:02:26.647 回答