XSD/XML普及知识

全面解读 XSDXML Schema Definition):XML 数据结构的强大守护者 在现代 Web 开发中,XML 是一种常用的数据存储和交换格式,而 XML Schema Definition(XSD)是用于规范 XML 文档结构的重要工具。它不仅能验证 XML 数据的合法性,还能为数据交换提供标准化的解决方案。本篇博客将你全面解析 XSD 的核心概念、语法规则及其在实际开发中的应用,帮助你以更专业的方式管理 XML 数据。XSDXML Schema Definition)是一种用来定义 XML 文档结构的语言。 阅读详情

XSD/XML普及知识总结

=================

XSD (xml Schema Definition)
Xml Schema的用途


1.  定义一个Xml文档中都有什么元素


2.  定义一个Xml文档中都会有什么属性


3.  定义某个节点的都有什么样的子节点,可以有多少个子节点,子节点出现的顺序


4.  定义元素或者属性的数据类型


5.  定义元素或者属性的默认值或者固定值


XML Schema 是基于 XML 的 DTD 替代者。
XML Schema 描述 XML 文档的结构。
XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。


XML 文档可对 DTD 或 XML Schema 进行引用。
一个简单的 XML 文档:
请看这个名为 "note.xml" 的 XML 文档:
<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
DTD 文件
下面这个例子是名为 "note.dtd" 的 DTD 文件,它对上面那个 XML 文档的元素进行了定义:
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
第 1 行定义 note 元素有四个子元素:"to, from, heading, body"。
第 2-5 行定义了 to, from, heading, body 元素的类型是 "#PCDATA"。
XML Schema
下面这个例子是一个名为 "note.xsd" 的 XML Schema 文件,它定义了上面那个 XML 文档的元素:
<?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>
note 元素是一个复合类型,因为它包含其他的子元素。其他元素 (to, from, heading, body) 是简易类型,因为它们没有包含其他元素。您将在下面的章节学习更多有关复合类型和简易类型的知识。
对 DTD 的引用
此文件包含对 DTD 的引用:
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "http://www.w3school.com.cn/dtd/note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
对 XML Schema 的引用
此文件包含对 XML Schema 的引用:
<?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>


<schema> 元素是每一个 XML Schema 的根元素。
<schema> 元素
<schema> 元素是每一个 XML Schema 的根元素:
<?xml version="1.0"?>


<xs:schema>


...
...


</xs:schema>
<schema> 元素可包含属性。一个 schema 声明往往看上去类似这样:
<?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:schema>
代码解释:
下面的片断:
xmlns:xs="http://www.w3.org/2001/XMLSchema"
显示 schema 中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs:
这个片断:
targetNamespace="http://www.w3school.com.cn" 
显示被此 schema 定义的元素 (note, to, from, heading, body) 来自命名空间: "http://www.w3school.com.cn"。
这个片断:
xmlns="http://www.w3school.com.cn" 
指出默认的命名空间是 "http://www.w3school.com.cn"。
这个片断:
elementFormDefault="qualified" 
指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。
在 XML 文档中引用 Schema
此 XML 文档含有对 XML Schema 的引用:
<?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>
代码解释:
下面的片断:
xmlns="http://www.w3school.com.cn" 
规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 "http://www.w3school.com.cn" 这个命名空间。
一旦您拥有了可用的 XML Schema 实例命名空间:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
您就可以使用 schemaLocation 属性了。此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置:
xsi:schemaLocation="http://www.w3school.com.cn note.xsd"


