XML概念和两种约束Schema约束和DTD约束

1、XML

          1)什么是xml

                    a.指可扩展标记语言

                    b.是一种很像HTML的标记语言

                    c.设计宗旨是传输数据,而不是显示数据

                    d.标签没有被预定义,需要自行定义标签

                    e.被设计为具有自我描述性

                    d.是W3C的推荐标准

          2)xml和html之间的差异

                    a.xml被设计用来传输和存储数据,它的焦点是数据的内容

                    b.html被设计用来显示数据,他的焦点是数据的外观

                    c.html的主要工作是用来显示信息,而xml是用来传输信息

                    d.xml标签都是自定义的,而html的标签是预定义的

          3)xml的定义

                    a.新建一个.xml文件

                    b.声明xml文件

                               一个xml文件,必须在文件的首行进行版本和编码声明,和自定义的根标签

version
1.0(常用1.0)
encoding
utf-8(万国码)
students(根标签)
名字可自定义,但是在xml中的标签使用需要被包含在根标签之中
student(子标签)
名字可自定义,需要被包含在根标签里面,每个子标签可定义自己的属性等
<?xml version="1.0" encoding="utf-8" ?>
<students>
    <student id="" name=""></student>
    <student></student>
</students>

                               注意:在进行自定义声明xml文件时,首行的版本声明前面不能有空格,需要顶格声明;

                                          声明属性时,属性值必须被引号引起来;

                                          每个标签必须正确关闭;

                                          xml的标签时区分大小写的;

                                          在xml中有且仅有一个根标签

                    c.xml中的转义字符

 

普通字符xml中的转义字符
<&lt
>&gt
&&amp
'&apos
"&quot

          因为xml在java中,现在大多数都是做配置文件,框架的流行,xml也出现了两种特定的约束

          4)xml的两种约束

                    a.DTD约束

                    准备约束文件:note.dtd

<!ELEMENT notes (note*)>
        <!ELEMENT note (to,from+,heading,body>
        <!ELEMENT to (#PCDATA)>
        <!ELEMENT from EMPTY>
        <!ELEMENT heading (#PCDATA)>
        <!ELEMENT body ANY>
        <!ATTLIST to name CDATA #REQUIRED>
        <!ATTLIST to id ID #REQUIRED>
语法定义含义
<!ELEMENT 元素名称 类别> 
类别空标签EMPTY 表示元素一定是空元素
普通字符串 (#PCATA) 表示元素的内容一定是普通字符串(不能含有字标签)
任何内容ANY 表示元素的内容可以是任意内容 包括子标签
<!ELEMENT 元素名称 (子元素名称1,子元素名称2...)> 按照顺序出现子标签
标签+至少出现一次每个标签必须出现一次
标签*0或者n次
标签?0次或者1次
约束属性:<!ATTLIST 元素的名称 属性的名称 属性类型 默认值>
属性默认值#REQUIRED属性必须填写
#IMPLED属性不是必须填写的
#FIXED value属性不是必须的,但是值是固定的
属性的类型CDATA表示普通字符串
(en1,en2)表示任选一个值
ID表示在一个xml文件中属性值必须唯一 值不能用数字开头

                    DTD约束文件的使用

<?xml version="1.0" encoding="utf-8" ?>

<!--1、引入dtd约束:SYSTEM表示使用当前系统的哪个文件-->
<!DOCTYPE notes SYSTEM "note.dtd">
<notes>
    <note>
        <to name="张三" id="dddd">xxx</to>
        <from/>
        <heading></heading>
        <body></body>
    </note>

</notes>

                    b.Schema约束

                    准备约束文件:student.xsd

<?xml version="1.0" encoding="UTF-8" ?>

<!--targetNamespace:名称空间,可随便命名-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:cs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.csdn.com.cn"
           xmlns="http://www.csdn.com.cn"
           elementFormDefault="qualified">

    <xs:element name="note">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="to" type="xs:string"/>
                <xs:element name="from" type="xs:string"/>
                <xs:element name="heading" type="xs:string"/>
                <xs:element name="body" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>

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

                    schema约束文件的使用

<?xml version="1.0" encoding="UTF-8" ?>
<note xmlns="http://www.csdn.com.cn"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.csdn.com.cn"
>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
</note>

 

                    区别:

DTD约束Schema
语法相对简单,功能简单,学习成本低,适用于mybaits和Servlet语法非常复杂,功能更加抢答,学习成本高,适用于spring和servlet

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值