XML文档的规范与约束

## 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>

原文地址:https://www.cnblogs.com/fangtingfei/p/11404031.html

时间: 2024-08-28 14:53:02

XML文档的规范与约束的相关文章

关于Spring配置文件xml文档的schema约束

最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. [html] view plain copy print? <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:m

(转载)将一段符合XML格式规范字符串插入已有XML文档当中

想我们已经存在一个XML文档,结构如下: < xmlversion="1.0"encoding="utf-8">< employees>< employeeclass>< firstname>symbol< /firstname>< lastname>sn< /lastname>< /employeeclass>< /employees> 现在我们想就向现有的

将Html文档整理为规范XML文档

有多种方式可以在.NET 平台进行HTML文件解析.数据提取,其中最简单.稳妥的办法是先使用工具将Html文档整理成XML文档,再通过XML Dom模型或XPath灵活地进行数据处理.SGML便是一个Html文档整理工具类库: Microsoft的XML大师Chris Lovett专门开发了一个SGML解析器,叫做SgmlReader,它可以解析HTML文件,甚至将它们转换成一个格式规范的结构. SgmlReader派生于XmlReader,这就是说,你可以像运用诸如XmlTextReader这

Spring中xml文档的schema约束

最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springfram

XML文档类型定义---DTD文档

DTD的作用 XML文档是一种元标记语言,即一种定义标记语言的语言.在XML中可以创建新的标记语言,这些新的标记语言(也叫标记集)要通过文档类型定义(Document Type Definitions,DTD)来定义.DTD文档是这些新的标记语言的法律性文档.如果XML文档的语法符,DTD的定义和规定,那么就称为一个合法的XML文档,否则就是非法的XML文档.合法的XML文档在实际应用中的地位很重要,因为只有合法的XML文档才能被应用软件有效地处理. DTD定义了文档的逻辑结构,规定了文档中所使

XML文档类型定义---XML Schema结构

5.1 Schema概述 XML Schema是2001年5月正式发布的W3C的推荐标准,经过数年的大规模讨论和开发如今终于尘埃落定,成为全球公认的XML环境下首选的数据建模工具. 使用DTD虽然带来较大的方便,但是,DTD存在一些缺陷:一是它用不同于XML的语言编写,需要不同的分析器技术.这增加了工具开发商的负担,降低了软件瘦身的可能性,此外开发人员需要多学一门语言及其语法.而XML Schema是按标准XML规则编写的,更容易掌握.二是DTD不支持名称空间.随着大部分的数据处理日益以XML为

源生API解析XML文档与dom4j解析XML文档

一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可以存储数据. 1.XML语言书写的注意事项 1.XML标签命名自定义[推荐英文],标签名中不能包含空格 2.XML空格和换行都表示数据,严格区分大小写 3.XML中特殊字符表示的数据需要使用特殊字符编码和HTML一样 4.CDATA区中的数据不会被识别为语法 <![CDATA[王天霸<>&l

四种生成和解析XML文档的方法详解

众所周知,现在解析XML的方法越来越多,但主流的方法也就四种,即:DOM.SAX.JDOM和DOM4J 一.介绍及优缺点分析 1. DOM(Document Object Model) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的. [优点]      ①允许应用

.Net中使用xsd验证xml文档

在.NET中使用XSD可以方便的验证一个XML文档是否符合规范.这里的XSD本质上是一个xml文件,XSD相当于数据库中的表结构或者C#语言中的一个抽象类,它规定了被验证的目标xml的结构,如目标xml具有哪些节点,每个节点的顺序关系,每个节点的数据类型,每个节点的出现次数等信息. .NET中通过XmlReader和XmlReaderSettrings类可以方便的对XML进行验证,示例代码如下: 1         static void Main(string[] args) 2 { 3 //