Cheug's Blog

当前位置:网站首页 / 技术积累 / 正文

XML

2019-05-10 / 技术积累 / 990 次围观 / 0 次吐槽 /

XML: extensible Markup Language 可扩展标记语言 version="1.0"

可扩展:所有的标签都是自定义的。  

功能:用于数据存储、配置文件、数据传输


htmlxml区别

Ø html语法松散,xml语法严格

Ø html做页面展示,xml做数据存储

Ø html所有标签都是预定义的,xml所有标签都是自定义的

 

xml语法

 文档声明

            必须写在xml文档的第一行写法:<?xml version="1.0" ?>

            属性:

            version:版本号 固定值 1.0

            encoding:指定文档的码表。一般写utf-8,也可以 iso-8859-1

            standalone:指定文档是否独立  yes no 【很少用】

            如果是yes,则表示这个XML文档时独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表示可以用外部的DTD规范文档。

 元素:xml文档中的标签

            文档中必须有且只能有一个根元素

            元素需要正确闭合。<body></body> <br/>

            元素需要正确嵌套

            元素名称要遵守:

            元素名称区分大小写

             数字不能开头

 文本

            转义字符:>

            CDATA: 里边的数据会原样显示,不会产生歧义

            <![CDATA[ 数据内容 ]]>

    属性

            属性值必须用引号引起来。单双引号都行

    注释

            使用<!-- -->

案例:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<stulist>
    <student id="3">
    <name>AAA</name>
    <password>123</password>
    <gender>女</gender>
    <birthday>1983-10-11</birthday>
    </student>
    <student id="2">
    <name>BBB</name>
    <password>123</password>
    <gender>女</gender>
    <birthday>1984-10-11</birthday>
    </student>
    <student id="3">
    <!-- <![CDATA[]]> 表示转义 -->
    <name><![CDATA[&glt;>CCC<]]></name>
    <password>123</password>
    <gender>女</gender>
    <birthday>1982-10-11</birthday>
    </student>
</stulist>

XML约束

        约束的分类

                dtd约束或者schema约束

        dtd约束使用

                第一步:创建一个student.dtd约束文件

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT students (student*) >
<!ELEMENT student (name,password,gender,birthday)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT password (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ELEMENT birthday (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>

    ATT:Attribute 属性的意思

      第二步:在xml添加约束

        image.png

            xml中引用dtd的方式

            1.本地dtd文件:<!DOCTYPE students SYSTEM  "student.dtd">

            2.网络dtd文件:<!DOCTYPE students PUBLIC "名称空间"  "student.dtd">

        schema约束的使用

                    第一步:创建一个xsd约束文件

<?xml version="1.0"?>
<xsd:schema xmlns="http://www.gyf.cn/xml"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.gyf.cn/xml" elementFormDefault="qualified">
    <xsd:element name="students" type="studentsType"/>
    <xsd:complexType name="studentsType">
        <xsd:sequence>
            <xsd:element name="student" type="studentType" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="studentType">
        <xsd:sequence>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="password" type="xsd:string" />
            <xsd:element name="gender" type="genderType" />
            <xsd:element name="birthday" type="xsd:string" />
        </xsd:sequence>
        <xsd:attribute name="number" type="numberType" use="required"/>
    </xsd:complexType>
    <xsd:simpleType name="genderType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="male"/>
            <xsd:enumeration value="female"/>
        </xsd:restriction>
    </xsd:simpleType>
    
    <xsd:simpleType name="numberType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="itgyf_\d{4}"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>

        第二步:在xml引用xsd

                    导入xsd约束文档:

                    1.编写根标签

                    2.引入实例名称空间 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

                    3.引入名称空间 xsi:schemaLocation="http://www.gyf.cn/xml student.xsd"

                    4.引入默认的名称空间

    image.png

Powered By Cheug's Blog

Copyright Cheug Rights Reserved.