博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在XML里的XSD和DTD以及standalone的使用2----具体使用详解
阅读量:5962 次
发布时间:2019-06-19

本文共 2702 字,大约阅读时间需要 9 分钟。

如何定义XSD并在XML中使用XSD

同时XSD可以对XML中的格式进行约束,当约束失败时给出提示。

 

下面以下使用VS2010为平台进行演示。

1.新建一个项目,然后在项目中添加xml架构文件(.xsd结尾的文件),本示例是新建一个网站,在网站中新建项XML架构文件,后缀是.xsd,命名为XMLSchema2.xsd

 

2.平台自动生成如下内容:

 

其中xmlns在使用XML引入XSD文件时比较重要。

3.现在开始定义XSD

 

<?xmlversion="1.0"encoding="utf-8"?>

<xs:schemaid="XMLSchema2"

targetNamespace="http://tempuri.org/XMLSchema2.xsd"

elementFormDefault="qualified"

xmlns="http://tempuri.org/XMLSchema2.xsd"

xmlns:mstns="http://tempuri.org/XMLSchema2.xsd"

xmlns:xs="http://www.w3.org/2001/XMLSchema"

<xs:elementname="通讯录">

<xs:complexType>

<xs:sequence>

<xs:elementref="记录"maxOccurs="unbounded"/>

</xs:sequence>

</xs:complexType>

</xs:element>

 

<xs:elementname="记录">

<xs:complexType>

<xs:sequence>

<xs:elementref="姓名"/>

<xs:elementref="关系"/>

<xs:elementref="工作单位"/>

<xs:elementref="职位"/>

<xs:elementref="电话"/>

<xs:elementref="手机"/>

<xs:elementref="电子邮件"/>

</xs:sequence>

<xs:attributename="编号"use="required">

<xs:simpleType>

<xs:restrictionbase="xs:decimal"/>

</xs:simpleType>

<!--说明编号属性的类型:必须为整数-->

</xs:attribute>

</xs:complexType>

</xs:element>

 

<xs:elementname="姓名">

<xs:simpleType>

<xs:restrictionbase="xs:string"/>

</xs:simpleType>

<!--补充姓名的类型:字符串-->

</xs:element>

 

<xs:elementname="关系">

<xs:simpleType>

<xs:restrictionbase="xs:string">

<xs:enumerationvalue="朋友"/>

<xs:enumerationvalue="同事"/>

<xs:enumerationvalue="亲属"/>

<xs:enumerationvalue="一般"/>

</xs:restriction>

</xs:simpleType>

<!--补充关系的类型:必须为朋友、同事、亲属、一般中的一种,不能重复-->

</xs:element>

 

<xs:elementname="工作单位">

<xs:simpleType>

<xs:restrictionbase="xs:string"/>

</xs:simpleType>

<!--补充工作单位的类型:字符串-->

</xs:element>

 

<xs:elementname="职位">

<xs:simpleType>

<xs:restrictionbase="xs:string"/>

</xs:simpleType>

<!--补充职位的类型:字符串-->

</xs:element>

 

<xs:elementname="电话">

<xs:simpleType>

<xs:restrictionbase="xs:string">

<xs:patternvalue="\d{3}-\d{8}"></xs:pattern>

</xs:restriction>

</xs:simpleType>

<!--补充电话的类型:按照形式“区号-号码”表示,其中区号占3位,号码占8位-->

</xs:element>

 

<xs:elementname="手机">

<xs:simpleType>

<xs:restrictionbase="xs:decimal">

<xs:patternvalue="\d{7,12}"/>

</xs:restriction>

</xs:simpleType>

<!--补充手机的类型:必须为数字,长度介于7-12位之间-->

</xs:element>

 

<xs:elementname="电子邮件">

<xs:simpleType>

<xs:restrictionbase="xs:string">

<xs:patternvalue="^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"/>

</xs:restriction>

</xs:simpleType>

<!--补充电子邮件的类型:形如“邮件名@域名”-->

</xs:element>

</xs:schema>

 

“<xs:pattern”节点下的value支持正则表达式来验证。

4.接下来在XML中引入XSD文件,对XML的节点输入值进行约束

5.创建一个XML文件,并命名为XMLFile2.xml

 

平台只生成一行代码。

6.添加对XSD文件的引用

 

一个XSD必定只有一个根结点,因此,此处将根结点也写于头部。

添加两个属性:

xmlns作为XSD所在的命名空间

xmlns:xsi作为本XML文件的命名空间,即XSD的一个实例(instance)。

7.开始编写XML文件

8.输入<,发现它自动跳出可选的节点

 

这个就是XSD的作用之一。

9.继续输入,直到电话节点

 

提示模式约束失败。这是XSD的作用之二。

实际上,XSD是这样定义的:

 

10.改到“区号-号码”的3+8形式,错误提示消失

 

11.同理,对于邮箱地址

 

 

12.改成正确形式

 

13.完毕

转载地址:http://fzjax.baihongyu.com/

你可能感兴趣的文章
Beyond Compare 激活解决办法
查看>>
linux 低级文件编程(内核级别)
查看>>
【每天记一点】jquery设置radio选中遇到的问题
查看>>
main调用静态函数时候注意问题
查看>>
useradd
查看>>
PHP常量详解:define和const的区别
查看>>
centos下virtualbox里面xp 安装VBoxGuestAdditions
查看>>
vmware 新建的虚拟机安装vmtools 提升性能
查看>>
dstat简介
查看>>
libgdx游戏引擎开发笔记(四)文字显示BitmapFont
查看>>
libgdx游戏引擎开发笔记(八)SuperJumper游戏例子的讲解(篇二)---- 游戏界面跳转...
查看>>
资料集锦
查看>>
Jmeter查看QPS和响应时间随着时间的变化曲线
查看>>
phpstrom for mac 默认快捷键
查看>>
ES Java API_基于search template实现按品牌分页查询模板
查看>>
安全与漏洞工具篇
查看>>
如何用jquery获取input输入框中的值?
查看>>
对datatable的行进行数据填充、增、删、改
查看>>
Java记录 -80- 深入理解枚举(Enums)
查看>>
Spark On K8s源代码解析
查看>>