XML文档

XML编程语言

  • 名称:可扩展标记编程语言

  • 历史:诞生于1996年,在2004年进行一次更新,语法版本号升级1.1,但不被接受。现在用的是1.0版本

  • xml 文档作用:

    • 最初XML文档作为【网页】来使用

    • 在Java中使用xml文档来代替properties作为配置文件

XML语法

  • HTML:是从XML演化出来的一种编程语言。HTML绝大多数语法都是来自于XML

  • 一个XML文档必须以一个【根目录标签】为开始,其他标签必须作为【根目录标签】的直接子标签或者间接子标签出现。

  • HTML标签对于英文字母的大小写是忽略不计的,但是XML标签必须区分字母的大小写

  • HTML标签中属性内容可以通过一对""包含,也可以不用,但是XML标签属性内容必须包含在一对""或者''中

XML文档读取方式

  • SAX读取方式:根据开发人员需要,一次将若干个满足条件标签加载到内存中

    • 优点:可以节省内存

    • 缺点:如果读取大量标签信息时,运行效率相对较低

  • DOM读取方式:一次性将xml文档所有的内容加载到内存中

    • 缺点:浪费内存

    • 优点:如果读取大量标签信息时,此时由于是在内存中进行定位,所以运行速度较快

  • 实际开发中,一般都采用DOM方式来读取

XML约束文档

  • XML约束文档作用:

    • 设置可以在当前XML文档声明的【标签类型名】

    • 设置可以在标签中出现的【属性名】

    • 设置标签之间父子关系和兄弟关系

  • XML约束文档分类:

    • DTD约束文档:简单约束文档

    • 复制代码
       1 <?xml version="1.0" encoding="utf-8" ?>
       2 <!--
       3     使用DTD文档前,必须将以下代码导入到目标文件:
       4     <!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
       5  6     1. <!ELEMENT 标签类型名>:声明可以在XML文档中出现标签类型名
       7     2. <!ATTLIST 标签类型名 属性名>:声明可以在当前标签内部使用的属性名称
       8     3. <!ELEMENT 标签类型名 (子标签?)>:子标签可以出现在父标签内部,也可以不出现
       9                                      子标签如果出现,只能出现一次
      10     4. <!ELEMENT 标签类型名 (子标签+)>:子标签必须出现在父标签内部,并可以出现多次
      11     5. <!ELEMENT 标签类型名 (#PCDATA)>:当前标签没有子标签
      12     6. <!ELEMENT 标签类型名 (子标签*)>:子标签可以出现在父标签内部,也可以不出现
      13                                      子标签如果出现,可以出现多次
      14     7. <!ELEMENT 标签类型名 (子标签)>:子标签必须出现在父标签内部,且只能出现一次
      15     8. <!ELEMENT 标签类型名 (子标签|子标签)>:这两个子标签必须有一个子标签出现在父标签中
      16                                           但是不能同时出现
      17 18 -->
      19 <!ELEMENT url-pattern (#PCDATA)>
      20 <!ELEMENT servlet-mapping (servlet-name,url-pattern)>
      21 <!ELEMENT welcome-file (#PCDATA)>
      22 <!ELEMENT welcome-file-list (welcome-file+)>
      23 <!ELEMENT web-app (servlet*,servlet-mapping*,welcome-file-list?) >
      24 <!ELEMENT servlet-name (#PCDATA)>
      25 <!ELEMENT servlet-class (#PCDATA)>
      26 <!ELEMENT description (#PCDATA)>
      27 <!ELEMENT jsp-file (#PCDATA)>
      28 <!ELEMENT servlet (servlet-name,description?,(servlet-class|jsp-file))>
      29 30 <!ATTLIST web-app version CDATA #IMPLIED>
      复制代码

      SCHEMA约束文档:高级约束文档(常用)

    复制代码
     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!--
     3     使用Schema约束前,必须将以下代码导入到目标文件
     4     <web-app xmlns="http://www.w3.org/2001/XMLSchema"
     5              xmlns="http://www.example.org/web-app_2_5"
     6              xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"
     7              version="2.5">
     8 -->
     9 <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
    10             targetNamespace="http://www.example.org/web-app_2_5"
    11             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    12             xmlns:tns="http://www.example.org/web-app_2_5"
    13             elementFormDefault="qualified">
    14     <xsd:element name="web-app">
    15         <xsd:complexType>
    16             <xsd:choice minOccurs="0" maxOccurs="unbounded">
    17                 <xsd:element name="servlet">
    18                     <xsd:complexType>
    19                         <xsd:sequence>
    20                             <xsd:element name="servlet-name"></xsd:element>
    21                             <xsd:element name="servlet-class"></xsd:element>
    22                         </xsd:sequence>
    23                     </complexType>
    24                 </xsd:element>
    25                 <xsd:element name="servlet-mapping">
    26                     <xsd:complexType>
    27                         <xsd:sequence>
    28                             <xsd:element name="servlet-name"></xsd:element>
    29                             <xsd:element name="url-pattern"></xsd:element>
    30                         </xsd:sequence>
    31                     </complexType>
    32                 </xsd:element>
    33                 <xsd:element name="welcome-file-list">
    34                     <xsd:complexType>
    35                         <xsd:sequence>
    36                             <xsd:element name="welcome-file" maxOccurs="unbounded"></xsd:element>
    37                         </xsd:sequence>
    38                     </xsd:complexType>
    39                 </xsd:element>
    40             </xsd:choice>
    41             <xsd:attribute name="version" type="double" use="optional"></xsd:attribute>
    42         </xsd:complexType>
    43     </xsd:element>
    44 </xsd:schema>
    复制代码

     

     

 

 

posted @   Tombro  阅读(122)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示