- 浏览: 200538 次
- 性别:
- 来自: 河北
最新评论
-
沉默表明一切1:
楼主想问一下,怎样才能在浏览器看到这个store的内容,var ...
operamasks-ui之omGrid简单使用 -
asd001oo:
非常感谢 解决了我的问题
EasyUI-combobox-监听onblur事件 -
han0917:
mamacmm 写道你看一下xblink源码吧,它提供的方法好 ...
使用XBlink操作XML -
mamacmm:
你看一下xblink源码吧,它提供的方法好像没有这样的功能
使用XBlink操作XML -
han0917:
我想问下我使用XBlink序列化对象为xml的时候,对某字段A ...
使用XBlink操作XML
1.DTD - XML 建立主组件群(blocks)
像<body>....</body>之类的标签是XML和HTML文件的主组件群(blocks)。
1.1XML文件的组件群
从DTD来看,所有的XML文件(和HTML文件)都是由接下来的简单组件群组成的:Elements元素;Attributes 属性;Entities实体;PCDATA 被解析的字符数据(Parsed Character Data);CDATA 字符数据值(Character Data)。下面是每个组件群的简短解释。
1.2元素(Elements)
元素是XML和HTML文件的主组件群(main building blocks)。HTML元素的实例是"body" 和"table"。XML元素实例是"note" 和"message"。元素可以包括文本、其它元素或者空值。空值html元素的实例是"hr", "br" 和"img"。
例如:
<body>body text in between</body>
<message>some message in between</message>
1.3属性(Attributes)
属性提供关于元素的额外信息(extra information about elements)。属性总是置于元素的开始标签里面。属性一般是以“名称(name)/值(value)”这样的形势一对对的出现。下面的“img”元素就是关于源文件的补充信息:
<img src="computer.gif" />
元素名称是“img”。属性名称“src”。属性值是"computer.gif"。因为元素自身是空值,所以它是以“/”结束的。
1.4实体(Entities)
实体是对于定义普通文件(define common text)的变量。实体参数是定义实体的参数。很多人都知道HTML实体参数:" "。这里的"no-breaking-space"实体是在HTML中用来在文本中插入一个额外空间的。当XML剖析器解析文件时,实体就会得到扩展。下面(表1)的实体是在XML中预定的:
表 1 |
|
字符 |
字符实体 |
& |
&或& |
' |
'或' |
> |
>或> |
< |
<或< |
" |
"或" |
1.5 PCDATA
PCDATA的意思是被解析的字符数据。把字符数据当作XML元素的开始标签与结束标签之间的文本。剖析器会分析PCDATA文本。文本中的标签会被当作标示的字体,实体将会扩展。
1.6 CDATA
CDATA也是字符数据的意思。剖析器不会解析CDATA文本。文本中的标签不会作为标示字体,实体也将不会得到扩展。
2.元素定义
2.1元素声明
元素声明语法如下:
<!ELEMENT name content>
其中,name是一个标准的XML标记的名字。Centent由以下三种之一组成:
①关键字EMPTY;
②关键字ANY;
③描述包含在本元素中的子元素的顺序和重复次数的内容模型。
2.2元素内容类型(Element Content Model)
元素内容通常有五种类型:EMPTY、ANY、#PCDATA、子元素型和混合型。
2.2.1 EMPTY类型
EMPTY用于定义空元素,该元素只可能有属性而不会有字符数据或子元素。其形式为<swt/>或<swt></swt>。声明空元素的语法如下:
<!ELEMENT emptyelement EMPTY>
2.2.2 ANY类型
该元素可以包含DTD中定义的其他任何元素或已编译的字符数据。声明该元素的语法如下:
<!ELEMENT anyelement ANY>
2.2.3 #PCDATA类型
不包含其它任何元素而只包含字符数据的元素,用关键字#PCDATA进行定义,它代表“已编译的字符数据(parsed character data)”。PCDATA可以包含除标记以外的一切字符,包括数字、字母和符号等。被定义为包含PCDATA的元素不能包含任何其它子元素。示例如下:
<!ELEMENT title(#PCDATA)>
2.2.4 子元素类型
元素可以包含一系列的子元素,子元素内容模型用于指定某个元素可以包含哪些子元素,如:
<!ELEMENT message(header,body,signature,footer)>//message元素包含四个子元素,依次是header、body、signature和footer元素。
根据子元素间的关系,子元素内容模型可以有两种可能的结构:序列和选择。
①序列。其所有子元素必须出现且仅出现一次,这种结果成为序列。使用序列时应注意,首先,序列中不能出现#PCDATA;其次,子元素自身还可以包含其它子元素。
②选择。元素间的选择可以进行如下声明:
<!ELEMENT elem(subelem1|subelem2|subelem3)>//将子元素用竖线进行分隔,表明elem元素的子元素为subelem1、subelem2和subelem3三者之一,但不能同时包含其中的两个或三个子元素。
序列和选择这两种结构可以结合使用。
2.2.5 混合类型
若某元素既包含子元素又包含已编译的字符数据,则该元素具有混合内容。其声明如下:
<!ELEMENT pick(#PCDATA|one|two|three)*>
为避免产生错误,混合内容元素的声明必须遵循这一格式。即采用单一的一组可选项,以#PCDATA开始,后面是混合内容中可能出现的子元素类型,每种只需声明一次。除此之外,“*”必须放在右括号之后。下面的声明是错误的:
<!ELEMENT pick(one|#PCDATA|two*|three)>
2.3元素出现次数指示符(Element Occurrence Indicator)见表2
表 2 |
|
符号 |
代表标记出现的次数 |
? |
不出现或只出现一次 |
* |
不出现或可出现多次 |
+ |
必须出现一次以上 |
无符号 |
只能出现一次 |
3.属性定义
3.1属性声明
属性声明的语法如下:
<!ATTLIST Element_name Attribute_name Type Defualt_value>
其中,ATTLIST关键字用来定义元素所具有的属性,Element_name是元素名,Attribute_name是该元素所具有的属性名,Type是属性的类型,Defualt_value是属性的默认值。注意:在一个给定的元素中不能有两个属性同名;若属性值中含有双撇号,则该属性值应用单撇号括起来。如:
<job comments=’He said,”I can paint only red door” ’>Door Painter</job>
3.2 属性类型
在XML中共有10种属性类型(attribute-type):(见表3)
表 3 |
|
属性值类别 |
描述 |
CDATA |
属性值仅仅是一般的文字。与#PCDATA元素声明类似。 <!ATTLIST AnElem attr CDATA #REQUIRED> |
Enumerated |
列出该属性的取值范围,一次只能有一个属性值能够赋予属性。 <!ATTLIST play position (center|forward|defense) ”center”> |
NMTOKEN |
表示属性值只能由字母或下划线_开始,之后是字母、数字、下划线、短横线或圆点,且不能含有空格。 |
NMTOKENS |
表示属性值能够由多个nmtoken组成,每个nmtoken之间用空格隔开。 |
ID |
ID类型用于标识文档中的元素。该属性在xml文件中是唯一的。同时,每个元素最多只能具有一个ID类型的属性。 <!ALLTIST author authorID ID #REQUIRED > |
IDREF/ IDREFS |
IDREF表示该属性值是参考了另一个id属性;IDREFS表示该属性值是参考了多个id属性,这些id属性的值用空格隔开。 DTD定义: <!ELEMENT bookInfo(publishers,authors,books)> <!ELEMENT publishers(publisher+)> <!ELEMENT publisher(pname,address)> <!ATTLIST publisher publisherID ID #REQUIRED> <!ELEMENT pname(#PCDATA)> <!ELEMENT address(#PCDATA)> <!ELEMENT authors(author+)> <!ELEMENT author(aname,age,sex)> <!ATTLIST author authorID ID #REQUIRED> <!ELEMENT aname(#PCDATA)> <!ELEMENT age(#PCDATA)> <!ELEMENT sex(#PCDATA)> <!ELEMENT books(book*)> <!ELEMENT book(title,price,year)> <!ATTLIST book publisher IDREF #REQUIRED author IDREFS #REQUIRED> <!ELEMENT title(#PCDATA)> <!ELEMENT price(#PCDATA)> <!ELEMENT year(#PCDATA)> 对应的XML文档: <bookInfo> <publishers> <publisher publisherID=”p001”> <pname>tsinghua university press</pname> <address>Beijing</address> </publisher> <publisher publisherID=”p002”> <pname>electronic industy press</pname> <address>Beijing</address> </publisher> </publishers> <authors> <author authorID=”a001”> <aname>Mary</aname> <age>34</age> <sex>male</sex> </author> <author authored=”a002”> <aname>Tom</aname> <age>39</age> <sex>female</sex> </author> </authors> <books> <book publisher=”p001” author=”a001 a002”> <title>XML</title> <price>22</price> <year>2007</year> </book> </books> </bookInfo> |
ENTITY |
表示该属性的设定值是一个外部实体(entity),如一个图片文件。 |
ENTITYS |
该属性值包含了多个外部entity,不同的entity之间用空格隔开。 |
NOTATION |
属性值是在DTD中声明过的notation(声明用什么应用软件解读某些二进制文件,如图片)。 <!NOTATION gif SYSTEM “GIF_Viewer”> <!NOTATION jpg SYSTEM “JPG_Viewer”> <!NOTATION png SYSTEM “PNG_Viewer”> <!ELEMENT img (#PCDATA)> <!ATTLIST img src CDATA #REQUIRED NOTATION(png|jpg|gif)#REQUIRED > //其中,type属性的值可以为png、jpg和gif之一,且每个值均与一个相应的<!NOTATION>声明相对应。 |
3.3 属性默认值
属性声明可以给属性指定一个默认值,使得当在XML文档中未明确地指定该属性的值时,XML处理器会将此默认值作为该属性的值。属性的默认值可用#REQUIRED、#IMPLIED、#FIXED和字符串定义,见表4。
表4 |
|
属性内定值 |
描述 |
#REQUIRED |
表示在标记中必须出现此属性。 |
#IMPLIED |
标记中可以不出现此属性。即该属性不是必须使用。 |
#FIXED |
属性的值是固定的某个值。 |
字符串 |
标记中如没有指定属性的值,那么此字符串就是此属性的值。 |
示例:
①属性值为字符数据,默认值为numeric,在未指定其他值时使用该值。
<!ELEMENT year (#PCDATA)>
<!ATTLIST year format CDATA “numeric”>
②属性有一默认值numeric,并且必须使用该值作为属性的值。
<!ELEMENT year (#PCDATA)>
<!ATTLIST year format CDATA #FIXED “numeric”>
③属性无默认值,但它必须出现在year元素中。
<!ELEMENT year (#PCDATA)>
<!ATTLIST year format CDATA #REQUIRED>
④属性值为numeric或character,而numeric为默认值。
<!ELEMENT year (#PCDATA)>
<!ATTLIST year format (numeric|character) ”numeric”>
⑤属性值为numeric或character,在此处numeric被固定为唯一的实际值。
<!ELEMENT year (#PCDATA)>
<!ATTLIST year format (numeric|character) #FIXED”numeric”>
⑥属性必须有一个值,numeric或character。
<!ELEMENT year (#PCDATA)>
<!ATTL
发表评论
-
activiti注释Annotation生成图片后乱码问题解决
2016-04-18 18:49 1311activiti的版本:5.15.1 直接看图: ... -
EasyUI-combobox-监听onblur事件
2014-04-17 17:41 4047$("#id").combobox(). ... -
EasyUI-datagrid-自动合并单元格
2014-03-28 09:43 128501.目标 1.1表格初始化完成后,已经自动合并好需要 ... -
FATAL ERROR in native method: JDWP No transports initialized
2012-12-07 14:27 14273今天在启动MyEclipse里面配置的Tomcat的时候(DE ... -
operamasks-ui之omGrid简单使用
2012-06-19 22:40 190971.背景 1)本文只是简单记录下怎么使用operamasks ... -
使用SpringMVC(spring3.0)自带的json
2012-03-13 17:22 80711.下载spring相关jar 去哪里下载就不说了 要想支 ... -
使用XBlink操作XML
2012-01-14 12:49 30151.为什么使用XBlink? 两个项目进行交互, ... -
Axis2简单入门
2011-07-22 23:23 44691.到Apache官网下载Axis2 给你地址:htt ... -
使用Nutz的文件池和上传功能实现上传图片
2011-05-03 13:27 4146【阅读本文前提】 您了解Nutz框架(刚刚接触N ... -
使用Nutz的json视图实现前台密码验证
2011-04-20 12:32 1569使用Nutz的json视图实现前台密码验证 【阅 ... -
能说明你的Javascript技术很烂的五个原因(转)
2011-04-13 12:40 1225Javascript在互联网上名声很臭,但你又很难再找到一个像 ... -
如何在android模拟器中安装和卸载APK包
2011-03-14 16:27 2418【安装APK】 安装前最好先把模拟器打开。下面举例说明 ... -
Android学习笔记
2011-03-02 21:38 1454Android学习笔记 1.改变AVD地址 ... -
oracle-学习笔记-5
2010-12-17 10:43 1919接 oracle-学习笔记-4 --- ... -
oracle-学习笔记-4
2010-12-17 10:42 1884接 oracle-学习笔记-3 ------------- ... -
oracle-学习笔记-3
2010-12-17 10:40 1345接 oracle-学习笔记-2 -------------- ... -
oracle-学习笔记-2
2010-12-17 10:39 1223接 oracle-学习笔记-1 ------------- ... -
oracle-学习笔记-1
2010-12-17 10:37 1539本文如同题目,只是学习笔记 1.1查看控制文件 SQL> ... -
Weblogic8.1 SSL的配置
2010-07-08 14:53 1376Weblogic SSL的配置 1) 先进入域所在的地 ... -
机试笔试面试题
2009-12-12 11:35 2536机试笔试面试题(主要是Java,其次是ASP.net,C#,O ...
相关推荐
- **DTD文档**:DTD文档必须按照一定的规则编写,以确保其正确性和有效性。 - **语法格式**:DTD的编写需遵循特定的语法格式,包括元素声明、实体声明、属性列表声明等。 - **示例**: ``` <!DOCTYPE note [ <!...
使用DTD对于编写和解析XML文档有以下好处: - **验证文档结构**:确保XML文档遵循预定义的规则,避免了语法错误。 - **提高文档一致性**:通过定义元素和属性,保证了不同开发者创建的文档有一致的格式。 - **增强...
DTD通过一系列元标记来定义XML文档的语法和词汇表,它规定了哪些元素可以存在,元素间的关系如何,以及属性的使用规则等。例如,DTD可以定义一个“联系人列表”元素,它包含多个“联系人”元素,每个“联系人”元素...
理解XML的外部DTD和内部DTD对于编写符合规范的XML文档至关重要。 一、XML DTD概述 DTD是一种元语言,它允许我们定义XML文档的合法结构和内容。通过定义元素类型、属性和实体,DTD确保XML文档遵循一定的规则,从而...
Struts 2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它的配置文件(通常为`struts.xml`)采用DTD定义,包含了动作配置、拦截器、结果类型等核心组件的声明。DTD帮助开发者确保配置文件遵循正确...
了解和掌握DTD对于XML文档的编写和解析至关重要,因为它确保了数据的准确性和互操作性。在处理XML文档时,正确引用或创建DTD可以帮助开发者维持文档的一致性,并简化验证过程。不过,随着XML Schema等现代验证工具的...
- DTD定义了XML文档的合法结构和内容。 - 它包含元素声明,指定元素的名称、是否可选、允许的内容类型等。 - 属性声明用于定义元素可能具有的属性及其数据类型。 - DTD也可以包含实体声明,用于引入重复的文本或...
在XML中,DTD(Document Type Definition)是一种定义XML文档结构的规范,它规定了XML文档的元素和属性的规则。DTD可以帮助确保XML文档的合法性,即文档是否遵循了预定义的结构。 XML DTD的编写可以分为内部DTD和...
### XML与DTD详解 #### 一、XML简介 XML(Extensible Markup Language)是一种非常重要...通过使用XML来存储数据,结合DTD定义数据结构,可以有效地保证数据的一致性和完整性。这对于跨系统数据交换和管理至关重要。
这个文件是MyBatis配置文件的DTD定义,它规定了MyBatis主配置文件(`mybatis-config.xml`)的结构和元素。主配置文件中,我们可以设置全局属性,比如数据库连接的信息、事务管理器的类型、数据源的配置、插件的启用...
10. **最佳实践**:分享编写和使用DTD的最佳实践,以提高XML文档的质量和维护性。 通过这个CHM文件,学习者可以全面了解和掌握DTD的基本概念、语法以及实际应用,同时也能熟悉CHM文件的查阅方式,提升技术学习效率...
1. **元素的定义规则**:在DTD中,元素是构成XML文档的基本单位。它们通过`<element>`标签定义,例如`<elementName>`. 元素可以是空的(`<!ELEMENT elementName EMPTY>`),包含其他元素(`<!ELEMENT elementName ...
总结来说,"sql-map-2.dtd"和"sql-map-config-2.dtd"是Ibatis 2.x版本中非常关键的组件,它们为XML配置文件提供了结构化规则,使得开发人员能够编写出合法且易于维护的SQL映射文件和全局配置文件。理解并正确使用...
开发者可以根据这些定义来编写和组织自己的XML配置,实现与数据库的高效交互。 总结来说,`mybatis-3-config.dtd`和`mybatis-3-mapper.dtd`是MyBatis框架中不可或缺的部分,它们规定了XML配置文件的结构,帮助...
- Struts2.0是Struts2框架的早期版本,其DTD定义了初始的配置元素。例如,`<struts>`是根元素,包含`<package>`,`<action>`等子元素。`<action>`元素定义了一个动作,包括其名称、类和结果等属性。`<result>`元素...
在Ibatis中,DTD(Document Type Definition)文件扮演着关键角色,它们定义了XML配置文件的结构和规则,使得XML配置能够被正确解析和理解。下面我们将深入探讨Ibatis的DTD文件及其在学习和开发过程中的应用。 首先...
文件列表中的“dtd”可能是指包含DTD定义的文件,这可能是用户在下载过程中获取的一个具体示例或模板,用于参考或直接应用到自己的项目中。 在实际工作中,掌握Eclipse DTD插件的使用能够提高XML文档的开发效率,...
在实际使用中,开发者需要按照这两个DTD文件定义的规则编写`mybatis-config.xml`和`mapper.xml`,这样MyBatis才能正确解析并执行相应的数据库操作。同时,由于DTD是公开的,开发者可以通过查阅DTD文件了解MyBatis...
DTD定义了元素、属性、实体以及元素之间的关系,有助于验证XML文档是否符合预设的规范。 在XML学习中,DTD起着至关重要的作用。首先,了解DTD的基本概念是必要的,包括元素(element)、属性(attribute)、实体...