Xml Schema 的自定义命名空间问题

本文详细介绍了XMLSchema中自定义命名空间的应用场景及配置方法,包括如何为XML文件定义命名空间,并通过两个实例展示了带有命名空间和不带命名空间的XML文件及其对应的XSD验证文件的不同设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Xml Schema 的自定义命名空间问题

XML 

 

//命名空间的名字是可以随便取得,不是一定要可以访问的,只是按层包结构来分方便

//如果xml文件不用数据传输,仅用于读取数据,第一行的描述,是不必须的,意思就是xml文件中第一行可以省略

//schema 文档的后缀.xsd 不就是xml schema document'吗

//在定义schema文档时,里面的属性targetNamespace="http://www.w3school.com.cn",这个就是这份shcema文档所代表的命名空间

XML Schema 描述 XML 文档的结构,替代原有的DTD。

XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。

XML文件可以设置自定义的命名空间,有无自定义命名空间的xsd验证方式设置不同,下边有两个例子:
(1)带命名空间
xml文件node.xml:
<?xml version="1.0"?>
<note
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

对应的XSD文件node.xsd:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">
<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

(2)不带命名空间
xml文件node.xml:
<?xml version="1.0"?>
<note
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

对应的XSD文件node.xsd:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>


主要存在两区别:
(1)指定命名空间
  带命名空间的XSD文件要指定命名空间targetNamespace,同样xml文件也要设置该命名空间xmlns;
  不带命名空间时XSD文件和xml文件都不用设置
(2)设置XSD验证的方式不一样
  带命名空间的xml用 schemaLocation="命名空间 xsd文件" 设置
  不带命名空间的noNamespaceSchemaLocation="xsd"文件设置

但是不管有没有自定义命名空间,xml和xsd文件都要放在同一目录下

参考:http://www.w3school.com.cn/schema/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值