xml - 命名空间之后的 uri 实际用于什么?

标签 xml xsd xml-validation

行中的 URI (5,6,7) 实际上必须指向任何东西吗?

当我将它们指向 duff url 时,它似乎仍然可以验证我的 xml,那有什么意义呢?

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UploadXSD"
    targetNamespace="UploadXSD"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/UploadXSD.xsd"
    xmlns:mstns="http://tempuri.org/UploadXSD.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="Video">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Title" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="Description" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="Contributor" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="Subject" minOccurs="1" type="xs:string"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>

最佳答案

使用 URN 作为命名空间的要点在于它们是唯一的。例如,您也可以使用 GUID,但这样它们的可读性更高。

当然,使用 URN 可以将它们指向实际资源,例如 xsd 文件,但这是一个额外的好处,不是必需的。

“tempuri”只是默认名称(“temp”+“uri”),您应该将其替换为真实的 URN 以避免命名空间冲突。

XMLSchema 命名空间实际上指向一个包含 XML-Schema 信息的网站。

如果您经常使用 XML 文档和模式,请至少阅读 primer , 了解 XML-Schema 的可能性。更多关于 XML 命名空间的信息是 here .

关于xml - 命名空间之后的 uri 实际用于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4305370/

相关文章:

jquery - 使用 jQuery.find() 和 XML 文档获取 HTMLUnknownElement

python - 如何用 lxml 中的文本替换元素?

c++ - 从 *.xsd 模式文件自动生成 objective-c 类

c# - 如何在 XSD 数据协定中指定泛型类型参数?

xml - cvc-复杂类型.2.4.b : The content of element 'tns:patient' is not complete

xml - src 解析 : Cannot resolve the name 'ds:Signature' to an 'element declaration' component

xml - 如何强制子元素在 XSD 中具有值?

java - 避免使用 xslt 命名空间

xml - 如何从 XML 中过滤出 '?'?

c# - 如何从 xml 引用 xsd 文件