根据定义:
noNamespaceSchemaLocation 属性引用没有目标命名空间的 XML 架构文档。
该属性将如何改变解析结果?
例如,采用以下 XML:
<?xml version="1.0"?>
<name
xmlns="http://www.example.com/name"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.com/name schema/schema.xsd"
title="Mr.">
<first>John</first>
<middle>M</middle>
<last>Doe</last>
</name>
参考这个架构:
<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:target="http://www.example.com/name"
targetNamespace="http://www.example.com/name" elementFormDefault="qualified">
<element name="name">
<complexType>
<sequence>
<element name="first" type="string"/>
<element name="middle" type="string"/>
<element name="last" type="string"/>
</sequence>
<attribute name="title" type="string"/>
</complexType>
</element>
</schema>
我从架构中删除了这些命名空间声明:
xmlns:target="http://www.example.com/name"
targetNamespace="http://www.example.com/name"
即使没有在引用 XML 中使用 noNamespaceSchemaLocation 属性,也不会引发任何错误。为什么我们首先需要这个属性?
该属性对 XML 解析器没有影响。它may如果设置了适当的选项,则会影响 XML 模式处理器的行为;和它may同样,它也会影响结合了 XML 解析和 XML 模式验证功能的程序的行为。它告诉模式处理器在哪里寻找描述文档的模式。
但即使使用模式处理器,noNamespaceSchemaLocation
属性不会影响像您这样的文档的验证,其中元素都在命名空间中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)