Java SE之XML<一>XML文档规约

[文档整理系列] Java SE之XML<一>XML文档规约

1.xml文档引用:

   1.外部私有DTD:
     <!DOCTYPE rootNodeName SYSTEM "uri.dtd">
     (在xml文件中声明,带关键字SYSTEM)

   2.外部公共文件时:
      <!DOCTYPE rootNode名称 PUBLIC "DTD名称" "uri.dtd">
     (在xml文件中声明,带关键字PUBLIC)  

   3.内部引用:
     <!DOCTYPE rootNodeName [declarationsContent] >
     (在xml文件中声明)

======================

2.语法分类:【元素定义,属性定义,实体定义】

元素定义
   1.格式:<!ELEMENT 元素名称 元素类型>

   2.元素类型可以是元素内容或类型:
       1.如果是元素内容:【需要用括号括起来】
          Eg:<!ELEMENT 书架 (书名,作者,售价)>
             <!ELEMENT 书架 (#PCDATA)>

       2.如果是元素类型:【直接书写】
         类型有如下:
         EMPTY: 用于定义空类型,如<br/><hr/>
         ANY:  表示元素内容可以为任意值
         Eg:<!ELEMENT 联系人列表 ANY>

       3.元素内容可以使用如下方式,描述内容的组成关系:

            1.用逗号隔开,表示内容的出现顺序必须与声明时一致
              Eg:<!ELEMENT myBookElement (title,name,email)>

            2.用|分隔,表示任选其一,即最多只能出现一个
              Eg:<!ELEMENT myBookElement (title|name|email)>

       4.在元素中也可以使用+,*,?等符号表示元素出现的次数

            1.+ :一次or多次 (书+)

            2.?:0次or1次(书?)

            3.* :0次or多次 (书*)

            4.(无符号):必须出现一次(书)

       5.还可使用圆括号()批量设置

            Eg:<!ELEMENT myBookElement ((title*,author?,email)*|comment)>

属性定义
    1.格式:
      <!ATTLIST 元素名
               属性名1  属性值类型   设置说明
               属性名2  属性值类型   设置说明
               属性名3  属性值类型   设置说明
               ...
      >
    2.Eg:
      DTD属性声明:
        <!ATTLIST 商品
                类别  CDATA  #REQUIRED
                颜色  CDATA  #IMPLIED
        >
      对应XML文件:
        <商品 类别="服装" 颜色="黄色">...</商品>
    3.属性--设置说明

        1.#REQUIRED :必须设置该属性

        2.#IMPLIED: 可以设置也可以不设置

        3.#FIXED: 说明该属性的取值固定为一个值,在XML文件中不能为该属性设置其他值。
         但需要为该属性提供这个值。
          该属性值,不可更改,在使用该标签时,可以使用本属性,也可以不适用本属性,都将不改变属性值。

        4.直接使用默认值。在XML中可以设置该值,也可以不设置该属性值。

          Eg:
            <!ATTLIST 页面作者
                姓名  CDATA #IMPLIED
                年龄  CDATA #IMPLIED
              联系信息CDATA #REQUIRED            
              网站职务CDATA #FIXED "页面作者"
              个人爱好CDATA "上网"
            >
    4.常用属性值类型:
        CDATA 表示属性值为普通文本字符串

        ENUMERATED

        ID  1.属性值唯一
            2.属性的值只能由字母、下划线开头,且不能出现空白字符

        ENTITY(实体)  

实体定义
    1.定义:实体用于为一段内容创建一个别名,以后再XML文档中就可以使用别名来引用这段内容了。 

    2.在DTD定义中,一条<!ENTITY...>语句用于定义一个实体

    3.实体类型:引用实体和参数实体
        引用实体:
                1.引用实体主要在XML文档中被应用

                2.语法格式:<!ENTITY 实体名称 "实体内容" >: 直接转变成实体内容

                3.引用方式: &实体名称;

                4.Eg:<!ENTITY copyright "我是一名程序员">
                     ...
                     ?right;

        参数实体:
                 1.参数实体被DTD实体自身引用

                 2.语法格式:
                     <!ENTITY % 实体名称 "实体内容" >

                 3.引用方式: %实体名称;

                 4.Eg:
                      <!ENTITY Tag_Name 姓名 |EMAIL |电话|地址>
                      <!ENTITY 个人信息 (%Tag_Name; |生日)>
                      <!ENTITY 客户信息 (%Tag_Name; |公司名)>

                    Eg:
                       <!ENTITY % common.attributes   "id     ID    #IMPLIED   account CDATA    #REQUIRED">
                                       标签名      属性名1 属性类型  设置说明  属性名2 属性类型 设置说明
                       ...
                       <!ATTLIST purchaseOrder %common.attributes;>
                       <!ATTLIST item %common.attributes;>
==========================
示例1:电视节目单
<!DOCTYPE TVSCHEDULE [

<!ELEMENT TVSCHEDULE (CHANNEL+)>

<!ELEMENT CHANNEL (BANNER,DAY+)>
<!ELEMENT BANNER (#PCDATA)>
<!ELEMENT DAY (DATE,(HOLIDAY|PROGRAMSLOT+)+)>
<!ELEMENT HOLIDAY (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT PROGRAMSLOT (TIME,TITLE,DESCRIPTION?)>
<!ELEMENT TIME (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT DESCRIPTION (#PCDATA)>

<!ATTLIST TVSCHEDULE NAME CDATA #REQUIRED>
<!ATTLIST CHANNEL CHAN CDATA #REQUIRED>
<!ATTLIST PROGRAMSLOT VTR CDATA #IMPLIED>
<!ATTLIST TITLE RATING CDATA #IMPLIED>
<!ATTLIST TITLE LANGUAGE CDATA #IMPLIED>

]>
--------------------
<TVSCHEDULE NAME="重庆卫视目录">
    <CHANNEL CHAN="少儿频道">
        <BANNER>
            爸爸来了
        </BANNER>
        <DAY>
            <DATE>
                2017-02-07
            </DATE>
            <HOLIDAY>
            	重阳节
            </HOLIDAY>
        </DAY>
    </CHANNEL>
    <CHANNEL CHAN="婴儿频道">
        <BANNER>
            妈妈来了
        </BANNER>
        <DAY>
        	<DATE>
        		2014-05-25
        	</DATE>
        	<PROGRAMSLOT VTR="我也不知道" >
        		<TIME>23:02</TIME>
        		<TITLE RATING="23%" LANGUAGE="Chinese" >躲藏的猫咪</TITLE>
        		<DESCRIPTION>讲述一只可爱的猫猫的故事</DESCRIPTION>
        	</PROGRAMSLOT>
        </DAY>
    </CHANNEL>
</TVSCHEDULE>

原文地址:https://www.cnblogs.com/johnnyzen/p/9277857.html

时间: 2024-11-03 11:19:04

Java SE之XML<一>XML文档规约的相关文章

XML(二)有效的XML: DTD(文档类型定义)介绍与三种使用方式

有效的XML: DTD(文档类型定义)介绍 有效(Valid)的XML文档: 首先,XML文档是个格式正规的(Well-formed)XML文档: 其次,需要满足DTD的要求,这样的XML文档称为有效的(Valid)XML文档. DTD DTD,即文档类型定义——Document Type Definition. DTD用来描述XML文档的结构, 一个DTD文档包含: 元素(ELEMENT)的定义规则: 元素之间的关系规则: 属性(ATTLIST)的定义规则: 可使用的实体(ENTITY)或符号

[Swift通天遁地]七、数据与安全-(2)使用Fuzi(斧子)类库实现对XML和HTML文档的快速解析

本文将演示使用Fuzi(斧子)类库实现对XML和HTML文档的快速解析. 首先确保在项目中已经安装了所需的第三方库. 点击[Podfile],查看安装配置文件. 1 platform :ios, '12.0' 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'Fuzi' 7 end 根据配置文件中的相关配置,安装第三方库. 然后点击打开[DemoAp

怎样获取从服务器返回的xml或html文档对象

使用 xhr.responseXML;  通过这个属性正常获取XML或HTML文档对象有两个前置条件: 1. Content-Type头信息的值等于: text/xml 或 application/xml 2. xhr.responseType 需要赋值为: "document" var xhr = new XMLHttpRequest(); xhr.open('GET', '/server', true); xhr.responseType = 'document'; xhr.ove

Java 用Freemarker完美导出word文档(带图片)

Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. 准备材料 1.word原件 2.编辑器(推荐Firstobject free XML editor) 实现步骤 1.用Microsoft Office Word打开word原件: 2.把需要动态修改的内容替换成***,如果有图片,尽量选择较小的图片几十K左右,并调整好位置: 3.另存为,选择保存类型

Java jacob调用打印机打印word文档

前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档. 起初用的是自带的PrintJob,但是系统提供的打印机制比不成熟完整.网上的代码也是千篇一律,在我的打印设备Canon iR2525/2530 UFRII LT上,我能获取到打印机的各属性,当前任务数.但是打印机没反应. 可参考这两篇文章: http://www.360doc.com/content/05/0916/11/332_12789.shtml http://www.ibm.com/devel

中国象棋V2:Java源代码、毕业设计等所有文档,已经全部提交到CSDN-Code平台

下载地址:https://code.csdn.net/FansUnion/chinesechess-v2 主要内容:Java源代码.毕业设计.API文档.声音图片等资源.Demo截图等一切的一切. 2012年就已经把所有资料上传到CSDN下载频道了,结果总是有网友反馈无法下载或者找不到源码,今天终于解决了这个"历史遗留问题". 如果,把大学阶段完成的中国象棋,一切资料全部分享,上传到CSDN-Code平台,还有网友说找不到源码,那真心不能怪我了. 特别说明: 1.我不想再多费口舌去过多

通过xml生成word文档

Xml生成word总结 使用xml生成word的基本步骤在<使用xslt转化xml数据形成word文档导出.doc>中说明比较清楚了.但是其中的细节并未说到,因此自己折腾了两天总算成功了.以下是我在使用过程中碰到的问题要点: 必须使用word 2003. 1.下面通过例子演示: 简单 的xml以及对应的xml框架 2.分别创建03版本的word文档log_03.doc和o7版本的word文档log_07.docx,并都应用以上生成的log.xsd框架 分别另存为log_03_doc.xml,l

有效的XML: DTD(文档类型定义)介绍(转)

文档类型定义和命名空间 有效(Valid)的XML文档: 首先,XML文档是个格式正规的(Well-formed)XML文档:(见格式正规的XML:语法 属性 实体 处理指令 样式单 CDATA节). 其次,需要满足DTD的要求,这样的XML文档称为有效的(Valid)XML文档. DTD DTD,即文档类型定义——Document Type Definition. DTD用来描述XML文档的结构, 一个DTD文档包含: 元素(ELEMENT)的定义规则: 元素之间的关系规则: 属性(ATTLI

XML之------DTD(文档类型定义)

一.DTD概述 1.XML文档是一种元标记语言,即一种定义标记语言的语言.在XML中可以创建新的标记语言,这些新的标记语言(也叫标记集)要通过文档类型定义(Document Type Definitions,DTD)来定义. 2.DTD文档是这些新的标记语言的法律性文档.如果XML文档的语法符合DTD的定义和规定,那么就称为一个合法的XML文档,否则就是非法的XML文档. 二.DTD的作用 DTD定义了文档的逻辑结构,规定了文档中所使用的元素.实体.元素的属性.元素与实体之间的关系. 1.使用D