[文档整理系列] 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>

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

  1. XML之Well-Formed文档规则

    由于课程原因,近日粗略学习XML,载以博客是为担心忘记,以供日后复习之用. XML标准中明确规定了XML文件应当遵守的规则,大致上分成基本规则和DTD(Document Type Definition ...

  2. [Swift通天遁地]七、数据与安全-(2)对XML和HTML文档的快速解析

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

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

    使用 xhr.responseXML;  通过这个属性正常获取XML或HTML文档对象有两个前置条件: 1. Content-Type头信息的值等于: text/xml 或 application/x ...

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

    Java  用Freemarker完美导出word文档(带图片) 前言 最近在项目中,因客户要求,将页面内容(如合同协议)导出成word,在网上翻了好多,感觉太乱了,不过最后还是较好解决了这个问题. ...

  5. JAVA Freemarker + Word 模板 生成 Word 文档 (普通的变量替换,数据的循环,表格数据的循环,以及图片的东替换)

    1,最近有个需求,动态生成 Word 文当并供前端下载,网上找了一下,发现基本都是用 word 生成 xml 然后用模板替换变量的方式 1.1,这种方式虽然可行,但是生成的 xml 是在是太乱了,整理 ...

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

    前面说了Java如何生成复杂的Word文档,今年记录下Java如何调用打印机打印word文档. 起初用的是自带的PrintJob,但是系统提供的打印机制并不成熟完整.网上的代码也是千篇一律,在我的打印 ...

  7. JAVA - JDK 1.8 API 帮助文档-中文版

    JAVA - JDK 1.8 API 帮助文档-中文版 百度云链接: https://pan.baidu.com/s/1_7FFadw1a6J0qTfx2FzqPQ 密码: 41n4

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

    下载地址:https://code.csdn.net/FansUnion/chinesechess-v2 主要内容:Java源代码.毕业设计.API文档.声音图片等资源.Demo截图等一切的一切. 2 ...

  9. 【Java】Java注释 - 单行、块、文档注释

    简单记录,Java 核心技术卷I 基础知识(原书第10 版) 注释 我们在编写程序时,经常需要添加一些注释,用来描述某段代码的作用,提高Java源程序代码的可读性,使得Java程序条理清晰. 写代码的 ...

随机推荐

  1. Python3 与 C# 扩展之~模块专栏

      代码裤子:https://github.com/lotapp/BaseCode/tree/maste 在线编程:https://mybinder.org/v2/gh/lotapp/BaseCode ...

  2. Transactional ejb 事务陷阱

    对应ejb,默认是对整个类使用事务.所以所有方法都开启事务. 而对于用TransactionAttribute注释来引用容器管理的事务,只能在第一级的方法中使用.对应类中的方法再调用其它类中方法,注释 ...

  3. 数据库和Django model 生成和反向生成

    Django 脚本生成数据表 建立映射关系 如果询问时区时间,选1 然后输入timezone.now() python manage.py makemigrations (如果有子应用的话子应用名称填 ...

  4. Python线程状态和全局解释器锁

    在刚接触Python的时候时常听到GIL这个词,并且发现这个词经常和Python无法高效的实现多线程划上等号.本着不光要知其然,还要知其所以然的研究态度,博主搜集了各方面的资料,花了一周内几个小时的闲 ...

  5. windows 文件夹下所有文件名称

    dir dir /b 没有其它信息 dir /b >>xxx.txt 保存到txt

  6. react一看就会的简单路由设置

    不管是vue还是react  这种单页面的框架一定都少不了路由 下面给大家讲讲在实际项目中react的路由设置 第一步: 在src目录下新建一个目录route  在该目录下新建一个index.js用于 ...

  7. 大型游戏案例UI开发总结_1

    Canvas(画布)中选择Render Mode----Screen Space Camera,为了在摄像机和UI画布之间放置3D物体. Camera中的Projection选择Orthographi ...

  8. 怎么在linux下创建一个可运行脚本?

    1.touch hello.sh 2.vim hello.sh键入i插入#!/bin/shecho hello world;键入:esc:wq3.chmod 700 hello.sh 4. 执行./h ...

  9. 9、字符串转数字用int、因为input里面接受的全部是字符串

    #!/user/bin/python# -*- coding:utf-8 -*-num = int(input('请输入数字:'))if num == 1: print(666)elif num == ...

  10. java虚拟机的内存模型

    一.为什么要了解java虚拟机的内存模型 java虚拟机作为java代码运行的平台,是java技术的基石.了解java虚拟机的内存模型也就变得十分必要.它能帮助我们更好的了解java代码的运行机制,更 ...