• 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  
  • 相关阅读:
    15天学会jQuery
    android面试题-简答题(一)
    android面试题-选择填空(一)
    【Android进阶】Android面试题目整理与讲解
    Android 面试题(有详细答案)
    Android开发人员必备的10 个开发工具
    Android环境搭建
    到底如何区分什么是架构、框架、模式和平台 ?
    c#执行Dos命令
    C#打开Word
  • 原文地址:https://www.cnblogs.com/little-snake/p/5004931.html
Copyright © 2020-2023  润新知