我看到一些XSD schema文档在其顶部的schema元素中同时声明了targetNamespace和xmlns:tns属性。例如,下面这段采用了from here。它们似乎也有相同的字符串值。我理解targetNamespace的作用,但是xmlns: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">
...发布于 2013-06-25 20:02:27
它允许您稍后在模式中引用名称空间。例如,如果您声明了一个命名类型,然后又希望声明该类型的元素
<complexType name="someType">
<!-- ... -->
</complexType>
<element name="someElement" type="tns:someType" />简单地说type="someType"是行不通的,因为这将引用http://www.w3.org/2001/XMLSchema名称空间(模式文件的xmlns="..." )中的(不存在的) someType,而不是http://www.example.org/Product名称空间中的work。
https://stackoverflow.com/questions/17295588
复制相似问题