XML(eXtensible Markup Language)简介 XML 可扩展标记语言 XML是一种您可以用来创建自己的标记的标记语言。 XML由万维网协会(W3C)创建
XML优势 数据重用 数据和表示分离 可扩展性 语意信息 XML 声明
遵循如下规则的XML文档称为结构完整: 语法规范 1.必须有XML声明语句 2.<?xml version="1.0" encoding=“GBK"?> 3.必须有且仅有一个根元素 4.标记大小写敏感 5.属性值用引号 6.标记成对 7.空标记关闭 8.元素正确嵌套 元素语法 1.名称中可以包含字母、数字或者其它字符 2.名称不能以数字和"_"(下划线)开头 3.不能以XML/xml/Xml/…开头 4.名称中不能含空格 5.名称中不能含冒号(注:冒号留给命名空间使用) 文本内容PCDATA XML支持Unicde字符集,因此可以在文本中包含字母/数字/标点/符号等。 注意:因为XML使用<,>,和&界定标记,如果在文本中包含有这些字符,必须使用实体替代。 CDATA 1.在特殊的标记CDATA下,所有的标记、实体引用都被忽略,而被XML处理程序一视同仁地当作字符数据看待。CDATA的形式:〈![CDATA[文本内容]]〉 2.用于把整段文本解释为纯字符数据而不是标记的情况。包含大量<、>、&或者"字符。CDATA节中的所有字符都会被当作元素字符数据的常量部分,而不是XML标记。 3.可以输入任意字符(除]]>外) 4.不能嵌套使用CDATA CDATA与PCDATA PCDATA是被解析器解析的文本。文本内的标签会被当作标记,实体会被展开。 CDATA是不被解析器解析的文本。文本内的标签不会被当作标记,实体不会被展开。 XML注释 注释内容中不要出现--; 不要把注释放在标记中间;
注释不能嵌套; 可以在除标记以外的任何地方放注释。 XML属性 1.属性值用双引号(")或单引号(')分隔(如果属性值中有',用"分隔;有",用'分隔) 2.一个元素可以有多个属性,它的基本格式为:<元素名 属性名="属性值"> 3.特定的属性名称在同一个元素标记中只能出现一次 4.属性值不能包括<, >, & XML文档中的属性有两个规则: 1.属性必须有值 2.那些值必须用引号括起。您可以使用单引号,也可以使用双引号,但要始终保持一致。 命名空间---namespace 为XML中的元素设定一个唯一的标识名称 与URI结合来定义一个唯一标识 去除了XML文件中可能存在的元素名重叠的问题 DOCTYPE 文档类型声明,紧跟XML声明之后,包含所有实体声明 语法:
实体引用 为了避免把字符数据和标记中需要用到的一些特殊符号相混淆,XML还提供了一些有用的实体引用。 作用:避免重复输入 自定义实体语法:
引用已定义的实体:&实体名; DTD 内部的 DOCTYPE 声明: 假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中: <!DOCTYPE 根元素 [元素声明]>带有 DTD 的 XML 文档实例(请在 IE5 以及更高的版本打开,并选择查看源代码):
以上 DTD 解释如下: !DOCTYPE note (第二行)定义此文档是 note 类型的文档。 !ELEMENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body" !ELEMENT to (第四行)定义 to 元素为 "#PCDATA" 类型 !ELEMENT from (第五行)定义 frome 元素为 "#PCDATA" 类型 !ELEMENT heading (第六行)定义 heading 元素为 "#PCDATA" 类型 !ELEMENT body (第七行)定义 body 元素为 "#PCDATA" 类型 外部文档声明: 假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中: <!DOCTYPE 根元素 SYSTEM "文件名">这个 XML 文档和上面的 XML 文档相同,但是拥有一个外部的 DTD: (在 IE5 中打开,并选择“查看源代码”命令。)
声明一个元素: 在 DTD 中,XML 元素通过元素声明来进行声明。元素声明使用下面的语法:
或者
空元素通过类别关键词EMPTY进行声明:
只有 PCDATA 的元素: 只有 PCDATA 的元素通过圆括号中的 #PCDATA 进行声明:
带有任何内容的元素: 通过类别关键词 ANY 声明的元素,可包含任何可解析数据的组合:
带有子元素(序列)的元素: 带有一个或多个子元素的元素通过圆括号中的子元素名进行声明:
或者
当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。在一个完整的声明中,子元素也必须被声明,同时子元素也可拥有子元素。 声明只出现一次的元素:
声明最少出现一次的元素:
声明出现零次或多次的元素:
声明出现零次或一次的元素:
声明“非.../既...”类型的内容:
上面的例子声明了:"note" 元素必须包含 "to" 元素、"from" 元素、"header" 元素,以及非 "message" 元素既 "body" 元素。 声明混合型的内容:
上面的例子声明了:"note" 元素可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。 XML Schema 简介 XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 可描述 XML 文档的结构。 XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。 XML Schema 是 DTD 的继任者 XML Schema 相对于 DTD 的优点如下: XML Schema 可针对未来的需求进行扩展 XML Schema 更完善,功能更强大 XML Schema 基于 XML 编写 XML Schema 支持数据类型 XML Schema 支持命名空间 下面这个例子是一个名为 "note.xsd" 的 XML Schema 文件,它定义了下面那个 XML 文档的元素:
对 XML Schema 的引用 此文件包含对 XML Schema 的引用:
系列文章: J2EE复习(一)HTML J2EE复习(二)XML(下)--xml解析 (责任编辑:admin) |