zoukankan      html  css  js  c++  java
  • XML

    XML作用
    存储数据

    格式:
    <?xml version="1.0" encoding="UTF-8"?>
    <web -app version="2.5">
    </web-app version="2.5">

    转义字符
    < &lt;
    > &gt;
    " &quot;
    ' &apos;
    & &amp;


    cdata区
    <![CDATA[转移的内容]]>

    DTD约束
    定义元素语法:<!ELEMENT元素名 元素描述>
    元素名:自定义
    元素描述包括 : 符号和数据类型
    常见符号: ? * + () | ,
    常见类型:#PCDATA表示内容是文本,不能是子标签
    ? 0-1
    * n
    + 1-n
    () 分组
    | 或
    , 顺序出现

    1.内部DTD,在XML文档内部嵌入DTD,只对当前XML有效。
    2.外部DTD——本地DTD,DTD文档在本地系统上,公司内部自己项目使用。
    3.外部DTD——公共DTD,DTD文档在网络上,一般都有框架提供。

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!--
     3 
     4     <!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
     5 -->
     6 <!ELEMENT web-app (servlet*,servlet-mapping* , welcome-file-list?) >
     7 <!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
     8 <!ELEMENT servlet-mapping (servlet-name,url-pattern+) >
     9 <!ELEMENT servlet-name (#PCDATA)>
    10 <!ELEMENT servlet-class (#PCDATA)>
    11 <!ELEMENT url-pattern (#PCDATA)>
    12 <!ELEMENT description (#PCDATA)>
    13 <!ELEMENT jsp-file (#PCDATA)>
    14 
    15 <!ELEMENT welcome-file-list (welcome-file+)>
    16 <!ELEMENT welcome-file (#PCDATA)>
    17 
    18 <!ATTLIST web-app version CDATA #IMPLIED>

    文件格式:

    <?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>

    Schema约束

    类似dtd约束

    源码格式:

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!-- 
     3     模拟servlet2.5规范,如果开发人员需要在xml使用当前Schema约束,必须包括指定命名空间。
     4     格式如下:
     5     <web-app xmlns="http://www.example.org/web-app_2_5" 
     6             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     7             xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"
     8             version="2.5">
     9 -->
    10 <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" 
    11     targetNamespace="http://www.example.org/web-app_2_5"
    12     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    13     xmlns:tns="http://www.example.org/web-app_2_5" 
    14     elementFormDefault="qualified">
    15     
    16     <xsd:element name="web-app">
    17         <xsd:complexType>
    18             <xsd:choice minOccurs="0" maxOccurs="unbounded">
    19                 <xsd:element name="servlet">
    20                     <xsd:complexType>
    21                         <xsd:sequence>
    22                             <xsd:element name="servlet-name"></xsd:element>
    23                             <xsd:element name="servlet-class"></xsd:element>
    24                         </xsd:sequence>
    25                     </xsd:complexType>
    26                 </xsd:element>
    27                 <xsd:element name="servlet-mapping">
    28                     <xsd:complexType>
    29                         <xsd:sequence>
    30                             <xsd:element name="servlet-name"></xsd:element>
    31                             <xsd:element name="url-pattern" maxOccurs="unbounded"></xsd:element>
    32                         </xsd:sequence>
    33                     </xsd:complexType>
    34                 </xsd:element>
    35                 <xsd:element name="welcome-file-list">
    36                     <xsd:complexType>
    37                         <xsd:sequence>
    38                             <xsd:element name="welcome-file" maxOccurs="unbounded"></xsd:element>
    39                         </xsd:sequence>
    40                     </xsd:complexType>
    41                 </xsd:element>
    42             </xsd:choice>
    43             <xsd:attribute name="version" type="double" use="optional"></xsd:attribute>
    44         </xsd:complexType>
    45     </xsd:element>
    46 </xsd:schema>

    内容编写:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://www.example.org/web-app_2_5" 
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"
                version="2.5">
        <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>

    dom4j解析
    //创建解析器对象
    SAXReader sax=new SAXReader();
    //加载xml文件获取dom对象
    Document doc=sax.read("src/com/oracle/demo02/web.xml");
    //获取根元素web-app
    Element root=doc.getRootElement();
    //获取servlet元素对象
    Element servlet=root.element("servlet");
    //获取servlet-class元素对象
    Element servletclass=servlet.element("servlet-class");
    //获取完整的包名+类名
    String classname=servletclass.getText();
    System.out.println(classname);

    案例:

     1 public class Demo01 {
     2     public static void main(String[] args) throws DocumentException, ClassNotFoundException, InstantiationException, IllegalAccessException {
     3         //创建解析器对象
     4         SAXReader sax=new SAXReader();
     5         //加载xml文件获取dom对象
     6         Document doc=sax.read("src/com/oracle/demo02/web.xml");
     7         //获取根元素web-app
     8         Element root=doc.getRootElement();
     9         //获取servlet元素对象
    10         Element servlet=root.element("servlet");
    11         //获取servlet-class元素对象
    12         Element servletclass=servlet.element("servlet-class");
    13         //获取完整的包名+类名
    14         String classname=servletclass.getText();
    15         System.out.println(classname);
    16         //反射调用myservlet中所有的方法
    17         //获取字节码文件对象
    18         Class c=Class.forName(classname);
    19         //新对象
    20         MyServlet myservlet=(MyServlet)c.newInstance();
    21         myservlet.init();
    22         myservlet.service();
    23         myservlet.destroy();
    24         
    25     }
    26 }

    代码截图:

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

  • 相关阅读:
    Java实现 SSL双向认证
    2018-2019-2 网络对抗技术 20165336 Exp 9 Web安全基础
    2018-2019-2 网络对抗技术 20165336 Exp 8 Web基础
    2018-2019-2 网络对抗技术 20165336 Exp7 网络欺诈防范
    2018-2019-2 网络对抗技术 20165336 Exp6 信息搜集与漏洞扫描
    2018-2019-2 网络攻防技术 20165336 Exp5 MSF基础应用
    2018-2019-2 网络对抗技术 20165336 Exp4 恶意代码分析
    2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践
    2018-2019-2 网络对抗技术 20165336 Exp2 后门原理与实践
    2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解
  • 原文地址:https://www.cnblogs.com/Xyg12133617/p/11871937.html
Copyright © 2011-2022 走看看