xml简介与使用
? Xml是什么?XML:可扩展标记语言1.与HTML相似,HTML注重页面·展示 2.xml注重于数据的保存 3.无需预编译 4.符合w3c的标准 可扩展:可以自定义 标记:计算机所能认知的信息符号 xml的组成部分:1.文档声明 <?xml version="1.0" encoding="UTF-8"?> 2.元素 <p></p> 3.属性 <p id="haha"></p> 4.注释 解释说明 <!-- vfgfh--> 5.特殊字符 ? 6.CDATA区域? xml解析器不会处理,而是当成字符串原样输出 <![CDATA[xml内容]]> ? xml中的注意点:1. xml文件中只能有一个根节点 2.节点要成对出现,有开始有闭合 3.节点必须正确嵌套 4.严格区分大小写 dom,HTML 都是类似于一个倒挂的树,我们把倒挂的树称之为===》dom树 DOM:(Doucument Object Model)文档对象模型 DOM模型: ? ? ? 解决创建maven慢的情况 Key 和value 解析xml文件的方式:
DTD:Document ?Type Definition(文档类型定义) 1.?规范编码
<!ELEMENT ?school (grade+)> ? ELEMENT:元素,关键字 School:元素名称 Grade:子元素或者元素类型 ??CDATA ??PCDATA ?(Parse)解析数据,不包含子元素 ():用来给元素分组 + :该对象最少出现一次 * :0到多次,可有可无,并且可以多次 ?:出现或者不出现,出现的话只能出现一次 ,?:元素出现的顺序 | :两者必须出现一个 DTD文档使用方式: ? 2.DTD分为外部DTD和内部DTD两种: ? ? ? 1)使用内部DTD格式: ? ? ? <!DOCTYPE 根元素名称 [ ? <!ELEMENT 子元素名称 (#PCDATA) > ? ]> ? ? ? 2)引用外部DTD格式: ? <?xml version="1.0" encoding="gb2312"> ? <!DOCTYPE 根元素名称 SYSTEM “outDtd.dtd”> ? <根元素名称> ? ... ? </根元素名称> ? ? ? --------------- ? 引用外部DTD时,要在DOCTYPE中使用关键词SYSTEM或PUBLIC ? ,后者是已经被认可的文件。 ? 通常引用自己写的dtd文件使用SYSTEM关键词 ? --------------- ? ************************************************************************************************************************* ? 3.DTD对元素声明? ? ? <!ELEMENT 元素名 元素内容 > ? ELEMENT 关键字,表示对元素类型进行声明 ? 元素名 为当前指定元素名称 ? 元素内容可分为:EMPTY、子元素型、混合型、ANY和#PCDATA 5种 ? 元素内容类型: ? 1)EMPTY?该元素只可能有属性而不会有元素内容。 ? <!ELEMENT element-name EMPTY> ? 实例: ? <br/> ? 2)ANY?可以包含DTD中定义的其他任何元素或已编译的字符数据,包括PCDATA、元素或元素与PCDATA的混合内容。 ? <!ELEMENT element-name ANY > ? 3)#PCDATA?不包含其他子元素而只能有文本数据,文本数据可以是普通字符、CDATA段中的内容、字符引用和实体引用。 ? <!ELEMENT element-name (#PCDATA) > ? 4)子元素型?分为3种:序列:<!ELEMENT 根元素名称(a,b,c,d ..)> , 选择<!ELEMENT 根元素名称?(a|b|c|d..) > 混合<!ELEMENT 根元素名称((a|b),(c|d))> ? 5)混合型?既可以包含子元素又可以包含文本数据<!ELEMENT 根元素名 (#PCDATA | 子元素)* >?? ? ? ? ?字符:它说明元素可以出现0次或1次。 ? ?* 字符:它说明元素可以不出现,或出现1次或多次。 ? 如:<!ELEMENT 根元素名称(a+,b?,c*,d ..)> DTD对属性声明? <!ATTLIST 元素名 属性名 属性类型 属性限定条件> ? --------------------------------------------------------- ? 属性类型(常见): ? CDATA?字符数据,即没有标记的文本 ? 枚举??备选属性值的值列表 ? ID?该属性在文档中具有唯一性 ? IDREF?文档中元素的ID类型属性的值 ? IDREFS?由空格分隔的元素的多个ID ? ENTITY?在DTD中声明的实体名称 ? ENTITIES?在DTD中声明的由空格分隔的多个实体的名称 ? NMTOKEN?XML名称记号 ? NMTOKENS?由空格份额表格的多个XML名称记号 ? NOTATION?在DTD中声明的记法的名称 ? ---------------------------------------------------------- ? 属性限定条件(常见): ? #REQUIRED??元素的每个实例必须具有该属性 ? #IMPLIED?元素实例不必包含该属性 ? #FIXED+固定值?属性值被指定为固定值,且用户不能改变 ? 默认值?如果元素中不包含该属性的属性值,那么默认值将作为属性值 实体声明与引用? 实体分为以下几种 ? 1.普通实体与参数实体 ? 1)普通实体: ? <!ENTITY name "text" > ? name:实体引用的名称 ? "text":实体的内容 ? 引用方式:&name; ? <p>&name;</p> ? ? ? 2)参数实体: ? ? ? <!ENTITY % name "text" > ? text为参数实体内容,其中不能包含如:>,<,&,‘,",等特殊字符,这些字符的使用可以用特有的字替代 ? ? ? 引用方式为 : %name; ? 2.内部实体与外部实体 ? 内部实体如上,, ? ? ? 外部实体: ? <!ENTITY name PUBLIC FRI "URI" > ? ? ? PUBLIC格式:实体内容是被某一个领域所认可的文件 ? SYSTEM:通常自己写的用这个 ? FRI:Formal Public Identifier 为正式公用标识符,全球唯一 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |