• 自定义XML


    目录:
    xml简介
    xml语法
    dtd简介
    dtd语法
    案例

    XML

    简介

    1、XML 指可扩展标记语言(eXtensible Markup Language)
    2、XML 被设计用来传输和存储数据,是通用的数据传输方式,兼容性非常好,XML 于 1998 年 2 月 10 日成为 W3C 的推荐标准。
    3、XML和HTML结构非常像,但两者有着本质区别。XML针对数据传输。HTML针对数 据展示
    4、因为 XML 语言没有预定义的标签,所以如果我们要规范XML那么就必须用到DTD文件了

    XML实例

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html SYSTEM "TrainNumber03.dtd">
    <Person>
    	<Name>张三</Name>
    	<Age>18</Age>
    	<Sex>女</Sex>
    </Person>
    

    注意:xml文件开通一定要声明

    version 代表版本     encoding 代表编码格式
    <?xml version="1.0" encoding="UTF-8"?>
    

    dtd文件

    简介

    文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。简单了解就是制定了xml数据格式规范。

    语法

    xml使用DTD

    方法1:外部文件引入XML

    <!DOCTYPE 根节点名称 SYSTEM "文件名.dtd">
    

    方法2:使用内部dtd文件

    <!DOCTYPE 根节点名称 [
        dtd文件信息
    ]>
    

    元素

    声明节点。并指定它的子节点

    dtd:
    单个子节点
    <!ELEMENT a (b)>
    多个子节点
    <!ELEMENT a (b, c)>
    声明一下子节点(也可用不声明,不声明那么就是混乱规则。子节点内的规则并没有被元素)
    <!ELENEET b (#PCDATA)>
    <!ELEMENT c (#PCDATA)>
    xml
    <a>
    	<b>1<b>
    	<c>c<c>
    <a>
    

    声明一个文本节点

    dtd:
    <!ELEMENT a (#PCDATA)>
    xml:
    <a>我是文本<a>
    

    声明一个空节点

    dtd:
    <!ELEMENT br EMPTY>
    XML:
    <br />
    

    特别注意:子节点可多个根节点只能有一个

    属性

    语法:
    <!ATTLIST 点名称 属性名称 CDATA #REQUIRED| #IMPLIED| #FIXED "固定的值">
    例:
    dtd:
    <!ELEMENT note EMPTY>
    <!ATTLIST note border CDATA #REQUIRED>
    xml:
    <note border="1"/>
    

    REQUIRED: 必须设置该属性

    IMPELIPD:可用设置也可用不设置

    FIXED:说明该属性取值固定为一个值,在XML中不能为该属性设置其它值。 但需要为该属性提供这个值.

    FIXED的声明方式

    dtd
    <!ATTLIST sender company CDATA #FIXED "Microsoft">
    合法的 XML:
    <sender company="Microsoft" />
    非法的 XML:
    <sender company="W3Schools" />
    

    元素次数限制
    也就是我们指定子节点在其父节点中出现的次数

    符号 次数
    + 1 ~ n
    * 0 ~ n
    0 ~ 1
    不指定 必须也只能出现 1次

    例:

    <!ELEMENT Persons (Person+)>
    

    案例

    使用xml展示车次信息,并使用dtd规范格式

    DTD:

    <?xml version="1.0" encoding="UTF-8"?>
    <!ELEMENT TrainNumbers (TrainNumber+)>
    <!ELEMENT TrainNumber (Number, Startadd, Endadd, StartTime, EndTime, Diachronic)>
    <!ELEMENT Number (#PCDATA)>
    <!ELEMENT Startadd (#PCDATA)>
    <!ELEMENT Endadd (#PCDATA)>
    <!ELEMENT StartTime (#PCDATA)>
    <!ELEMENT EndTime (#PCDATA)>
    <!ELEMENT Diachronic (#PCDATA)>
    

    XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE TrainNumbers SYSTEM 'TrainNumberD.dtd'>
    <TrainNumbers>
    	<TrainNumber>
    		<Number>k1375</Number>
    		<Startadd>长沙</Startadd>
    		<Endadd>上海南</Endadd>
    		<StartTime>00:06</StartTime>
    		<EndTime>15:13</EndTime>
    		<Diachronic>15:07</Diachronic>
    	</TrainNumber>
    	<TrainNumber>
    		<Number>G1342</Number>
    		<Startadd>长沙南</Startadd>
    		<Endadd>上海虹桥</Endadd>
    		<StartTime>07:06</StartTime>
    		<EndTime>12:14</EndTime>
    		<Diachronic>05:08</Diachronic>
    	</TrainNumber>
    	<TrainNumber>
    		<Number>G1778</Number>
    		<Startadd>长沙南</Startadd>
    		<Endadd>上海虹桥</Endadd>
    		<StartTime>07:15</StartTime>
    		<EndTime>12:54</EndTime>
    		<Diachronic>07:22</Diachronic>
    	</TrainNumber>
    </TrainNumbers>
    

    更详细请查看:
    XML教程
    DTD教程

  • 相关阅读:
    git
    centos7安装python3和ipython
    centos7 安装mysql5.7
    ceph-文件存储
    ceph-对象存储
    ceph-块存储客户端
    ceph-简介及安装(luminous)版
    centos7 kvm安装使用
    webpack多页面应用打包问题-新增页面打包JS影响旧有JS资源
    webpack4.0 babel配置遇到的问题
  • 原文地址:https://www.cnblogs.com/IT-CPC/p/10912621.html
Copyright © 2020-2023  润新知