第1天 XML和DTD、schema约束

1、xml

* 扩展名:*.xml

* 作用:存储、配置

一个XML文件分为如下几部分内容:文档声明、元素、属性、注释  CDATA区、特殊字符、处理指令(processing instruction)。

1.1文档声明

最简单的声明语法:

<?xml version="1.0" ?>

version:设置当前xml文档内容使用的版本

用encoding属性说明文档的字符编码:

<?xml version="1.0" encoding="GB2312" ?>

用standalone属性说明文档是否独立:

<?xml version="1.0" encoding="GB2312"  standalone="yes" ?>

常见错误

没有写引号:<?xml version=1.0 ?>

输入内容中有中文: <?xml version=“1.0” ?>  //中文空格

编码错误,记事本设置编码UTF-8,用其他编辑器打开。

1.2元素

XML元素指XML文件中出现的标签,一个标签分为开始标签和结束标签。

格式:<x></x> or <x />,名称自定义

  • 建议字母开头
  • 区分大小写
  • 不能包含空格 <a b>
  • 不能包含冒号 <a:b>

注意:

  • 一个标签中也可以嵌套若干子标签,但不能交叉嵌套
  • 格式良好的xml文档只有一个根

  由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,使用换行和缩进等方式来让原文件中的内容清晰可读的“良好”书写习惯可能要被迫改变。

1.3属性

  • 前提:在某元素的基础上,确定相应的属性
  • 格式:<x attribute="attrValue"  />.

一个标签可以有多个属性,每个属性都有它自己的名称和取值。