XSD 元素
元素 解释
all 规定子元素能够以任意顺序出现,每个子元素可出现零次或一次。
annotation annotation 元素是一个顶层元素,规定 schema 的注释。
any 使创作者可以通过未被 schema 规定的元素来扩展 XML 文档。
anyAttribute 使创作者可以通过未被 schema 规定的属性来扩展 XML 文档。
appInfo 规定 annotation 元素中应用程序要使用的信息。
attribute 定义一个属性。
attributeGroup 定义在复杂类型定义中使用的属性组。
choice 仅允许在 <choice> 声明中包含一个元素出现在包含元素中。
complexContent 定义对复杂类型(包含混合内容或仅包含元素)的扩展或限制。
complexType 定义复杂类型。
documentation 定义 schema 中的文本注释。
element 定义元素。
extension 扩展已有的 simpleType 或 complexType 元素。
field 规定 XPath 表达式,该表达式规定用于定义标识约束的值。
group 定义在复杂类型定义中使用的元素组。
import 向一个文档添加带有不同目标命名空间的多个 schema。
include 向一个文档添加带有相同目标命名空间的多个 schema。
key 指定属性或元素值(或一组值)必须是指定范围内的键。
keyref 规定属性或元素值(或一组值)对应指定的 key 或 unique 元素的值。
list 把简单类型定义为指定数据类型的值的一个列表。
notation 描述 XML 文档中非 XML 数据的格式。
redefine 重新定义从外部架构文件中获取的简单和复杂类型、组和属性组。
restriction 定义对 simpleType、simpleContent 或 complexContent 的约束。
schema 定义 schema 的根元素。
selector 指定 XPath 表达式,该表达式为标识约束选择一组元素。
sequence 要求子元素必须按顺序出现。每个子元素可出现 0 到任意次数。
simpleContent 包含对 complexType 元素的扩展或限制且不包含任何元素。
simpleType 定义一个简单类型,规定约束以及关于属性或仅含文本的元素的值的信息。
union 定义多个 simpleType 定义的集合。
unique 指定属性或元素值(或者属性或元素值的组合)在指定范围内必须是唯一的。
XSD Restrictions/Facets for Datatypes
参阅 XSD 限定 / Facets
限定 描述
enumeration 定义可接受值的一个列表
fractionDigits 定义所允许的最大的小数位数。必须大于等于0。
length 定义所允许的字符或者列表项目的精确数目。必须大于或等于0。
maxExclusive 定义数值的上限。所允许的值必须小于此值。
maxInclusive 定义数值的上限。所允许的值必须小于或等于此值。
maxLength 定义所允许的字符或者列表项目的最大数目。必须大于或等于0。
minExclusive 定义数值的下限。所允许的值必需大于此值。
minInclusive 定义数值的下限。所允许的值必需大于或等于此值。
minLength 定义所允许的字符或者列表项目的最小数目。必须大于或等于0。
pattern 定义可接受的字符的精确序列。
totalDigits 定义所允许的阿拉伯数字的精确位数。必须大于0。
whiteSpace 定义空白字符(换行、回车、空格以及制表符)的处理方式。


对一个xml编写xsd的实例 有坛中兄弟给我发了一个xml,须写xsd验证,这方面我也是新手呢,不过看了http://www.w3school.com.cn/schema/index.asp的教程而已,所以这倒是我第一次写xsd了。给定xml (project_4.xml)文件如下:UWO>    Departments>  Department>   Name>EconomicsName>   Address>S 阅读详情

相关推荐

注册 XML Catalog 解决 Eclipse 中 XML 验证时 dtd /xsd 实体未找到 或 连接主机超时的问题

你可能曾遇到这样的问题:未找到外部实体:“http://java.sun.com/j2ee/dtds/web-app-2-2.dtd" 或者 host connect timeout: hibernate.sourceforge.net 这是由于 Eclipse 中的 XML 插件验证 XML  内容时 找不到相应的 DTD/XSD 文件,其实  Eclipse  自了  XML Catalog

humanity的专栏 5614

xsd文件规则和语法

1.简介 XSDXML结构定义, XML Schemas Definition。其本身就是用xml描述的, 且遵循xml语法规则。一份XML schema文件描述了XML文档的结构. 基本规则:   .必须以 XML 声明开头   .必须拥有唯一的根元素   .标签必须与结束标签相匹配   .元素对大小写敏感   .所有的元素都必须关闭   .所有的元素都必须正确地嵌套   .

z22708387的专栏 6432

XML Schema(XSD)

XML Schema只是XMLSchema语言当中的一种。因为容易与XML相混淆,有些人叫WXS(W3C XML Schema),有些人叫XSDXMLSchema Definition)。 XML Schema就是写一套规则来约束一个XML文档必须遵循的规范。但与其它Schema不同的是,XSD还会验证数据类型(datatypes)。验证后的这些反馈信息集对于XML文件处理软件来说非常有用,不

清箫的专栏 2614

XSDXml Schema Definiton)简介

XSD简介 一、前言 XSD是一门用以规定xml文件中某个元素(一般是搭配)的模型,用以规定一个xml文件中某个元素应该出现哪些字段,哪些字段需要出现几次等。XSD也是一门语言,下面从其数据结构和语法(指令)介绍。数据结构:基本数据结构、复合数据结构。指令:类型定义、元素定义分别介绍。最后介绍如何使用,需要搭配命名空间来使用,规定某个命名空间下的元素结构。 二、数据结构 xsd的数据类型括简易元...

Cherishhere的博客 9639

XML 学习笔记 7:XSD

本文章内容参考自: W3school XSD 教程 Extensible Markup Language (XML) 1.0 (Second Edition) XML Schema 2001 XML Schema Part 2: Datatypes Second Edition 文章目录1、XSD 是什么2、XSD 内置数据类型 - built-in datatypes2.1、基本数据类型 19 种2.1.1、基本字符串类型 1 种2.1.1.1、字符串 - string 简单类型2.1.2、基本数值类

