首页 > 代码库 > xml

xml

一、HTML和xml的区别:

    html语法松散,xml语法严格

    HTML做页面展示,xml做数据存储

    HTML所有标签都是预定义的,xml所有标签都是自定义的。

二、xml语法:

    文档声明(必须写在文档第一行 <?xml version="1.0" encoding="utf-8" ?>)

    元素(有且只有一个根元素,需要正确闭合,正确嵌套,名称区分大小写,不能数字开头)

    文本(CDATA区<![CDATA[数据内容]]>里边的数据会原样显示,就是为了将数据转换成文本类型)

三、xml约束:约定书写顺序书写规则书写内容

   dtd约束:

    内部dtd:在xml内部定义dtd

    外部dtd:在外部文件中定义dtd

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

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

   scheme:比dtd更加严谨,结构更清晰

  导入xsd约束文档:

      1.编写根标签

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

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

      4.引入默认名称空间

<?xml version="1.0"?>
<xsd:schema xmlns="http://www.ethan0603.cn/xml"
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://www.ethan0603.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="age" type="ageType" />
            <xsd:element name="sex" type="sexType" />
        </xsd:sequence>
        <xsd:attribute name="number" type="numberType" use="required"/>
    </xsd:complexType>
    <xsd:simpleType name="sexType">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="http://www.mamicode.com/male"/>
            <xsd:enumeration value="http://www.mamicode.com/female"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="ageType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="http://www.mamicode.com/0"/>
            <xsd:maxInclusive value="http://www.mamicode.com/256"/>
        </xsd:restriction>
    </xsd:simpleType>
    <xsd:simpleType name="numberType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="http://www.mamicode.com/ethan0603_/d{4}"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>
在xml文件中引入上面的xsd文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!--
    1、编写根标签
    2、引入实例名称空间 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3、引入名称空间 xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"    
    4、引入默认的名称空间

-->
<students
    xmlns="http://www.ethan0603.cn/xml"
    xsi:schemaLocation="http://www.ethan0603.cn/xml student.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
    <student number="itheima_1001">
        <name>asfd</name>
        <age>12</age>
        <sex>male</sex>
    </student>  
</students>

xml