zoukankan      html  css  js  c++  java
  • 什么是XML? 什么是DTD?

    XML

      XML称为Extensible Markup Language,意思是可扩展的标记语言。XML语法上和HTML比较相似,但HTML中的元素是固定的,而XML的标签是可以由用户自定义的。

      W3C在1998年2月发布1.0版本,2004年2月义发布1.1版本,但因为1.1版本不能向下兼容1.0版本,所以1.1没有人用。同时,在2004年2月W3C又发布了1.0版本的第三版。

      XML文档声明  

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

      1.文档声明必须为<?xml开头,以?>结束;

      2.文档声明必须从文档的0行0列位置开始:

      3.文档声明只有属性:

        a) versioin:指定XML文档版本。必须属性,因为我们不会选择1.1,只会选择1.0;

        b) encoding:指定当前文档的编码。可选属性,默认值是。utf-8:

      元素element

      1.元素XML文档中最重要的组成部分,

      2.普通元素的结构由开始标签、元素体、结束标签组成。例如:<hello>大家好</hello>

      3.元素体:元素体可以是元素,也可以是文本,例如:<b><a>你好</b></a>

      4.空元素:空元素只有开始标签,而没有结束标签,氮元素必须自己闭介,例如:<c/>

      5.元素命名:

        区分大小写

        不能使用空格,不能使用:

        不建议以XML开头

      6.格式化良好的XML文档,必须只有一个根元素

      属性

    <web-app version="1.0">

      1.属性是元素的一部分,他必须出现在元素的开始标签中

      2.属性的定义格式:属性名=属性值,其中属性值必须使用单引号或双引号

      3.一个元素可以有O~N个属性,但一个元素中不能出现同名属性

      4.属性名不能使用空格、冒号等特殊字符,且必须以字母开头

      注释

        XML的注释与HTML相同,<!--  -->,注释内容会被XML解析器忽略

      转义字符

        XMl中的转义字符与HTML一样

       CDATA区

    <![CDATA[
        任意内容
    ]]>

      当大量的转义字符出现在xml文档中时,会使xml文档的可读性大幅降低。这时如果使用CDATA段就会好一些

      在CDATA段中出现的字符,都无需使用转义字符。可以提高xml文档可读性

      在CDATA段中不能包含 “]]>”,即CDATA段的结束定界符

    DTD

      DTD (Document Type Definition ),文档类型定义,用来约束XML文档。规定XML文档中元素的名称,子元素的名称及顺序,元素的属性等。

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
        模拟servlet2.3规范,如果开发人员需要在xml使用当前DTD约束,必须包括DOCTYPE。
        格式如下:
        <!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
    -->
    <!ELEMENT web-app (servlet*,servlet-mapping* , welcome-file-list?) >
    <!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
    <!ELEMENT servlet-mapping (servlet-name,url-pattern+) >
    <!ELEMENT servlet-name (#PCDATA)>
    <!ELEMENT servlet-class (#PCDATA)>
    <!ELEMENT url-pattern (#PCDATA)>
    <!ELEMENT description (#PCDATA)>
    <!ELEMENT jsp-file (#PCDATA)>
    <!ELEMENT welcome-file-list (welcome-file+)>
    <!ELEMENT welcome-file (#PCDATA)>
    <!ATTLIST web-app version CDATA #IMPLIED>

      DTD文档声明

      1.内部DTD,在XML文档内部嵌入DTD,只对当前XML生效

    <?xml version="1.0" encoding="UTF-8"? standalone="yes" ?>
    <!DOCTYPE web-app [
        ...//具体语法
    ]>
    <web-app>
    </web-app>

      2.外部DTD——本地DTD,DTD文档在本地系统上,公司内部自己项目使用

     

      3.外部DTD——公共DTD,DTD文档在网络上,一般都有框架提供。

      元素声明  

      定义元素语法:<!ELEMENT元素名 元素描述>

        元素名:自定义

        元素描述包括 : 符号和数据类型

          常见符号: ?  *  +  ()  |  ,

          常见类型:#PCDATA表示内容是文本,不能是子标签

       例如:

    <!ELEMENT  web-app(servlet*,servlet-mapping*,welcome-file-list?)>
        web-app包括3个标签,且必须顺序出现。
            servlet子标签个数任意
            servlet-mapping子标签个数任意
            welcome-file-list子标签最多只能出现一次
    <!ELEMENT servlet(servlet-name,description?,(servlet-class|jsp-file))>
        servlet有3个子标签,且必须顺序出现
            servlet-name,必须有,且只能出现1次
            description,可选1次
            servlet-class和jsp-file二选一,且只能出现一次
    <!ELEMENT servlet-name(#PCDATA)>
        servlet-name的标签体必须是文本
    <!ELEMENT  welcome-file-list  (welcome-file+)>
          welcome-file-list至少有1个子标签welcome-file
  • 相关阅读:
    C++primer plus第六版课后编程题答案7.2
    sprintf函数
    sscanf函数
    [转]Visual Studio 2012 编译错误【error C4996: 'scanf': This function or variable may be unsafe. 】的解决方案
    C/C++动态二维数组的内存分配和释放
    malloc动态分配多维数组
    区间重合判断[poj2808 校门外的树]
    C++中的sort函数
    C语言qsort
    [转]Linux统计代码行数
  • 原文地址:https://www.cnblogs.com/wode007/p/13454499.html
Copyright © 2011-2022 走看看