走马观花 2752

XSD语法

最近给公司的一个快速开发框架的XML配置文件编写XSD,其中借鉴了Springde的XSD编写格式。正好也乘机对XSD做一次贴合实际的认知。

夫礼者的专栏 5503

XMLXSD

初识XMLXSD 最近在学习Spring,由于要写大量的xml配置文件,而且配置文件中也用到了xsd的相关知识,于是整理一些本人不熟悉的知识点.建议先学习html的相关知识.本文部分内容参考w3school. XML 类似HTML树结构,具有自我描述性语法,语法也类似html,不作多说. xml命名空间:如果两个不同的文档使用相同的元素名时,就会发生命名冲突. fil...

qq_37993487的博客 1万+

XML Schema (XSD) 学习总结,解读XML Schema(XSD)各个元素和属性的含义

云中君说: 学习XSD是我在学习框架的时候,希望认识和深刻学习框架中xml的配置,进而开始学习xsd。所以一大部分学习案例来自于W3School和String MVC框架的配置文件的xml引用的命名空间。 建议学习这个XSD的小伙伴可以先了解一下我的XML学习总结,在学习这一部分的内容! 如果在学习中发现我的以下问题和错误,可以私信告诉我,也可以在评论区留言给我,我们一起学习一起进步,谢谢大家的支...

L_ZG_的博客 1万+

使用xsd验证xml格式的正确性

3.该方式验证xml格式正确性,轻代码重xsd配置,但也有好处,当xml格式发生改变时,无需修改代码,只需要对应修改xsd即可,且相对代码来说,易上手。

qq_37016994的博客 4553

Java通过XSDXML Schema)校验XML

1.准备好正确的XML文件a.xml <?xml version="1.0"?> <note> <name>Tom</name> <gender>male</gender> <age>16</age> <address>changjiang road&...

谦虚使人发胖的博客 5302

如何从XML自动生成XSD Schema文件

</body>

weixin_29940495的博客 1484

XSD(XML Schema Definition)用法实例介绍以及C#使用xsd文件验证XML格式

XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD),作用是定义 XML 文档的合法构建模块,类似 DTD,但更加强大。作用有: ①定义可出现在文档中的元素 ②定义可出现在文档中的属性 ③定义哪个元素是子元素 ④定义子元素的次序 ⑤定义子元素的数目 ⑥定义元素是否为空,或者是否可含文本 ⑦定义元素和属性的数据类型 ⑧定义元素和属性的默认值以及固定值

gdjlc的专栏 1万+

XSD学习:超详细解析XSD中simpleType,complexType, simpleContent, complexContent

  前两天用了一下DOM4J,解析自己写的xml,但已经习惯了用各种提示来写xml文件,自己写还真不爽,就学了一下XSD。其中的simpleType,complexType,  simpleContent和complexContent标签,我一开始学得很迷,w3school上讲的太简单,网上的博客大概也都是复制粘贴,很少添加自己的理解,所以我真要吐槽一下网上那些博客帖(¥%*&amp;#&amp;...

↓ ↓ ↓ ↓ 2万+

xml schema编写

 什么是schema: XML Schema 是基于 XML 的 DTD 替代者。XML Schema 描述 XML 文档的结构。XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。 XML Schema 支持数据类型XML Schema 最重要的能力之一就是对数据类型的支持。通过对数据

浮白 2071

XML Schema定义

XML Schema定义XML Schema定义(XML Schema Definition,XSD)是一套W3C标准,用于基于XML的称为XML Schema的类型系统。用于定义的语言是一种称为XML模式定义语言(XML Schema Definition Language)的XML语法。Web 服务使用XML作为表示消息和数据的底层格式。因此,XSD成为Web服务类型系统的自然选择。关

穷人飞扬的专栏 2747

XSD工具简介

XSD使用方法介绍 XSD工具位于:C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin目录下。XSD工具有很多功能,如下: 1、将XDR 转换 XSD 使用精简 XML 数据架构文件生成 XML 架构。 XDR 为早期基于 XML 的架构格式。 2、XML转换XSD 使用 XML 文件生成 XML 架构。 3、XSD...

weixin_30699235的博客 2097

XML::XML SCHEMA学习三

 如何定义复合元素?请看这个复合 XML 元素,"employee",仅含其他元素:JohnSmith在 XML Schema 中,我们有两种方式来定义复合元素:1. 通过命名此元素,可直接对"employee"元素进行声明,就像这样: 假如您使用上面所描述的方法,那么仅有 "employee" 可使用所规定的复合类型

仰望者! 1505
上一篇: window平台nodejs的开发配置
下一篇: HTML普及贴
demoshow
博客等级 码龄12年 1粉丝 4原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值