ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XML文档的规范与约束

2019-08-24 12:03:12  阅读:282  来源: 互联网

标签:XML xml dtd 文档 xsd 约束


## XML:
 1. 概念:Extensible Markup Language 可扩展标记语言
  * 可扩展:标签都是自定义的。 <user>  <student>   * 功能
   * 存储数据
    1. 配置文件
    2. 在网络中传输
  * xml与html的区别
   1. xml标签都是自定义的,html标签是预定义。
   2. xml的语法严格,html语法松散
   3. xml是存储数据的,html是展示数据   * w3c:万维网联盟  2. 语法:
  * 基本语法:
   1. xml文档的后缀名 .xml
   2. xml第一行必须定义为文档声明
   3. xml文档中有且仅有一个根标签
   4. 属性值必须使用引号(单双都可)引起来
   5. 标签必须正确关闭
   6. xml标签名称区分大小写 * 组成部分:
   1. 文档声明
    1. 格式:<?xml 属性列表 ?>
    2. 属性列表:
     * version:版本号,必须的属性
     * encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1
     * standalone:是否独立
      * 取值:
       * yes:不依赖其他文件
       * no:依赖其他文件
   2. 指令(了解):结合css的
    * <?xml-stylesheet type="text/css" href="a.css" ?>
   3. 标签:标签名称自定义的
    * 规则:
     * 名称可以包含字母、数字以及其他的字符
     * 名称不能以数字或者标点符号开始
     * 名称不能以字母 xml(或者 XML、Xml 等等)开始
     * 名称不能包含空格    4. 属性:
    id属性值唯一
   5. 文本:
    * CDATA区:在该区域中的数据会被原样展示
     * 格式:  <![CDATA[ 数据 ]]>   一个XML小例子:
 1 <?xml version="1.0" encoding="utf-8" standalone='no' ?>
 2 <!--<?xml-stylesheet type="text/css" href="a.css" ?>-->
 3 
 4 <users>
 5 
 6     <user id='1'>
 7         <name>张三</name>
 8         <age>23</age>
 9         <gender>male</gender>
10         <br/>
11     </user>
12 
13     <user id='2'>
14         <name>lisi</name>
15         <age>24</age>
16         <gender>female</gender>
17 
18         <code>
19                <!-- if(a &lt; b &amp;&amp; a &gt; c){}-->
20             <![CDATA[
21                 if(a < b && a > c) {}
22             ]]]>
23 
24 
25         </code>
26 
27     </user>
28 
29 </users>

 

* 约束: 约束与XML文件的作用与关系:        概念:规定xml文档的书写规则    * 作为框架的使用者(程序员):
    1. 能够在xml中引入约束文档
    2. 能够简单的读懂约束文档
   
   * 分类:
    1. DTD:一种简单的约束技术
    2. Schema:一种复杂的约束技术
   * DTD:
    * 引入dtd文档到xml文档中
     * 内部dtd:将约束规则定义在xml文档中
     * 外部dtd:将约束的规则定义在外部的dtd文件中
      * 本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
      * 网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">       DTD的引入和使用举例:(了解)   dtd文件的创建:student.dtd
1 <!ELEMENT students (student+) >
2 <!ELEMENT student (name,age,sex)>
3 <!ELEMENT name (#PCDATA)>
4 <!ELEMENT age (#PCDATA)>
5 <!ELEMENT sex (#PCDATA)>
6 <!ATTLIST student number ID #REQUIRED>

  dtd文件在XML文件中的引入和使用:student.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE students SYSTEM "student.dtd">
 3 
 4 <!--<!DOCTYPE students [
 5 
 6         <!ELEMENT students (student+) >
 7         <!ELEMENT student (name,age,sex)>
 8         <!ELEMENT name (#PCDATA)>
 9         <!ELEMENT age (#PCDATA)>
10         <!ELEMENT sex (#PCDATA)>
11         <!ATTLIST student number ID #REQUIRED>
12 
13 
14         ]>-->
15 <students>
16     
17     <student number="s001">
18         <name>zhangsan</name>
19         <age>abc</age>
20         <sex>hehe</sex>
21     </student>
22 
23     <student number="s002">
24         <name>lisi</name>
25         <age>24</age>
26         <sex>female</sex>
27     </student>
28     
29 </students>

 


   * Schema:
    * 引入:
     1.填写xml文档的根元素
     2.引入xsi前缀.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3.引入xsd文件命名空间.  xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"
     4.为每一个xsd约束声明一个前缀,作为标识  xmlns="http://www.itcast.cn/xml"     <students   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://www.itcast.cn/xml"
     xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd">
 

   Schema的引用和使用举例:(了解)

  xsd文件的创建:

student.xsd

 

 1 <?xml version="1.0"?>
 2 <xsd:schema xmlns="http://www.itcast.cn/xml"
 3         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 4         targetNamespace="http://www.itcast.cn/xml" elementFormDefault="qualified">
 5     <xsd:element name="students" type="studentsType"/>
 6     <xsd:complexType name="studentsType">
 7         <xsd:sequence>
 8             <xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/>
 9         </xsd:sequence>
10     </xsd:complexType>
11     <xsd:complexType name="studentType">
12         <xsd:sequence>
13             <xsd:element name="name" type="xsd:string"/>
14             <xsd:element name="age" type="ageType" />
15             <xsd:element name="sex" type="sexType" />
16         </xsd:sequence>
17         <xsd:attribute name="number" type="numberType" use="required"/>
18     </xsd:complexType>
19     <xsd:simpleType name="sexType">
20         <xsd:restriction base="xsd:string">
21             <xsd:enumeration value="male"/>
22             <xsd:enumeration value="female"/>
23         </xsd:restriction>
24     </xsd:simpleType>
25     <xsd:simpleType name="ageType">
26         <xsd:restriction base="xsd:integer">
27             <xsd:minInclusive value="0"/>
28             <xsd:maxInclusive value="256"/>
29         </xsd:restriction>
30     </xsd:simpleType>
31     <xsd:simpleType name="numberType">
32         <xsd:restriction base="xsd:string">
33             <xsd:pattern value="heima_\d{4}"/>
34         </xsd:restriction>
35     </xsd:simpleType>
36 </xsd:schema> 

  xsd约束文件在XML文件中的引用和使用:

student.xml

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!-- 
 3     1.填写xml文档的根元素
 4     2.引入xsi前缀.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     3.引入xsd文件命名空间.  xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"
 6     4.为每一个xsd约束声明一个前缀,作为标识  xmlns="http://www.itcast.cn/xml" 
 7     
 8     
 9  -->
10 <students   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
11             xmlns="http://www.itcast.cn/xml"
12             xsi:schemaLocation="http://www.itcast.cn/xml  student.xsd"
13 >
14     <student number="heima_0001">
15         <name>tom</name>
16         <age>18</age>
17         <sex>male</sex>
18     </student>
19 
20 </students>

 

 

 

标签:XML,xml,dtd,文档,xsd,约束
来源: https://www.cnblogs.com/fangtingfei/p/11404031.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有