zoukankan      html  css  js  c++  java
  • java xml与dtd

      为了灵活实现的不同路径(/hello)执行不同的资源( HeIIoMyServlet)我们需要使用XML进行配置;为了限定XML

    内容,我们需要使用xml约束(DTDschema);为了获得xml的内容,我们需要使用dom4j进行解析。

    一 XML

    1.什么是xml

       XML个称为Extensible Markup Language,意思是可扩展的标记语言。XML语法上和HTML比较相似,但HTML

    中的元素是固定的,而XML的标签是可以由用户自定义的。

        W3C19982月发布1.0版本,20042月义发布1.1版本,但因为1.1版本不能向下兼容1.0版本,所以1.1没有

    人用。同时,在20042W3C又发布了1.0版本的第三版。

    2.常见应用

     

     2.xml语法

    XML文档声明

      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>你好</a ></b>

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

      5.元素命名:

        a) 区分大小写

        b) 不能使用空格,不能使用冒号:

        c) 不建议以XML,  xml,  Xml开头

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

    属性

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

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

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

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

    注释

      XML的注释与HTML相同,即以“<!--”开始,以“-->”结束。注释内容会被XML解析器忽略!

    转义字符

      XML中的转义字符与HTML一样。

      因为很多符号己经被XML文档结构所使用,所以在元素体或属性值中想使用这些符号就必须使用转义字符,

    例如:"<"”>”、” ’ ”、” ” ”、”&”。

     CDATA

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

      在CDATA段中出现的“<”、“>’,、“””、“‘”、“&”,都无需使用转义字符。这可以提高xml文档的可读性。

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

    二 DTD

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

    称及顺序,元素的属性等。

    1.DTD介绍

      开发中,我们很少自己编写DTD约束文档,通常情况我们都是通过框架提供的DTD约束文档,编写对应的XML文档。常

    见框架使用DTD约束有:struts2,  hibernate等。

      通过提供的DTD"web-app_2_3.dtd "编写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>

    2.案例实现

    步骤1:创建web.xml文档,并将“web-app_ 2_ 3.dtd"拷贝相同目录下。

     

    步骤2:DTD文档开始处,拷贝需要的“文档声明”

     

    步骤3:完成xml内容编写

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

    <!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">

    <web-app version="2.3">

    <servlet>

    <servlet-name></servlet-name>

    <servlet-class></servlet-class>

    </servlet>

    <servlet-mapping>

    <servlet-name></servlet-name>

    <url-pattern></url-pattern>

    </servlet-mapping>

    <welcome-file-list>

    <welcome-file></welcome-file>

    <welcome-file></welcome-file>

    </welcome-file-list>

    </web-app>

    3.DTD语法

    文档声明:

      内部DTD,在XML文档内部嵌入DTD,只对当前XML有效。

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

    <!DOCTYPE web-app [

    ...//具体语法

    ]>

    <web-app>

    </web-app>

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

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

     元素声明:

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

        元素名:自定义

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

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

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

     属性声明

  • 相关阅读:
    fzuoj Problem 2177 ytaaa
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Capture the Flag
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Team Formation
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Beauty of Array
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Lunch Time
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Convert QWERTY to Dvorak
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest May Day Holiday
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Demacia of the Ancients
    zjuoj The 12th Zhejiang Provincial Collegiate Programming Contest Ace of Aces
    csuoj 1335: 高桥和低桥
  • 原文地址:https://www.cnblogs.com/jiejava/p/13473527.html
Copyright © 2011-2022 走看看