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/
分享到:
相关推荐
【XML与XMLSchema】 XML,全称可扩展标记语言(eXtensible Markup Language),是一种基于标准通用标记语言SGML的简化版本,由万维网联盟(W3C)于1996年开始制定,并在1998年2月10日发布了XML 1.0规范。它的设计...
这个“XMLSchema.chm”文件很可能是一个帮助文档,旨在为学习XML Schema的用户提供详细的指导和参考资料。下面我们将深入探讨XML Schema的相关知识点。 1. **XML Schema的作用**:XML Schema的主要功能是规范XML...
2. **命名空间**:XML Schema支持命名空间,这使得在同一文档中可以使用相同的名字而不引起冲突。通过使用`xmlns`属性,我们可以为元素和类型指定独特的命名空间前缀。 3. **约束和验证**:XML Schema提供了一套...
- 处理命名空间:API支持处理XML文档中的命名空间,以便正确解析和验证具有多个命名空间的文档。 在实际开发中,Apache XML Schema API通常与DOM(Document Object Model)、SAX(Simple API for XML)或StAX...
1. **命名空间**:XML Schema支持命名空间,使得可以在同一文档中定义多个独立的XML模式,避免了元素和属性名的冲突。 2. **数据类型**:XML Schema提供了丰富的内置数据类型,如字符串、整数、浮点数、日期等,还...
<note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.com/note.xsd"> <to>George <from>John <heading>Reminder <body>Don't forget the meeting! ``` 对应的 ...
"xmlschema-1.4.5.jar.zip"是一个包含XML Schema相关实现的Java类库,主要用于处理和验证XML文档是否符合特定的XSD规范。 在Java环境中,`xmlschema-1.4.5.jar`是一个关键组件,它提供了一系列API供开发者使用,...
XML Schema支持命名空间,允许在不同的组织和领域中重用元素和属性,同时它引入了数据类型系统,可以对XML元素和属性进行类型约束,如整数、日期、浮点数等。 以下是XML Schema的一些核心概念和特性: 1. **元素...
- **命名空间支持**:**XML Schema** 自然支持 **XML** 命名空间,而 **DTD** 对命名空间的支持有限。 - **语法差异**:**XML Schema** 使用 **XML** 语法,而 **DTD** 使用一种类似于 **SGML** 的语法。 - **复杂性...
3. **命名空间支持**:XML Schema支持名称空间,能够处理多个不同来源的元素和属性,避免命名冲突。DTD不支持名称空间。 4. **更强大的约束机制**:XML Schema提供了更多的方式来约束元素和属性,如最大长度、最小...
- 可扩展性:XML Schema支持命名空间和自定义数据类型,而DTD不支持。 6. 学习XML Schema的基础 在开始学习XML Schema之前,掌握HTML/XHTML、XML和基本的DTD知识是非常必要的。W3School提供了相关的学习资源,可以...
3. **命名空间支持**:XML Schema支持命名空间,这使得在不同的组织或项目中可以使用相同的元素和属性名称而不会产生冲突。 4. **复杂类型定义**:除了基本数据类型,XML Schema还支持创建复杂的元素结构,如组合...
XML Schema的主要目标是解决DTD(Document Type Definition)的局限性,如不支持数据类型的定义、复杂的数据结构以及对命名空间的支持不足等问题。在XML Schema中,你可以定义自己的数据类型,如日期、数字、字符串...
XML Schema,全称为eXtensible Markup Language Schema,是用于定义XML文档结构...通过阅读《XMLSchema参考手册》,你可以深入了解其内部机制,提升XML文档的管理和验证能力,从而在开发过程中保证数据的质量和一致性。
一个最简单的XML Schema文档通常会包含一个根元素`<xsd:schema>`,并声明命名空间`xmlns:xsd="http://www.w3.org/2001/XMLSchema"`。例如: ```xml <?xml version="1.0"?> <xsd:schema xmlns:xsd=...
XML Schema还支持命名空间,这对于大型项目或跨组织的数据交换至关重要,因为它可以避免命名冲突。而XML DTD在这方面相对简单,不支持命名空间和复杂的元素、属性约束。 XML DTD虽然在某些场景下仍然有用,比如对于...
2. **命名空间支持**:XML Schema支持命名空间,允许在同一个文档中定义多个不冲突的词汇表,从而解决了XML元素和属性名称的冲突问题。 3. **复杂类型的定义**:除了基本数据类型外,XML Schema还支持定义复杂类型...
5. 命名空间支持:XML Schema 允许你使用命名空间来避免元素和属性名称的冲突,这对于大型、复杂的应用程序尤其重要。 6. 扩展性:XML Schema 的设计使其能够适应未来的需求,可以添加新的定义和规则,而不影响现有...
3. 名称空间支持:XML Schema支持名称空间,使得在同一个文档中可以引用多个不同的schema,避免命名冲突。 4. 错误处理:XML解析器可以根据XML Schema提供的规则检查文档,如果文档不符合schema,会报告错误信息,...