XML学习小结

XML:

XML是一种可扩展的标记性语言,被设计用来存储和传输数据。

XML 标签没有被预定义,开发者需要自行定义标签。 

XML被设计为具有自我描述性。

XML是W3C的推荐标准。

XML使用了简单的具有自我描述性的语法:

<?xml version="1.0" encoding="utf-8"?>  //XML声明,定义XML的版本(只有1.0这一个版本),定义XML所使用的字符编码(这里是utf-8)
<note>  //根标签
<to>George</to>  //子标签,这一行也代表一个XML元素: 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分
<from name="john">John</from>  //name="john"为XML属性
<Heading>Reminder</Heading>  //XML标签大小写必须一致
<body>Don't forget the meeting!</body>
</note>  //结束标签
注意:所有XML元素都必须有关闭标签,XML标签对大小写敏感,XML标签必须正确嵌套,XML文档必须有根元素,XML的属性值须加引号,在XML中空格会被保留。
XML中的注释:<!-- This is a comment -->

 
XML的DTD验证:
在一份XML文件中引入DTD验证文件,须在XML声明之后加上如下内容:
<!DOCTYPE XML文件的根标签 SYSTEM "DTD文件名.dtd">

DTD 的作用是定义 XML 文档的结构。它使用一系列合法的元素来定义文档结构:

<!DOCTYPE note [   //定义此文档是 note 类型的文档
  <!ELEMENT note (to,from,heading,body)>   //定义 note 元素有四个元素:"to、from、heading,、body"
  <!ELEMENT to      (#PCDATA)>    // 定义 to元素为 "#PCDATA" 类型
  <!ELEMENT from    (#PCDATA)>
  <!ELEMENT heading (#PCDATA)>
  <!ELEMENT body    (#PCDATA)>
]> 

DTD元素声明使用下面的语法:

<!ELEMENT 元素名称 类别> 或者 <!ELEMENT 元素名称 (元素内容)>
+:<!ELEMENT 元素名称 (子元素名称+)>    //声明最少出现一次的元素

?:<!ELEMENT 元素名称 (子元素名称?)>     //声明出现零次或一次的元素
*:<!ELEMENT 元素名称 (子元素名称*)>    //声明出现零次或多次的元素

DTD属性声明拥使用下列语法:

<!ATTLIST 元素名称 属性名称 属性类型 默认值>
属性类型:

默认值:

DTD实体声明拥使用下列语法:

内部实体:<!ENTITY 实体名称 "实体的值">
外部实体:<!ENTITY 实体名称 SYSTEM "URI/URL">
在XML文件中使用实体的时候,须按照 &+实体名+; 这种写法。

XML Schema:
XML Schema是基于XML的DTD替代者,是用来描述XML文档结构的。
1.创建一个XML Schema:(创建一个后缀为.xsd的XML文件)

1.1文档说明:<?xml version="1.0" encoding="UTF-8"?>;

1.2以schema标签为根标签;

1.3在schema标签中添加命名空间:

a) 首先引入xmlns:xs="http://www.w3.org/2001/XMLSchema" ;

b) targetNameSpace="http://www.my.com/newschema"声明一个我们自己的命名空间(uri);

c) xmlns:myns="http://www.my.com/newschema";

d) elementFormDefault="qualified"严格按照我们的schema文档约束我们要编写的xml文件。

1.4然后我们就可以再schema标签中添加其他标签来编写我们的xml约束。

2.将schema文档引入要约束的xml文件:

在根标签中,加入:

a) xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"要引入我们的schema文档需要使用这个命名空间中的属性;

b) xsi:schemaLocation="http://www.my.com/newschema newschema.xsd" 使用上面引入的命名空间xsi中的schemalocation读取我们的schema文档,首先要填入我们的schema文档的命名空间的uri,然后空格,再填入我们的schema文档的名字;

c) 在通过引入命名空间的方法,将我们的schema文档的命名空间引入。

3.简单元素:

xml: <elementname >信息</elementname>  

schema:   <element name="标签名" type="信息的类型">

4.对简单元素内容的约束:

4.1首先在我们要约束的元素中添加一个simpleType的标签;

4.2然后在simpleType中添加一个restricetion标签,这个标签中有一个重要的属性:base,需要填入我们这个信息类型是基于哪一种类型的;

4.3在restricetion标签中,我们就可以加入我们对信息内容的一个具体的约束了;

4.3.1枚举约束 enumeration ;

4.3.2对大小值的限定 :

a) mininclusive 设定最小值,这种包含最小值的;

b) minEnclusive 设定最小值,但是不包含最小值;

c) maxinclusive 设定最大值,包含最大值;

d) maxEnclusive 设定最大值,但是不包含最大值。

4.3.3样式约束:

a) [a-zA-Z]这一位字符,在a-z的大小写中任选一个填入;

b) male|female这里需要多选一来填入信息内容;

c) ([a-z][0-9])+  这里小写字母+一位数字的格式重复(可以1次可以多次)。

5.复合元素的约束:

5.1首先我们在要约束的元素中添加一个complexType的标签;

5.2然后我们要填入指示器(eq:sequence);

5.3添加子元素,子元素可以使复合元素也可以使简单元素。

6.属性定义:

6.1定义的格式:<xs:attribute name="xxx" type="yyy"/>;

6.2属性定义可以定义在complexType中;

6.3属性定义中use表示这个属性是否需要出现在元素中:

a) optional:可出现可不出现;

b) prohibited:不能出现;

c) required:必须出现。

6.4如果要在简单元素中添加属性,还是需要complexType,只是我们需要在这个标签中使用simplecontent标签,其中使用extension标签,用来扩展我们的简单元素,添加属性。

7.顺序指示器:

7.1sequence:指定了子元素必须出现并且要按照定义的顺序依次出现 ;

7.2all:指定了子元素可以以任意顺序出现,只出现一次;

7.3choice:指定子元素中,仅可以出现一个(可以使用maxOccurs修改)。

8.数量指示器:

这种指示器不是以元素(标签)的形式出现,而是以子元素的属性的方式出现。 minOccurs 设置出现的最少次数;maxOccurs设置出现的最多次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值