属性值一定要用双引号(")或单引号(‘)引起来。

定义属性必须遵循与标签相同的命名规范。

1.4注释

格式:<!--注释内容-->

注意:XML声明之前不能有注释;注释不能嵌套

1.5转义字符

格式: &xx;  --> {详见“html转义.html”

HTML特殊转义字符列表

最常用的字符实体

Character Entities


显示


说明


实体名称


实体编号


半方大的空白


&ensp;



全方大的空白


&emsp;



不断行的空白格


&nbsp;


 


<


小于


&lt;


<


>


大于


&gt;


>


&


&符号


&amp;


&


"


双引号


&quot;


"


?


版权


&copy;


©


?


已注册商标


&reg;


®


?


商标(美国)


?



×


乘号


&times;


×


÷


除号


&divide;


÷

1.6 CDATA区

  在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理。遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直接原封不动的输出。

  • 在xml文档中存放任意内容的区域
  • 格式:<![CDATA[  cdata内>*容  ]]>

1.7处理指令(processing instruction,PI)

  处理指令用来指挥解析引擎如何解析XML文档内容。例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。

格式:<?xml-stylesheet type="text/css" href="uri"  ?>

  • type:类型,内容是MIME类型 image/jpeg
  • href:确定引用文件的位置。
  •     uri:统一资源标识符,1.html  news/m.html
  •     url:统一资源定位符,http://www.fengjie.com/news/m.html

处理指令必须以“<?”作为开头,以“?>”作为结尾,XML声明语句就是最常见的一种处理指令。

1.8 xml乱码

* 文档内容编码:UTF-8

* 文件编码:window默认GBK

* 解决文件乱码的方法:将文档内容编码与文件编码统一。

XML语法规则总结:

  • 所有 XML 元素都须有关闭标签
  • XML 标签对大小写敏感
  • XML 必须正确地嵌套顺序
  • XML 文档必须有根元素
  • XML 的属性值须加引号
  • 特殊字符必须转义
  • XML 中的空格会被保留

2、编码、字符集

UTF-8:万国码,(1-6字符)

GB2312:国标码(简体)

GBK:国标码(简体、繁体),GB2312升级版

GB18030:国标码(简体、繁体、少数名族),GBK升级版

BIG5:大5码(繁体)

ISO-8859-1:英文编码

3、约束

在XML技术里,可以编写一个文档来约束一个XML文档的书写规范,这称之为XML约束。

常用的约束技术有两种:XML DTD和XML schema

3.1 DTD约束

  DTD(Document Type Definition),全称为文档类型定义。DTD约束既可以作为一个单独的文件编写,也可以在XML文件内编写。XML文件使用 DOCTYPE 声明语句来指明它所遵循的DTD文件。

(1)文档关联方式

  • 内部关联格式:<!DOCTYPE 根元素 [语法]>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books [
<!ELEMENT books (book+)>
<!ELEMENT book (name,author,price)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>
<books>
<book>
    <name>Java</name>
    <author>LXH</author>
    <price>3212</price>
</book>
</books>
  • 外部关联格式:<!DOCTYPE 根元素 SYSTEM "URI">

book.dtd

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT books (book+)>
<!ELEMENT book (name,author,price)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT price (#PCDATA)>

book.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books SYSTEM "book.dtd">
<books>
<book>
    <name>Java</name>
    <author>LXH</author>
    <price>44</price>
</book>
</books>
  • 公共关联格式:<!DOCTYPE 根元素 PUBLIC "文档名称" "文档URL">

新建一个Web Project,J2EE Specification Level选择“J2EE1.3”,如图所示。

在新建的Web Project下有一个WebRoot文件夹,下面有个WEB-INFO,里面还有个web.xml文件,打开web.xml,里面内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

里面的“http://java.sun.com/dtd/web-app_2_3.dtd”就是使用了公共关联,按住Ctrl点击,可关联到此文档。

(2)元素

格式:<!ELEMENT 元素名称 元素内容的类型>

符号:

? : 0或1

+ : >=1

* : >=0

(): 分组

| : 选择

,: 顺序

类型:

  • #PCDATA,只能书写字符,不能包含子元素,注意: (#PCDATA)
  • EMPTY,元素内容为空
  • ANY,元素内容任意

例:book.dtd

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT books (book+)>
<!ELEMENT book (name,author*,version?,(year|price))>
<!ELEMENT name (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT year EMPTY>
<!ELEMENT price EMPTY>

book.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books SYSTEM "book.dtd">
<books>
<book>
    <name>Java</name>
    <author>LXH</author>
    <author>HLD</author>
    <version>v1.1</version>
    <price></price>
</book>
<book>
    <name>C++</name>
    <author>HLD</author>
    <year/>
</book>
</books>

(3)属性

格式:<!ATTLIST 元素名称 [属性名称 属性类型 约束 ...]>

属性类型及其含义:

约束的四种形式:

  • #REQUIRED,必须填写
  • #IMPLIED,可选
  • #FIXED value,固定值
  • defaultValue,默认值

例:book.dtd

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT books (book+)>
<!ELEMENT book (name,price)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>
<!ATTLIST book
    id ID #REQUIRED
    title CDATA #IMPLIED
    lang CDATA #FIXED "固定值"
    category CDATA "默认值"
    pid IDREF #REQUIRED
    city (北京|上海|广州) #REQUIRED
>

book.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books SYSTEM "book.dtd">
<books>
<book id="B001" title="" pid="B001" city="上海">
    <name>Java</name>
    <price></price>
</book>
<book id="B002" title="" category="类别" pid="B002" city="上海">
    <name>Java</name>
    <price></price>
</book>
</books>

(4)实体

实体是变量,用于引用普通文本或特殊字符的快捷方式的变量。

实体分为内部实体和外部实体。

  • 内部实体

内部实体分为引用实体和参数实体:

*引用实体:主要在 XML 文档中被应用。

  • 格式:<!ENTITY 实体名称 "内容">
  • 使用位置:在xml文档中使用
  • 使用格式:&实体名称;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books[
    <!ENTITY bookname "java">
    <!ELEMENT books (book+)>
    <!ELEMENT book (name,price)>
    <!ATTLIST book
        id ID #REQUIRED
        title CDATA #IMPLIED
        lang CDATA #FIXED "固定值"
        category CDATA "默认值"
        pid IDREF #REQUIRED
        city (北京|上海|广州) #REQUIRED
    >
]>
<books>
<book id="B002" title="" category="类别" pid="B002" city="上海">
    <name>&bookname;</name>
    <price>40</price>
</book>
</books>

*参数实体:被 DTD 文件自身使用

  • 格式:<!ENTITY % 实体名称 "内容">
  • 使用位置:在DTD文档中使用
  • 使用格式:%实体名称
<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY % fieldVal "name,age">
<!ELEMENT persons (person+,user+)>
<!ELEMENT person (%fieldVal;,tel)>
<!ELEMENT user (%fieldVal;,sal)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT tel (#PCDATA)>
<!ELEMENT sal (#PCDATA)>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books SYSTEM "book.dtd">
<persons>
    <person>
        <name>zhangsan</name>
        <age>32</age>
        <tel>1234</tel>
    </person>
    <user>
        <name>ls</name>
        <age>24</age>
        <sal>889</sal>
    </user>
</persons>

*外部实体

  • 格式:<!ENTITY 实体名称 SYSTEM "URI">
  • 使用位置:在xml文档中使用
  • 使用格式:&实体名称;

part.xml

<?xml version="1.0" encoding="UTF-8"?>
<entity>测试外部实体</entity>

book.dtd

<?xml version="1.0" encoding="UTF-8"?>
<!ENTITY part SYSTEM "part.xml">
<!ELEMENT books (book+)>
<!ELEMENT book ANY> <!--(#PCDATA)不能有子元素-->

book.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE books SYSTEM "book.dtd">
<books>
    <book>&part;</book>
</books>

<book>&part;</book>相当于<book><entity>测试外部实体</entity></book>

3.2 schema约束

XML Schema 文件自身就是一个XML文件,扩展名为*.xsd。XML Schema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。 XML Schema规定XML文档实例的结构和每个元素/属性的数据类型。

  • l  编写了一个XML Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上
  • l  在XML Schema技术中有一个专业术语来描述这个过程,即把XML Schema文档声明的元素绑定到一个名称空间
  • l  以后XML文件就可以通过这个URI(即名称空间)来告诉解析引擎,xml文档中编写的元素来自哪里,被谁约束

schema文档,根元素是schema,在http://www.w3.org/2001/XMLSchema定义

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.org/books"
    xmlns:tns="http://www.example.org/books"
    elementFormDefault="qualified">
     <xs:element name="books"></xs:element>
</xs:schema>

books为根元素

【targetNamespace】为当前的schema文档命名,属性在自定义。但是,要求全球唯一,采用URL域名进行命名。

【xmlns】xml namespace ——>xml命名空间。引用已有的命名空间,官方为自己的schema文档起的名称。

【xmlns:tns】

格式1:  xmlns:别名

使用:tns:schema,从当前别名tns所代表的schema文档中定义了schema元素

格式2 xmlns(默认命名空间引用)

好处:防止命名冲突

【elementFormDefault="qualified"】 指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。

命名空间的使用在XML中主要有两个目的:

n  用于区分那些名称相同但来自不同schema库,具有不同含义的元素和属性。通过将元素、属性与URL相关联,命名空间能够区分具有相同名称的元素

n  在一个单一的XML应用中,将相关的元素和属性组合起来,使它们可以很容易地被软件包识别。

名称空间用一个唯一的URI(Uniform Resource Identifier,统一资源标识符)表示,仅起到唯一标识的作用。

n  默认命名空间声明:不带前缀 ,默认命名空间只能有一个

  • 格式:xmlns=“url”
  • 例如:xmlns="http://www.w3.org/2001/XMLSchema"

n  显式命名空间声明:声明时指定前缀

一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档。并且根元素schema节点必须来自http://www.w3.org/2001/XMLSchema 命名空间,官方建议使用使用前缀 xs ,及xmlns:xs。

Schema相对于DTD的明显好处是,XML Schema文档本身也是XML文档,而不是像DTD一样使用自成一体的语法。

在文档关联中,如何确定文件的位置?

官方规定“http://www.w3.org/2001/XMLSchema-instance” 将当前的xml文档实例化

* schemaLocation属性(两个参数空格隔开)

* 第一参数:实例化所需要的schema文档的名称

* 第二参数:schema文档的URI

定义根元素element:<别名:element name=””>

调用schema(book.xml)

<?xml version="1.0" encoding="UTF-8"?>
<books xmlns="http://www.example.org/books"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/books books.xsd"
>
</books>

XML Schema基础概念:

简易元素:仅包含文本的元素。它不会包含任何其他的元素或属性。

复合元素:包含其他元素及/或属性的 XML 元素

l  空元素

l  包含其他元素的元素

l  仅包含文本的元素

l  包含元素和文本的元素

Schema文档中出现的元素标记


元素类型


描述


schema


声明一个已经声明的schema


element


声明一个元素


attribute


声明一个属性


simpleType


定义一个简单类型,它决定了元素和属性值的约束和相关信息


complexType


定义一个复合类型,它决定了一组元素和属性值的约束和相关信息


group


把一组元素声明组合在一起,以便它们能够一起被复合类型应用


attributeGroup


把一组属性声明组合在一起,以便它们能够一起被复合类型应用


simpleContent


应用于complexType,对它的内容进行约束和扩展等


choice


允许唯一的一个元素从一组中被选择


list


从一个特定数据类型的集合中选择定义一个简单类型元素


union


从一个特定简单数据类型的集合中选择定义一个简单类型元素


unique


定义一个属性或元素值,它必须在一个特定的范围内


sequence


给一组元素一个特定的序列


restriction


定义一个约束条件

例1:定义一个简单元素

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.example.org/books"
    xmlns:tns="http://www.example.org/books"
    elementFormDefault="qualified">

    <element name="books">
        <complexType>
            <sequence>
                <!-- 1、定义元素 -->
                <element name="ele"></element>
              <!—所有的元素必须定义在跟元素下面(这里) -->
</sequence>
        </complexType>
    </element>
</schema>

对应的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<!—-对应的xml文档-->
<books xmlns="http://www.example.org/books"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/books books.xsd"
>
    <ele></ele>
</books>

例2:定义元素包含子元素,子元素顺序出现

<element name="person">
    <complexType>
        <sequence>  <!-- 顺序 -->
            <element name="name"></element>
            <element name="age"></element>
        </sequence>
    </complexType>
</element>

例3:定义含有子元素的元素--任选一个

<element name="user">
    <complexType>
        <choice><!-- 选择 -->
            <element name="name"></element>
            <element name="age"></element>
        </choice>
    </complexType>
</element>

例4:定义含有子元素的元素--子元素没顺序

<element name="worker">
    <complexType>
        <all><!-- 无序的 -->
            <element name="name"></element>
            <element name="age"></element>
        </all>
    </complexType>
</element>

例5.1:仅含有属性的空元素

<element name="img">
    <complexType>
        <attribute name="src" type="string"/>
    </complexType>
</element>

例5.2:仅含有属性的空元素,属性必须写

<element name="img">
    <complexType>
        <!—【use】 optional:可选、required:必选、prohibited:禁用-->
        <attribute name="src" type="string" use="required"/>
    </complexType>
</element>

例6:必须含有属性的非空元素

<!-- <price unit="¥">30</price>     -->
<element name="price">
    <complexType> <!-- 类型为复合元素 -->
        <simpleContent><!-- 内容简单 -->
            <!--将简单的内容扩展成复杂的类型 【base】确定简单内容的类型  -->
            <extension base="integer">
            <!-- 定义属性:【name】确定名称、【type】确定类型、【use】optional:可选、required:必选、prohibited:禁用-->
                 <attribute name="unit" type="string" use="required">
                 </attribute>
            </extension>
        </simpleContent>
    </complexType>
</element>

例7:必须含有属性也包含子元素的元素

 <element name="book">
                     <complexType>
                         <sequence>
                             <element name="title" type="string"></element>
                         </sequence>
                         <attribute name="catagory" type="string"></attribute>
                     </complexType>
                 </element>

例8、元素内容必须是2-5之间的数

<element name="number">
    <simpleType>
        <restriction base="int"><!-- 限制 -->
            <maxInclusive value="5"/>
            <minInclusive value="2"/>
        </restriction>
    </simpleType>
</element>

例9:包含多个指定元素

<!--<students>
    <student></student>
    <student></student>
</students>
minOccurs:最小出现次数,默认为1
maxOccurs:最大出现次数,默认为1
?——>minOccurs=0;    maxOccurs =1
+ ——>minOccurs=1;    maxOccurs =unbounded
* ——>minOccurs=0;    maxOccurs =unbounded
 -->
<element name="students">
    <complexType>
        <sequence minOccurs="1" maxOccurs="unbounded">
            <element name="student"></element>
        </sequence>
    </complexType>
</element>

例10:将身份证号格式化

<element name="personId">
    <simpleType>
        <restriction base="string">
            <pattern value="\d{6}-\d{8}-\d{4}"></pattern>
        </restriction>
    </simpleType>
</element>

属性相关定义

l  attribute元素的use属性来定义是否是必须的属性

  • required是必须值
  • optional是可选值
  • prohibited是无属性值

l  缺省值如何定义

  • <attribute name="quantity" type="integer" default="1"/>

l  固定值如何定义

  • <attribute name="name" fixed="张三"></attribute

Schema和DTD区别

XML从SGML (Standard Generalized Markup Language,标准通用标记语言)中继承了DTD,并用它来定义内容的模型,验证和组织元素。同时,它也有很多局限:

  • DTD不遵守XML语法;
  • DTD不可扩展;
  • DTD不支持命名空间的应用;
  • DTD没有提供强大的数据类型支持,只能表示很简单的数据类型。

Schema完全克服了这些弱点,使得基于Web的应用系统交换XML数据更为容易。下面是它所展现的一些新特性:

  • Schema完全基于XML语法,不需要再学习特殊的语法;
  • Schema能用处理XML文档的工具处理,而不需要特殊的工具;
  • Schema大大扩充了数据类型,支持booleans、numbers、dates and times、URIs、integers、decimal numbers和real numbers等;
  • Schema支持原型,也就是元素的继承。如:我们定义了一个“联系人”数据类型,然后可以根据它产生“朋友联系人”和“客户联系”两种数据类型;
  • Schema支持属性组。我们一般声明一些公共属性,然后可以应用于所有的元素,属性组允许把元素、属性关系放于外部定义、组合;
  • 开放性。原来的DTD只能有一个DTD应用于一个XML文档,现在可以有多个Schema运用于一个XML文档。
时间: 2024-10-12 17:06:35

第1天 XML和DTD、schema约束的相关文章

理清XML,HTML,DTD,Schema,户阿由

其实我是很厉害的段子手,吹逼高手.很久很久以前,有一次,在那个那个地方...(啪)卢本伟闭嘴==! 1.HTML和XML没啥关系,XML和DTD,Schema比较亲近. 2.HTML是显示数据.XML是传输存储数据.(至于定义什么的自己去搜着看,我主要是了解他们干嘛的.) 3.DTD是一种语法规则,它用来规则XML文档怎么怎么写. 4.Schema就牛逼了,基于XML,只是功能比DTD更丰富,但是最最根本的目标,和DTD一样,为了让XML更方便写,传输存储处理数据上功能更强大. 5.DTD和Sc

【XML】——DTD &amp; Schema

视频中介绍了两个新颖的词汇:DTD和Schema.看完视频,我对这两个单词的理解是:对XML的规范.下 面看看它们俩是如何对XML进行规范化的,它们又有什么异同? XML规范之路--DTD DTD可以定义XML文件的结构:提供语法和规则:既可以定义在XML文件中也可以在XML文件外:对于 XML而言,DTD文件类型声明是可以缺少的. 对于DTD而言,可以分为XML内部声明与外部声明.简单的说,内部声明就是在XML文档内部使用,向函 数定义一样,先定义一个DTD在!DOCTYPE中,然后再XML文

XML的DTD和Schema约束

为什么要使用约束? XML是自定义的标签,有时候标签太多,记不住,所以就需要有约束来告诉我能写哪些标签,哪些标签写错了不能识别 XML中有哪几种约束? 有很多约束,其中DTD和Schema约束最为常见. 约束本质上是什么? 约束本质上也是一种xml文件. DTD约束和Schema约束的区别 特点的区别: DTD约束较为古老,简单,一些老框架使用DTD作为约束:Struts2和Hibernate都使用DTD作为其XML配置文件的约束 Schema约束功能更为强大,用的更为广泛,Tomcat和Spr

xml语法、DTD约束xml、Schema约束xml、DOM解析xml

今日大纲 1.什么是xml.xml的作用 2.xml的语法 3.DTD约束xml 4.Schema约束xml 5.DOM解析xml 1.什么是xml.xml的作用 1.1.xml介绍 在前面学习的html语言,html是超文本标记语言,使用html语言规定好的标签来封装文本数据.而html使用的标签html语言规定好的,每个标签都有自己特定的功能. xml语言,可扩展的标记语言,这门语言它没有定义任何的标记,而标记是由使用者自己来定义,但是由于标签名称以及属性名称都由用户自己来命名,导致别人在使

JavaWeb-06(Dom4j技术及Schema 约束、Tomcat与Web程序结构)

JavaWeb-06 JavaWeb-Dom4j技术及Schema 约束.Tomcat与Web程序结构 DOM4J及Schema 一.Dom4j解析(掌握) DOM4J解析XML文档 a. Dom4j是一个简单.灵活的开放源代码的库.Dom4j是由早期开发JDOM的人分离出来而后独立开发的.与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性. b. Dom4j是一个非常优秀的Java XML API,具有性能优异.功能强大和极

SCHEMA约束

SCHEMA约束: 一个xml文档中可以添加多个schema约束 xml和schema的关联. 格式: <根标签 xmlns="..." ...> <根标签 xmlns:别名="..." ...> 名称空间: 关联约束文件 规定元素是来源于那个约束文件的 例如: 一个约束文件中规定 table(表格)  表格有属性 row和col 还有一个约束文件规定 table(桌子) 桌子有属性 width和height 在同一个xml中万一我把两个约束

xml初步,DTD和Schema约束

XML 可扩展的标记语言(!!!可扩展) 作用 1.存放数据 2.配置文件 语法 文档声明 <?xml version="1.0" encoding="UTF-8"?> 1.文档声明必须为<?xml开头,以?>结束: 2.文档声明必须从文档的0行0列位置开始: 3.文档声明只有2个属性: version 版本 encoding 编码 元素 <bean></bean> 1.必须开始结束 2.标签由开始标签,元素体,结束标

Java 模拟servlet执行、DTD约束、Schema约束、dom4j解析(读写xml)

模拟servlet执行 浏览器请求WEB服务器上的资源,WEB服务器返回给浏览器 浏览器的入口不同(访问路径),访问的资源也不同. 我们需要使用xml约束(DTD或schema);为了获得xml的内容,我们需要使用dom4j进行解析. XML(不同路径(/hello)执行不同的资源( HeIIoMyServlet)) XML可扩展的标记语言  标签可自定义的 包下创建xml 文件   new → other  →  XMLFile 粘贴web-app_ 2_ 3.dtd文件 复制web-app_

二、XML的DTD和Schema

  1.DTD简单介绍   2.schema入门 schema出现的目的是通过一个更加合理的方式来编写xml的限制文件(基于xml语法的方式) schema可以使用命名空间来支持多个名称相同的元素 schema可以很好的完成对java或者所有对象的修饰并且提供了大量的数据类型     2.1.命名空间 在xml中引入schema 通过文件路径引入     2.2.元素和属性     2.3.相关约束   3.深入schema     3.1.数据模型的创建     3.2.相关的设计方案