XML 基础

  1 linux下xml编辑器
  2 
  3 vim
  4 gedit
  5 editix             wonderful;免费30天;可以进行有效性检查
  6 xerces
  7 oxygen            收费
  8 xmlcopyedit
  9 serna free        是serna的免费版本,开源
 10 
 11 
 12 xml 库文件
 13 
 14 libxml            c语言使用它解析xml            http://wangjiajun53880.blog.163.com/blog/static/1170013942010119558319/
 15 expat             Expat 是一个用C语言开发的、用来解析XML文档的开发库,它最初是开源的、Mozilla 项目下的一个XML解析器
 16 
 17 
 18 
 19 xml文档结构(标记和字符数据)
 20 
 21 
 22 序言            
 23 
 24 XML声明            通常以声明开始(非必需,有则必须放在文档开始的地方)<?xml version="1.0" encoding="utf-8"? standalone="yes"?>是否依赖外部DTD
 25 PI                处理指令,<?xml-stylesheet type="text/xsl" href="/home/Wizard/my.xsl"?>
 26 注释
 27 DTD/样式
 28 文件类型声明
 29 
 30 
 31 文档节点
 32 
 33 标签
 34 元素            根元素是唯一的;元素的内容可以解析空格,不能包含有特殊意义的字符,用实体代替;元素的嵌套很严格
 35 属性            attribute,可以包含在标记中,属性的值必须用引号括起来,属性名和属性值必须成对出现,属性名不能重复,属性值不能包括特殊字符“ < > "&”;避免使用属性,不好解析、扩展
 36 文本
 37 CDATA            在一个块内,用<![CDATA[ ……]]>把内容包住,使在该块中可以不用xml实体。
 38 实体
 39 注释            <!-- -->,不能在注释中出现“--”,不能嵌套,不能出现在标记中
 40 
 41 
 42 结构良好的XML文档不一定是有效的文档,但有效的文档一定是结构良好的文档。XMl规范性通过XML语法规则来保证,XML文档的有效性是指XML文档内容中的元素、属性符合其他文档内容(DTD Schema)的定义。利用专用的文档类型定义和专用的解析器可以验证一个XML文档的有效性。
 43 
 44 
 45 
 46 命名规则
 47 
 48 不能以数字或标点开始
 49 不能以xml,Xml,XML开始
 50 不能包含空格
 51 
 52 默认值系统自动分配,不可更改;缺省值也是系统自动分配,可以更改。
 53 
 54 多个单词为一个词时第一个单词首字母不大写,后面的单词首字母大写(自定义)。
 55 
 56 
 57 
 58 DTD            文档类型定义(document type definition)
 59 
 60 
 61 形式为<!DOCTYPE rootelement[...body...]>(指示解析器),XML文档必须和一个DTD一起使用,且必须放在文档开头。
 62 
 63 在文档中定义DTD直观且不用担心XML处理器找不到DTD,但是会是文档臃肿,DTD文档不易分享。
 64 
 65 
 66 外部DTD定义
 67 包含body部分。
 68 
 69 引用
 70 系统标识符引用外部 DTD <!DOCTYPE rootelement SYSTEM "url">
 71 公共标志符<!DOCTYPE rootelement PUBLIC "DTD_name" "url">;这个DTD名字是一个正是公共标志符。
 72 
 73 正式公共标志符
 74 -//Owner//class Description//Language//Version
 75 例如网页的文档类型声明:<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 76 
 77 
 78 DTD文档结构
 79 
 80 第一行是声明部分,格式与XML文档的声明语法共同。
 81 注释和XML文档相同。
 82 <!ELEMENT...>        定义元素
 83 <!ATTLIST...>        定义属性
 84 <!ENTITY...>        定义实体
 85 <!NOTATION...>        定义符号
 86 彼此独立,无需嵌套,验证有效性时和元素在DTD中声明的顺序无关。
 87 
 88 
 89 元素内容的类型
 90 
 91 字符串
 92 用(#PCDATA)定义的元素不再包含其他子元素。        <!ELEMENT name (#PCDATA)>
 93 
 94 ELEMENT型
 95 设定元素拥有的子元素和出现的次数和顺序。
 96 有序子元素:<!ELEMENT name (child1, child2, child3...)>,元素名和子元素之间有空格。
 97 互斥子元素:<!ELEMENT name (child1 | child2 | child3...)>,必须选一个元素,例如<!ELEMENT universal (ice, human, (cat | dog))>
 98 子元素出现的频率:‘+’至少出现一次,‘*’出现任意多次,‘?’出现0次或1次,‘none’只能出现一次。例如<!ELEMENT universal (earth+)>
 99 组合子元素:<!ELEMENT universal (human | (love,bread))>
100 无序子元素:<!ELEMENT universal ((human | love | water)*>
101 
102 空元素
103 没有内容,但可以有属性。
104 格式:<!ELEMENT name EMPTY>,XML文档中元素格式必须是<.../>而不能是<...></...>
105 
106 ANY元素
107 元素可以有任何类型的子元素或纯文本或空,但是出现在XML文档中的元素必须在DTD中定义。
108 格式:<!ELEMENT name ANY>
109 
110 MIXED型
111 允许混合内容使得字符数据和其他元素能在元素中共存,其子元素出现无序,次数不限,不能用表示频率的符号修饰,#PCDATA必须放在最前面。
112 <!ELEMENT universal(#PCDATA | human | love)*>
113 
114 
115 元素属性声明
116 <!ATTLIST E_name A_name type  D_value>        元素名 属性名 属性类型 默认值
117 <!ATTLIST 学生
118 姓名 CDATA #REQUIRED
119 性别 (男 | 女)     "男"
120 联系方式 CDATA #IMPLIED>            一个元素可有多个属性,声明次序无关(可位与声明元素的前面),所有元素的属性都要在各自对应的标记中声明;属性有4中不同类型的默认值;属性有10种不同的类型,由TYPE指定。
121 
122 属性的默认值:default(一个预设的字符串,如上面的性别); #REQUIRED属性值必须指定; #IMPLIED可指定可不指定; #FIXED属性值是一个固定值(必须是指定的值,定义元素时如果没有定义这个属性,则默认拥有这个属性),<!ATTLIST BOOK CATRGORY CDATA #FIXED “计算机“。
123 
124 属性的类型: CDATA 字符数据; Enumerated 枚举类型("男" | "女") ,从枚举列表中选择一个值; ID 识别XML文档中元素唯一性的属性; IDREF 对某些具有 ID 属性的元素的引用,这些元素的ID属性值必须与 IDREF 的属性值相同; IDREFS 有空格分开的若干个 ID ; ENTITY 在 DTD 中声明的实体; ENTITIES 若干个以空格分开的ENTITY名称; NMTOKEN 名称标号(合法的XML名称); NMTOKENS 若干空格分隔的 NMTOKEN ;NOTATION 指定属性值为 DTD 中声明的记号名。
125 
126 
127 XML实体
128 
129 五种所有XML解析器必须实现的实体:“&apos ‘”,“&amp &”,“&quot "”,“&lt <”,“&gt >”。
130 
131 实体可在XML文档和DTD中使用。
132 定义:<!ENTITY Entity_name "Replacement">
133 使用:&Entity_name;
134 
135 外部实体
136 <!ENTITY Entity_name SYSTEM(PUBLIC) "URL">,一般为整个文件,PUBLIC表示网络上的文件。
137 
138 内部参数实体
139 指在独立的外部DTD文档内定义和使用的实体,只能在DTD文档中使用。
140 定义:<!ENTITY % Entity_name "Replacement">
141 引用:%Entity_name;
142 
143 外部参数实体
144 指在独立的外部DTD文档定义和使用的实体,外部参数实体用于将多个独立的DTD文档组合成一个大的DTD文档。
145 定义:<!ENTITY % Entity_name SYSTEM "URL">
146 引用:%Entity_name;
147 
148 注意
149 不能在元素及属性的声明中引用实体。
150 语句中不能出现循环。
151 引用外部实体时文档中的standalone不再是默认值“yes”,而应该设为“no”。
152 如果引用外部实体文档的编码不是utf-8或unicode,必须有XML声明。
153 
154 
155 
156 XSD            
157 
158 
159 XML模式(XML Schema [ Definition ])模式可以和DTD相互替代,并且功能更强大。模式使用XML格式编写,格式是基于xml语法的,本身是XML的一个应用,支持命名空间和数据类型。    
160 
161 根元素:<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"></xs:schema>                表明文档类型,声明命名空间(必须),版本信息,语言信息等,只有一个根元素
162 
163 引用XML Schema 文档            通过定义命名空间
164 <sweater xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:myns="http://www.yulaoqiannian.com/XMLSchema" xsi:SchemaLocation="http://www.yulaoqiannian.com/XMLSchema sweater.xsd" ></sweater>
165 前一个地址是声明命名空间,后一个指明验证的Schema文件的地址,在 xsd 文档中必须声明 sweater 元素。
166 
167 xsi:noNamespaceSchemaLocation            用于没有目标命名空间的模式文档,属性的值是一个单一的值,用于指定模式文档的位置
168 xsi:SchemaLocation                用于有目标命名空间的模式文档,属性的值是由一对或多对 URL 引用对组成,两个URL以空格分开,URL引用对页用空格分开;第一个URL指明名称空间的名字,第二个URL指明模式文档的位置
169 
170 对局部元素的限定
171 elementFormDefault 为 qualified 表示被限定,为 unqualified 表示未被限定;限定时在实例 XML 文档中使用局部元素和局部属性必须引用命名空间,默认人非限定。
172 attributeFormDefault 为 qualified 表示被限定,为 unqualified 表示未被限定。
173 对局部元素和属性限定直接在 element 和 attribute 加上属性 form 来限定。
174 
175 
176 元素类型
177 xs:string                最松散的文本约束,仅仅要求不能出现特殊字符
178 xs:int(eger)            必须为数值
179 xs:double
180 xs:decimal
181 xs:boolean                true false
182 xs:date                YYYY-MM-DD
183 xs:time
184 xs:token
185 
186 
187 两种主要的数据结构    
188 
189 用他们来定义新的数据类型。
190 simpleType            只能包含数据,restriction minLength manLength minExclusive manExclusive
191 complexType            可以包含其他元素,属性
192 
193 命名的简单类型:必须在全局定义,且名称唯一,按名引用。
194 匿名的简单内型:作为子元素定义在元素内部
195 
196 
197 简单类型
198 
199 定义
200 <simpleType name="名字">
201     <restriction base="类型">
202     ......
203     </restriction>
204 </simpleType>
205 
206 限制条件
207 <Length value="非负数"/>            指定字符串的长度
208 <minLength value="非负数"/>        指定字符串的长度的最小长度
209 <maxLength value="非负数"/>        指定字符串的最大长度
210 <minInclusive value="数值"/>        指定数值的最小值
211 <maxInclusive value="数值"/>        指定数值的最大值
212 <minExclusive value="数值"/>        排除比数值小的值
213 <maxExclusive value="数值"/>        排除比数值大的值
214 <fractionDigits value="数值"/>        base="xs:decimal"
215 
216 简单类型的种类
217 原子类型            具有不可分割的值
218 列表类型list            值是用空格分隔的原子类型的列表
219 联合类型union            值可以是原子类型,也可以是列表类型,这种类型是两种或两种以上其他简单类型的值空间的集合
220 
221 列表类型list
222 <xs:simpleType name="size">
223 <xs:list>
224     <xs:simpleType>
225         <xs:restriction base="xs:integer">
226             <xs:minInclusive value="2"/>
227             <xs:maxInclusive value="18"/>
228         </xs:restriction>
229     </xs:simpleType>
230 </xs:list>
231 </xs:simpleType>
232 
233 枚举型 enumeration            一组简单类型的选项
234 <xs:simpleType name="enumName">        <!--使用 enumName 使用这个类型-->
235     <xs:restriction base="xs:string">
236         <xs:enumeration value="枚举值"/>
237         <xs:enumeration value="枚举值"/>
238         ...
239     </xs:restriction>
240 </xs:simpleType>
241 
242 
243 复杂类型
244 
245 四种不同的内容内型
246 简单内容类型                只允许有字符数据,可以包含属性 complexType -> simpleContent -> extension -> attribute
247 纯元素类型                只允许有子元素 sequence
248 混合类型                允许有字符数句和子元素,定义时给 complexType 的属性 mixed="true"
249 空类型                    不允许有字符数据和子元素
250 
251 sequence 组用来表示组内定义的元素在XML文档中应该按照组内定义的顺序出现        complexType -> sequence
252 
253 choice 组描述的元素只能选择一个子元素            complexType -> choice
254 使用 choice 的 minOccurs 和 maxOccurs 属性可以使 choice 中的元素以任何次数、顺序出现。
255 
256 all 组表示所有的元素都要出现,且只能出现依次,出现顺序任意            complexType -> all
257 
258 
259 元素声明
260 <xs:element name="" type=""/>        声明一个在XML文档中使用的元素
261 
262 简单元素                只包含文本的元素
263 <xs:element name="元素名字" type="类型参数" default="默认值" fixed="固定值" minOccurs="最少出现次数" maxOccurs="最多出现次数" ref="一个已经以全局形式声明的元素" />        minOccurs和maxOccurs不能精确控制元素出现的次数,默认出现一次,maxOccurs="unbounded"表示出现无限次;default和fixed不能同时出现;
264 
265 全局元素是 schema 下的元素,局部元素是 all, choice, sequence 下的元素。
266 
267 元素类型的定义
268 引用命名数据类型            新类型定义在元素定义外面(可见域)
269 匿名定义的数据类型            新类型定义在元素定义内部
270 ANY元素数据类型            不指定 type, simpleType, complexType;可以有任何子元素,纯字符,属性(不能混合出现)
271 
272 
273 属性声明
274 <xs:attribute name="" type=""/>        类型和元素类型一样
275 
276 <xs:attribute name="名字" type="类型" default="默认值" fixed="固定值" use="optional | prohibited | required" ref="一个已声明的全局属性"/>            定义 use 时不能将属性定义为全局的
277 
278 属性的类型
279 通过type指定内值类型和用户自定义类型
280 通过simpleType指定匿名类型
281 不指定时默认是 anySimpleType ,可以是任意类型
282 
283 
284 
285 命名空间            XML命名空间提供了一种可以把元素、属性、名字和URL地址引用相互关联的方法。
286 
287 
288 默认的命名空间声明(没有名称)<cat xmlns="http://www.yulaoqiannian.com/namespace"></cat>
289 
290 在一个缺省的命令空间中,URL可以为空,这在直接方式命名空间声明中是不允许的;当URL为空时,在声明作用域范围内没有前缀的元素被认为不在任何命名空间中。
291 
292 元素的属性中不能有两个命名空间相同,且属性名相同的两个属性。
293 
294     
295 声明的一般形式
296 xmlns:前缀="URL"
297 
298 隐式声明默认命名空间            一个文档中只能由一个隐式声明的命名空间
299 xmlns="URL"
300 
301 
302 xsd 中命名空间
303 
304 targetNamespace 声明指示该文档所在的命名空间
305 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tn="http://www.yulaoqiannian.com/XMLSchema" targetNamespace="http://www.yulaoqiannian.com/XMlSchema"></xs:schema>
306 
307 默认情况下 xsd 文档中只有全局元素、属性和类型属于目标命名空间。
308 
309 
310 
311 XSLT            XSL 转换(XSL Transformations), 可将一种 XML 文档转换为另外一种 XML 文档,其中一种特例是把XML转换成HTML输出
312 
313 
314 XSL             扩展样式表语言(EXtensible Stylesheet Language),它的初衷是给xml提供样式显示。由 XSLT 、 XPath 以及 XSLF 组成XSLT的主旨更一般化,指可将一种 XML 文档转换为另外一种 XML 文档,常把XSLT称为XLS。
315         
316 CSS            层叠样式表单(Cascading Style Sheets)CSS 样式单可以为XML文档添加显示信息
317 
318 引用 XSL 文档
319 <?xml-stylesheet type="text/xsl" href="welcome.xsl"?>
320 
321 声明 XSL 文档
322 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"></xsl:stylesheet>
323 
324 XMLT 本身也是 XML 文档,根元素的命名空间为 http://www.w3.org/1999/XSL/Transform 。
325 
326 在 XMLT 根元素声明为 <xsl:stylesheet><xsl:transform> 完全一样。
327 
328 
329 节点类型                XML 文档被映射成一棵树
330 根结点(文档节点)            是文档树的根,其子元素为 XML文档的根元素、处理指令、注释等。
331 元素节点                <book>hello</book>
332 文本节点                字符数据,包括 CDATA 中的数据
333 属性节点                id="1"
334 命名空间节点
335 处理指令节点
336 注释节点
337 
338 
339 <xsl:template>
340 
341 XSL 样式表由一个或多个被称为模板的规则组成,每个模板含有当某个指定的节点被匹配时应用的规则,模板先声明,然后在某个地方调用模板。
342 
343 模板的声明
344 <xsl:template match="pattern" name="T_name"></xsl:template>            T_name用于描述该模板的相关信息和名称
345 
346 match 属性用于关联 XML 元素,他的值是 XPATH 表达式。
347 
348 <xsl:template> 内部的内容定义了写到输出结果的 HTML 结果。
349 
350 模板的调用
351 <xsl:template match="/"> 模板将在 XSLT 处理器遇到文档节点时自动处理。
352 其他模板在 <xsl:template match="/"> 模板中指定匹配路径的方式(使用 xsl:apply-templates)显示或隐式的调用。
353 根据模板名称使用 <xsl:call-template name="T_name"> 调用
354 
355 
356 <xsl:apply-templates select="">            把一个模板应用到当前元素或当前元素的子元素,没有select属性时表示选择当前节点的所有子节点
357 
358 
359 <xsl:value-of>                提取某个选定节点的值,把值添加到输出流中
360 <xsl:value-of select="~~"></xsl:value-of>
361 select 值为一个 XPATH 值,为必选属性。
362 对文本节点和属性节点, xsl:value-of select="." 提取的是文本节点的内容和属性节点的取值。
363 对元素节点, xsl:value-of select="." 将得到该元素和其子元素的文本节点之和。
364 
365 <xsl:for-each>                选取指定的节点集中的每个 XML 元素
366 <xsl:for-each select="~~">...</xsl:for-each>
367 select 值是一个 XPATH     表达式。
368 xsl:for-each 开始标记和结束标记之间是一个循环处理的过程体。
369 结果过滤 select="catalog/cd[year&lt;'1990']"     =, !=, &lt;, &gt;
370 
371 <xsl:if>                    用于放置针对 XML 文件内容的条件测试
372 <xsl:if test="">...</xsl:if>
373 
374 <xsl:sort>                    对结果排序
375 <xsl:sort select="~~" data-type="~~" order="~~">
376 data-type    text | number, 默认 text, 可选
377 order        ascending | descending, 默认 ascending, 可选
378 
379 <xsl:choose><xsl:when><xsl:otherwise>            结合起来表达多重条件测试
380 <xsl:choose>
381 <xsl:when test="test_1">
382 ...
383 </xsl:when>
384 <xsl:when test="test_2">
385 ...
386 </xsl:when>
387 <xsl:otherwise>
388 ...
389 </xsl:otherwise>
390 </xsl:choose>
391 
392 
393 import include element attribute number param(参数)
394 
395 
396 
397 XPath            XML匹配模式(XML Pattern Matching)XPath是一种用于标识XML文档各个部分的语言。
398 
399 
400 这是一种为了XSLT 和 XPointer而设计出来的语言;含有超过 100 隔内建函数,    用于字符串值、数值、日期、时间比较、节点和 Qname 处理、序列处理、逻辑值等。
401 
402 
403 选取已知节点的表达式
404 nodename            选取此节点的所有子节点; nodename[1] 选取第一个 nodename 元素; nodename[last() - 1] 选取倒数第二个 nodename 元素; nodename[position() < 3] 选取前面两个 nodename 元素; book[price > 9] 选取子元素 price 大与 9 的 book 元素
405 /                从根结点选取
406 //                选取文档中所有匹配的节点,不考虑他们的位置; //book[@price] 选取所有拥有属性 price 的元素; //book[@price="9"] 选取所有属性值 price 为 9 的 book 元素
407 .                选取当前节点
408 ..                选取当前节点的父节点
409 @                选取属性; //@name 选取所有属性名位 name 的属性,不管他们的位置
410 *                匹配任何元素节点; //* 选取文档中的所有元素
411 @*                匹配任何属性节点; book[@*] 选取所有带有属性的 book 元素
412 node()            匹配任何类型的节点;
413 //book | //title        使用 "|" 选取若干路径,这里表示选择所有的 book 元素和 title 元素
414 
415 
416 轴                被定义成选取相对于当前节点的节点集
417 
418 ancestor            当前节点的所有先辈
419 ancestor-or-self        当前节点的所有先辈和自己
420 attribute            当前节点的所有属性
421 child                当前节点的所有子元素
422 descendant            当前节点的所有后代元素
423 descendant-or-self    当前节点的所有后代元素和自己
424 following            当前节点结束标签后的所有节点
425 namespace            当前节点的所有命名空间的节点
426 parent            当前节点的父节点
427 preceding            当前节点开始标签之前的所有节点
428 preceding-sibling        当前节点之前的所有同级节点
429 self                当前节点
430 
431 
432 步( step )
433 
434 包括
435 轴                定义所选节点和当前节点之间的关系
436 节点测试            识别轴内部的节点
437 0 或多个谓语            更深入的提炼节点集
438 
439 语法
440 axis-name::node-test[predicate]
441 
442 example
443 child::book            选取当前节点子元素的 book 节点
444 child::*            选取当前节点的所有子元素
445 child::text()        选取当前节点的所有文本子节点
446 child::node()        选取当前节点的所有子节点
447 child::*/child::price    选取当前节点的所有 price 孙节点
448 descendant::book        选取当前节点的所有 book 后代
449 ancestor::book
450 ancestor-or-self::book
451 attribute::price
452 attribute::*
453 
454 
455 运算符
456 
457 |                计算两个节点集; //book | //cd
458 or                price = 9 or price = 10
459 +                6 + 4, 返回 10
460 -
461 *
462 div
463 =                返回 true/false
464 !=
465 <
466 <=
467 >
468 >=
469 
470 
471 核心函数库
472 
473 函数:函数名 返回类型 参数
474 
475 节点集函数
476 last()            返回一个称为上下文大小的数字,不同于最后一个节点
477 position()            返回一个称为上下文位置的数字,比如 position() = last() 测试
478 count(node-set)        返回实参节点集中的节点数
479 id(object)            返回一个节点集,根据在 DTD 中声明的 ID 类型唯一的选择元素
480 
481 字符串函数
482 string()            把参数对象或上下文节点转换为字符串,合法的参数有节点集、数字、布尔值、或其他任何类型
483 concat()            参数为两个或更多字符串,返回字符串的连接
484 starts-with()        如果第一个字符串参数以第二个字符串开始则返回 true
485 contains()            如果第一个字符串参数包含第二个字符串参数返回 true
486 
487 布尔函数
488 boolean()            不同于 0 或 NaN 的数字为 true ,非空的节点集或字符串为 true
489 not()                参数为 false 返回 true
490 true()            返回 true
491 false()
492 lang()            如果上下文节点的语言和参数指定的语言向相同或为子集,返回 true
493 
494 数字函数
495 number()            把可选的参数对象转换为数字。布尔值 true 转换为 1 ,false 转换为 0 ;字符串转换为合理的数字;节点集先转换为字符串,再转换为合理的数字
496 sum()                对节点集参数中的所有节点应用 number() 函数后返回他们的和
497 floor()            返回不大于数字参数的最大数字
498 ceiling()            返回不小于数字参数的最小数字
499 round()            返回和数字最接近的整数数字
500 
501 
502 
503 XLink            XML链接语言(XML Linking Language)链接语言(The XML Linking Language ,XLink), 允许在不同的XML资源之间建立链接关系
504 
505 XPointer            XML指针语言(XML Pointer Language)XML指针语言(The XML Pointer Language ,XPointer), 标识XML文档的内部结构,例如元素、属性、内容等
506 
507 
508 DOM            对象式解析,文档对象模型(Document Object Model)DOM定义处理XML文档的接口、属性和方法,要将文件全部加载后生成树状的模型来处理文档
509 
510 JDOM            java特定文档模型,比使用DOM更快
511 
512 DOM4J            合并超出基本XML文档的功能,集成了XPATH,XSD等
513 
514 SAX            流式解析,XML的简单API(Simple API for XML)SAX 是另一种读取和操作XML文档的编程接口,使用顺序读取文档,读完后丢弃
515 
516 Xquery        一种xml的查询语言,Xquery之于xml就像sql之于数据库。XQuery是基于XPath上的,单独的 XPath 位置路径本身就是有效的
517 
518 XHTML            可扩展HTML(Extensible HTML)XHTML 使用XML重新定义了HTML 4.01的语法。XHTML 1.0是HTML的下一个版本
519 
520 XDR            数据简化(XML Data Reduced)XDR是XML模式(XML Schema)的简化版本。IE5.0+浏览器支持XDR
521 
522 XQL            XMl查询语言(XML Query Language)XQL为存放XML文档中的数据提供一种便捷的查询语言
523 
524 RELAX NG        OASIS技术委员会开发的XML模式语言
525 
526  
原文地址:https://www.cnblogs.com/little-snake/p/5004931.html