XML认识

合集下载

XML简介

XML简介

XML简介XML代表Extensible Markup Language(eXtensible Markup Language的缩写,意为可扩展的标记语言)。

与HTML相似,XML是一种显示数据的标记语言,它能使数据通过网络无障碍地进行传输,并显示在用户的浏览器上。

XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。

它也是元标记语言,即定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言的句法语言。

XML是元标记语言关于XML要理解的第一件事是,它不只是像超文本标记语言(Hypertext Markup Language,HTML)或是格式化的程序。

这些语言定义了一套固定的标记,用来描述一定数目的元素。

如果标记语言中没有所需的标记,用户也就没有办法了。

这时只好等待标记语言的下一个版本,希望在新版本中能够包括所需的标记,但是这样一来就得依赖于软件开发商的选择了。

但是XML是一种元标记语言。

用户可以定义自己需要的标记。

这些标记必须根据某些通用的原理来创建,但是在标记的意义上,也具有相当的灵活性。

例如,假如用户正在处理与家谱有关的事情,需要描述人的出生、死亡、埋葬地、家庭、结婚、离婚等,这就必须创建用于每项的标记。

新创建的标记可在文档类型定义(Document Type Definition,在以后的篇幅中常简称为DTD)中加以描述。

在本书的第二部分中将会学到有关DTD的更多的知识。

现在,只需把DTD看作是一本词汇表和某类文档的句法。

例如,在Peter Murray-Rust的Chemical Markup Language (化学标记语言,简写为CML)中的MOL.DTD文件中描述了词汇表和分子科学的句法:其中包括chemistry(化学)、crystallography(结晶学)、solid state physics(固体物理)等词汇。

它包括用于atoms(原子)、molecules(分子)、bonds (化学键)、spectra(光谱)等的标记。

XML介绍

XML介绍

也是一个元素,元素除了包含元素还可以包含文本信息。

元素也可以含有属性,比如property就具有name属性。

XML 元素可以在开始标签中包含属性,属性 (Attribute) 提供关于元素的额外(附加)信息。

属性通常提供不属于数据组成部分的信息,但是对需要处理这个元素的应用程序来说却很重要。

XML 属性必须加引号,属性值必须被引号包围,不过单引号和双引号均可使用。

如果属性值本身包含双引号,那么有必要使用单引号包围它,或者可以使用实体引用。

1.2.3. 大小写敏感XML对大小写是敏感的,这一点不象HTML。

在XML中,标记< Letter> 和标记 <letter> 是不一样的。

因此,打开和结束标记的大小写应该写成相同的:1.2.4. 元素必须有关闭标签XML要求每个元素必须由起始标签和关闭标签组成。

关闭标签与起始标签的名字相同,写法上多一个“/”例如:<Letter> 只有起始标记是不行的。

<Letter></Letter> 必须要有关闭标签1.2.5. 必须有根元素XML要求必须有根元素,所谓根元素就是不被其它元素包围(不含有父元素)。

并且根元素只能有一个。

01.<d a t a s o u r c e i d ="d b _o r a c l e "> 02.…03. </d a t a s o u r c e >01.<l e t t e r >…</l e t t e r >02. <L e t t e r >…</L e t t e r >01.<d a t a s o u r c e i d =“d b _o r a c l e ”> 根元素 02.<p r o p e r t y n a m e ="u r l ">03.j d b c :t h i n @192.168.0.26:1521:t a r e n a 04.</p r o p e r t y >05.<p r o p e r t y n a m e ="d b U s e r ">o p e n l a b </p r o p e r t y >06. <p r o p e r t y n a m e ="d b P w d ">o p e n 123</p r o p e r t y >07.</d a t a s o u r c e>08.这里不能再定义与d a t a s o u r c e平级的元素!1.2.6. 元素必须正确嵌套XML要求所有元素必须正确的嵌套。

列举xml的文档结构

列举xml的文档结构

列举xml的文档结构XML(可扩展标记语言)是一种用于存储和传输结构化数据的标记语言,它具有自描述性和扩展性,被广泛应用于各种领域,例如Web应用程序、数据库系统和电子商务等。

XML文档结构由各种元素和标记组成,下面将列举和描述XML文档结构的相关参考内容。

1. XML声明(XML Declaration):XML声明是XML文档的开头,用于指定XML版本和使用的字符编码。

它以`<?xml version="1.0" encoding="UTF-8"?>`的格式出现,其中`version`属性指定XML版本,`encoding`属性指定字符编码。

2. 根元素(Root Element):XML文档的根元素是所有其他元素的父元素。

它是XML文档的顶层元素,包含整个文档的内容。

3. 元素(Element):XML文档中的元素是最基本的构建块,用于表示数据或信息。

元素由开始标签和结束标签组成,之间包含文本、子元素或属性等。

4. 属性(Attribute):XML元素可以具有属性,用于提供关于该元素的额外信息。

属性位于元素的开始标签中,由名称和值组成,中间使用等号连接。

5. 文本(Text):XML文档中的文本表示实际的数据或信息。

文本出现在元素的开始标签和结束标签之间,可以包含任意字符,包括空白字符和特殊字符。

6. 注释(Comment):XML文档中的注释用于添加对文档的解释或说明。

注释以`<!--`开头,以`-->`结尾,它们不会被解析器处理。

7. CDATA段(CDATA Section):CDATA段用于包含特殊字符和标记,它不会被解析器解析。

CDATA段以`<![CDATA[`开头,以`]]>`结尾,其中的内容作为原始文本处理。

8. 命名空间(Namespace):XML文档中的命名空间用于避免元素和属性名称的冲突。

XML从入门到深入(超详细)

XML从入门到深入(超详细)

XML从⼊门到深⼊(超详细)⼀:什么是XML XML (eXtensible Markup Language)指可扩展标记语⾔,标准通⽤标记语⾔的⼦集,简称XML。

是⼀种⽤于标记电⼦⽂件使其具有结构性的标记语⾔。

XML可以标记数据、定义数据类型,可以允许⽤户对⾃⼰标记语⾔进⾏⾃定义,是对⼈和机器都⽐较友好的数据承载⽅式;XML其前⾝是SGML(标准通⽤标记语⾔)。

传统的系统已经远远不⾜以来表达复杂的信息,简单的语⾔根本⽆法表达出⼀些细微的差别,需要更完整的语⾔来表达⽹络世界⾥⽇益丰富复杂的信息内涵 XML - 可扩展标记语⾔便由此诞⽣,它不像HTML追求美观的效果,⽽不重视实际交流应⽤现象,所以XML语⾔的出现核⼼是⽤来展⽰及数据的交互,它的出现把⽹络表达的语⾔集合推进了⼀⼤步,XML传递信息,具有跨平台的特性(如:WebService)它作为数据交互和⽹络计算基础,尤其是在电⼦商务应⽤上的出⾊表现,现在已经没⼈怀疑它给信息社会带来的⾰命性影响(随着2021的到来JSON也是⼀个不错的选择)<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><Students><Student><name>蚂蚁⼩哥</name><address>安徽六安</address></Student><Student><name>欧阳康康</name><address>安徽六安</address></Student></Students>1:编写XML注意事项①:XML 中的每个元素都是成对出现的,有开始和结束,⾃闭和标签除外,但是都得有 '/'结束标志如:<student>xxxxx</student> ⾃闭和:<student name='xxx' />②:每个XML⽂档都有且只有⼀个根元素(Root Element)③:XML标签对⼤⼩写敏感④:XML必须正确嵌套⑤:同级标签以所缩进对齐⑥:元素名称可以包含字母,数字,但不能以数字开头⑦:元素名称中不能含有空格或者 ' : '号⑧:如出现特殊字符需要转义如:<,>,",',&....2:使⽤XML的优缺点优点:①:XML是使⽤信息⾃描述的新语⾔(没有约束的情况下)②:信息共享(⾃定义数据格式,⽽且很容易使⽤⼯具读写)③:数据传递(⽀持各种通道传递数据,如WebService就使⽤XML传输数据)④:数据重⽤、分离数据和显⽰、⽂档包含语义、⽅便阅读有⾯向对象的树形结构缺点:①:数据量⼤是传输效果不好,因为XML定义了和数据⽆关的标签3:XML基本语法第⼀⾏必须是XML的声明<?xml ?>version:xml的版本,必须设定,当前只有'1.0'版本encoding:当前xml⾥⾯的数据格式,默认UTF-8standalone:标记是否是⼀个独⽴的xml,默认yes如果设置 no 表⽰这个XML不是独⽴的⽽是依赖于外部的DTD约束⽂件(后⾯说)<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><Students><Student><name>蚂蚁⼩哥</name><address>安徽六安</address></Student></Students>⼆:XML专⽤标记 XML其实是有专⽤的标记,也可以理解是XML的基本语法,但是这些语法你在看HTML语法时也看到过,因它们都属于⼀个⼤家族,只是应⽤的⽅向不⼀样⽽导致的差异有部分不⼀样1:XML注释 语法:<!-- 这是⼀个注释 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><School><!--定义学⽣对象这是⼀个注释--><Student id="st01" name="张三" age="23"/></School>①:注释⾥的内容不要出现 --②:不要把注释写在元素中间如<Student <!--这⾥注释报错--> ></Student>③:注释不可嵌套2:XML处理PI指令 其实XML⾥的PI指令⼤家可以理解为XML设置样式的,但是考虑到XML是⽤于存储数据的载体,所以这个指令⽤的也不多 语法:<?⽬标指令?> 如引⼊CSS样式:<?xml-stylesheet type='css类型' href='引⼊css样式地址'> CSS类型可以设置 type='text/css' type='text/xsl'<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!--引⼊PI指令注意只能放在头部并引⼊style.css样式--><?xml-stylesheet type='text/css' href='./style.css' ?><School><!--定义学⽣对象这是⼀个注释--><Student><name>蚂蚁⼩哥</name></Student></School><!--CSS样式-->name {font: normal 500 22px "微软雅⿊";color:#f69;}3:XML之CDATA节 ⽤于把整段⽂本解析为纯字符串数据⽽不是标记的情况,其实包含在CDATA节中的特殊字符<、>、&都会当作字符展⽰<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><School><!--定义学⽣对象这是⼀个注释--><Student><!--使⽤<![CDATA[xxx]]>可以把特殊字符当作⽂本--><name><![CDATA[我是⼀个"⽂本":想不到把]]></name></Student></School> 那么问题来的,如果我不使⽤CDATA节包裹的话在⽂本区域输⼊<,>等就会和关键字符冲突,我们需要使⽤转义<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><School><!--定义学⽣对象这是⼀个注释--><Student><!--这⾥的蚂蚁⼩< > 哥报错 <>⼲扰,我们要使⽤转义--><!--<name>蚂蚁⼩<>哥</name>--><name>蚂蚁⼩&lt;&gt;哥</name></Student></School><!--常⽤⽹页转义字符 xml也可以使⽤--><!--显⽰结果描述实体名称实体编号空格 &nbsp; &#160;< ⼩于号 &lt; &#60;> ⼤于号 &gt; &#62;& 和号 &amp; &#38;" 引号 &quot; &#34;' 撇号 &apos;(IE不⽀持) &#39;¢分 &cent; &#162;£ 镑 &pound; &#163;¥ ⽇圆 &yen; &#165;§ 节 &sect; &#167;© 版权 &copy; &#169;® 注册商标 &reg; &#174;× 乘号 &times; &#215;÷ 除号 &divide; &#247;-->XML中转义字符的使⽤三:核⼼DTD语法约束1:什么是DTD,为什么使⽤DTD DTD是⽂档类型定义(Document Type Definiyion),它是⽤来描述XML⽂档结构,⼀个DTD⽂档会包含如下内容:元素(ELEMENT):的定义规则,描述元素之间的关系规则属性(ATTLIST):的定义规则,可以定义具体的标签内部属性为什么使⽤DTD:①:DTD⽂档与XML⽂档实例关系如类与对象关系②:有了DTD,每个XML⽂件可以携带⼀个⾃⾝格式描述③:有了DTD,不同组织的⼈可以使⽤⼀个通⽤DTD来交换数据④:应⽤程序可以使⽤⼀个标准的DTD校验从外部世界接受来的XML是否是⼀个有效标准XML⑤:可以使⽤DTD校验⾃⼰的XML数据2:DTD定义⽂档规则(DOCTYPE)DTD⽂档的声明及引⽤有三种:内部DTD⽂档:<!DOCTYPE 根元素[定义元素属性等等内容]>外部DTD⽂档:<!DOCTYPE 根元素 SYSTEM 'DTD⽂件路径'>内外部DTD⽂档结合:<!DOCTYPE 根元素 SYSTEM 'DTD⽂件路径'[定义元素属性等等内容]><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!--注:此时我这⾥⾯的 ELEMENT 定义元素的我后⾯介绍--><!DOCTYPE Student[<!ELEMENT Student (name)><!ELEMENT name (#PCDATA)>]><Student><name>蚂蚁⼩哥</name></Student>内部定义DTD⽂档<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE Student SYSTEM './st.dtd'><Student><name>蚂蚁⼩哥</name></Student><!--下⾯是⽂件 st.dtd--><!DOCTYPE Student[<!ELEMENT Student (name)><!ELEMENT name (#PCDATA)>]>外部定义DTD⽂档<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE Student SYSTEM './st.dtd'[<!ELEMENT Student (name,age,sex)><!ELEMENT sex (#PCDATA)>]><Student><name>蚂蚁⼩哥</name><age>23</age><sex>男</sex></Student><!--外部引⽤的st.dtd⽂件--><?xml version="1.0" encoding="UTF-8" ?><!--这⾥不能写DOCTYPE,因为这个可以当作元素引⽤,具体规则在上⾯定义--><!ELEMENT name (#PCDATA)><!ELEMENT age (#PCDATA)>内外部定义DTD⽂档3:DTD元素的定义(ELEMENT)语法:<!ELEMENT 元素名称(NAME) 元素类型(COUTENT)>注:ELEMENT关键字元素名称:就是⾃定义的⼦标签名称元素类型:EMPTY:该元素不能包含⼦元素和⽂本,但是可以有属性,这类元素称为⾃闭和标签ANY:该元素可以包含任意在DTD中定义的元素内容#PCDATA:可以包含任何字符数据,设置这个就不能包含⼦元素了,⼀般设置具体value混合元素类型:只包含⼦元素,并且这些⼦元素没有⽂本混合类型:包含⼦元素和⽂本数据混合体<!-- 定义空元素EMPTY --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE Student[<!ELEMENT Student EMPTY>]><!--约束为空元素所以写成⾃闭和标签,--><Student/><!-- 定义组合元素(student,teacher)并为每个元素设置类型(#PCDATA) --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student,teacher)><!ELEMENT student (#PCDATA)><!ELEMENT teacher (#PCDATA)>]><School><student>我是学⽣</student><teacher>我是⽼师</teacher></School><!-- 设置任意元素ANY 虽然student元素内部没有再设置元素⽽设置ANY,那我就可以在编写任意⼦元素,前提在⾥⾯有定义 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student)><!ELEMENT student ANY><!ELEMENT name (#PCDATA)><!ELEMENT address (#PCDATA)>]><School><student><name>蚂蚁⼩哥</name><address>安徽六安</address></student></School><!-- 元素组合及混合,可以使⽤通配符 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student*,teacher?)><!ELEMENT student (#PCDATA)><!ELEMENT teacher (#PCDATA)>]><School><student>我是学⽣A</student><student>我是学⽣B</student></School>DTD元素定义具体代码通配符:() ⽤来元素分组如:(a|b|c),(d,e),f 分三组| 在列表中选⼀个如(a|b)只能选⼀个表⽰a|b必须出现并⼆选⼀+ 该对象⾄少出现⼀次或多次如(a+) 该元素可以出现多次* 该对象允许出现0次到多次如(a*) 该元素可以不出现或出现多次表⽰可出现⼀次或者不出现(a?) a可以出现,或者不出现, 常⽤按照顺序出现(a,b,c) 表⽰依次a,b,c4:DTD属性的定义(ATTLIST)语法:<!ATTLIST 元素名称属性名称类型属性特点>元素名称:我们⾃定义的元素名称属性类型:我们为元素上添加⾃定义属性类型:CDATA:任意字符(理解为任意字符的字符串)ID:以字母开头唯⼀值字符串,IDREF/IDREFS:可以指向⽂档中其它地⽅声明的ID类型值(设置此值是可以在⽂档上存在的)使⽤IDREFS时可以使⽤空格隔开NMTOKEN/NMTOKENS:NMTOKEN是CDATA的⼀个⼦集,设置该属性时只能写英⽂字母、数字、句号、破折号下划线、冒号,但是属性值⾥⾯不能有空格 NMTOKENS:它是复数,如果设置多个值由空格隔开 Enumerated: 事先定义好⼀些值,属性的值必须在所列出的值范围内属性特点:#REQUIRED表⽰必须设置此属性#IMPLIED表⽰此属性可写可不写#FIXED value表⽰元素实例中该属性的值必须是指定的固定值#Default value为属性提供⼀个默认值<!-- 第⼀种写法 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student*)><!ELEMENT student EMPTY><!--定义了⼀个id属性类型为ID 必须值--><!ATTLIST student id ID #REQUIRED><!--设置了name属性为任意字符的字符串必须值--><!ATTLIST student name CDATA #REQUIRED ><!--设置address 类型为多个常规字符串且不需要⼀定存在此属性--><!ATTLIST student address NMTOKENS #IMPLIED><!--设置srcID 该属性的值只能从id上⾯上取--><!ATTLIST student srcID IDREFS #IMPLIED>]><School><student id="st001" name="蚂蚁⼩哥"/><student id="st002" name="欧阳;*)*^%$:⼩⼩" address="安徽_六安安徽_合肥"/><student id="st003" name="许龄⽉" srcID="st001 st002"/></School><!-- 第⼆种写法 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE School[<!ELEMENT School (student*)><!ELEMENT student EMPTY><!--简便写法,全部放在⼀起写--><!--设置了name属性为任意字符的字符串不⼀定要设置此属性,但是设置必须按照指定的值--> <!ATTLIST studentid ID #REQUIREDname CDATA #FIXED '我们名字都⼀样'address CDATA '默认都是安徽'sex (男|⼥) #REQUIRED>]><School><student id="st001" sex="男" name="我们名字都⼀样"/><student id="st002" sex="⼥"/><student id="st003" sex="男" name="我们名字都⼀样"/></School>DTD的属性定义具体代码5:DTD实体定义(ENTITY)实体分类:普通内部实体,普通外部实体,内部参数实体,外部参数实体语法:普通内部实体定义:<!ENTITY 实体名 "实体值">普通外部实体引⼊:<!ENTITY 实体名 SYSTEM "URI/URL">内部参数实体定义:<!ENTITY % 实体名 "实体值">外部参数实体引⼊:<!ENTITY % 实体名 SYSTEM "URI/URL">⽰例定义:<!ENTITY name "蚂蚁⼩哥"><!ENTITY address "安徽六安">⽰例XML⾥使⽤:<name>&name;</name>使⽤范围:定义实体分为内部实体(定义在当前xml⽂件)和外部实体(定义在外部dtd⽂件⾥)<!-- 内部普通实体 --><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><!DOCTYPE Student[<!ELEMENT Student (name,address)><!ELEMENT name (#PCDATA)><!ELEMENT address (#PCDATA)><!ENTITY name "蚂蚁⼩哥"><!ENTITY address "安徽六安">]><Student><name>&name;</name><address>&address;</address></Student>DTD实体定义代码6:使⽤命名空间(Namespace) 避免元素名冲突,使⽤URL作为XML的Namespaces(这样也有约束和提⽰好处) 语法:xmlns:[prefix]="URL" 元素和属性都可以应⽤命名空间 XML的元素名是不固定的,当两个不同类型的⽂档使⽤同样的名称描述两个不同类型的元素的时候就会出现命名冲突<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><h:table xmlns:h="/1999/xhtml"><h:tr><h:td>名称A</h:td><h:td>名称B</h:td></h:tr></h:table>四:核⼼Schema语法约束1:什么是XML Schema XML Schema描述了XML⽂档的结构。

xml数据格式理解

xml数据格式理解

xml数据格式理解XML是一种标记语言,它用于描述数据。

XML解析器解析XML,使得XML文档具有确定的结构和元素以及相关的属性和值。

XML是Web服务、Web表单和J2EE技术的核心组成部分。

本文将探讨XML数据格式的内容和使用。

XML的组成XML文档由XML元素和XML注释组成。

XML元素是文档的主要组成部分,每个元素有一个名称(以字母、下划线或冒号开头)和一个结束标记(即与“尖括号/”结尾)。

在一个XML元素中,您可以定义另一个XML元素或文本。

XML注释是可读性的文本。

它们被添加到XML文件的中文文本,通常用于解释XML的含义或作用。

XML的用途XML的主要用途之一是在不同的计算机系统之间交换数据。

例如,它被广泛用于电子商务应用,例如在线订购或存储大量的文本、音频和视频内容。

XML还用于描述SGML(标准通用标记语言)和XHTML(可扩展超文本标记语言)格式。

XML的样式表XML样式表(XSL)用于在网站上显示XML数据。

XSL 将XML文档按需排列为HTML,PDF或其他格式,这些格式适合于网站上的显示。

您可以使用XSL输入XML文件以获得格式化输出,并将其显示在浏览器中。

XML样式表分为两个部分:首先是定义样式表的模板,然后模板应用于XML 文档。

XML的验证XML验证是确保XML文件语法正确的过程。

XML验证器检查文件是否符合XML规范,是否包含正确的元素,是否正确嵌套以及是否添加了必需的属性。

如果文件未通过验证,那么验证器将报告错误并指出出错的位置。

XML验证是一种检查XML文件是否符合标准的机制,它确保文档的正确性,以及避免信息损失和可能引起的其他问题。

XML的优势XML格式的数据允许它们按照自己的方式进行归类和排序。

XML数据可以在不同平台和系统之间充当桥梁,从而大大简化了数据交换。

用于XML文档的标记可以针对其特定的内容进行定义,并且在复杂数据结构中增加容错性。

此外,XML格式的数据允许站点维护可读性,可修改性和可扩展性。

XML基本概念

XML基本概念

7.注释
XML文档可以包含注释,也可以没有。注释并不是 由XML分析程序进行处理,但用于在文档的XML源代码 中提供必要的说明。注释以“<!--”开始,以“-- >”结 束。
文档的声明与处理指令
XML文档结构包含以下3个部分: (1)声明部分。声明该文档是一个XML文档。 (2)定义部分。定义XML数据的类型以及所使用的 DTD(可选)。 (3)内容部分。用XML标签和注释标注过的文档类容。
处理指令是用来给处理XML文档的应用程 序提供信息的,XML分析器把这些信息原封不 动地
传给应用程序,有应用程序来解释这个指令,遵照它所提供的信息进行处 理。格式如下:<?处理指令名 处理指令信息?>如:<?xml-stylesheet type="text/xsl" href="book.xsl"?>。
档中使用的所有元素和属性都嵌套在根元素中。
4.元素 元素是XML文档的基本构成单元,它用于表示XML文档的结构和XML
文档中包含数据。元素包含开始标记、内容、和结束标记。由于XML区分 大小写,所以开始标记和结束标记必须完全匹配。
5.属性 属性是使用与特定元素关联的对应“名称—值”的XML构造。例如:
只能用于包含它的这个文档,别的文档就不能使用了。创建内 部DTD的语法如下:
<!DOCTYPE rootelement
[element and attribute declarቤተ መጻሕፍቲ ባይዱtions]
>
<!DOCTYPE标识文档类型定义的开始,属性 rootelement指明跟元素名字。
2. 外部DTD
外部DTD是一个单独的文件,存放XML文档中可以 使用的全部元素及属性的定义。你可以在多个文档中 同时使用同一个DTD,以便保持多个文档之间数据结 构的一致性。

一、XML语言简介

⼀、XML语⾔简介1、XML发展史1) gml:(1969)Generalized Markup Language通⽤标记语⾔:主要的⽬的是为了达到不同的电脑进⾏通讯的数据规范2) sgml(1985)标准通⽤标记语⾔3) html(1993)HyperText Markup Language :随着万维⽹的出现才出现的html语⾔,但是本⾝是有缺点的,例如其标记不能⾃定义,本⾝缺少⼀些含义;html没有真正的国际化4) xml():1998 Extensiable markup language(可扩展标记语⾔) w3c组织在html语⾔的基础上推出xml语⾔备注 :可扩展标记语⾔主要是给浏览器或者给⼀些语⾔观看的,但并不是纯粹的给浏览器看的,也可以给java、其他语⾔看,xml的编程是好多语⾔都可以使⽤的。

2、XML的常见应⽤1)xml的出现解决了程序间数据传输的问题:(数据传输的通⽤格式),⽤xml格式来传送数据,具有良好的可读性和可维护性2)xml可以做配置⽂件:⽐如tomcat服务器的Server.xml,web.xml;sturts中的sturts-config.xml⽂件;以及hibernate的hibernate.cfg.xml3)xml可以充当⼩型的数据库可使⽤xml⽂件做⼩型数据库,程序中会⽤到⼀些经常要⼈⼯配置的数据。

如果放在数据库中读取不合适(会增加数据库的维护⼯作),则可以考虑⽤xml来做⼩型数据库(⽐如msn中保存⽤户聊天记录就是⽤xml⽂件的),⽽且直接读取⽂件显然要⽐读取数据库快3、XML⽂件的构成:【1】 ⽂档声明<?xml vesion="1.0" enconding="gb2312"? standalone="yes"?>1) xml :表明该⽂件是xml⽂件2) version :表⽰xml的版本号3) enconding :⽂档的字符编码,⽤来告诉浏览器按照什么样的编码⽅式来解析,但是⽂件在存储的时候⽤的是ANSI,(在保存的时候可以进⾏不同的编码格式保存)编码问题:ANSI是American national standard insitute(美国国家标准协会)制定的⼀个编码格式,在不同的国家是不⼀样的,中国ansi对应的就是gb2312;在台湾ansi对应的可能就是gbk big54) standalone :⽂档定义是否独⽴使⽤(即这个xml⽂件是否和别的⽂件由配合使⽤)standalone="no"是默认的【2】 元素1)⼀个xml元素可以包含的内容:字母、数字以及其他⼀些可见字符,但是必须遵守下⾯⼀些规范: A、区分⼤⼩写,例如:<P><p> 是两个不同的标记 B、不能以数字或“_”(下划线)开头 C、不能包含空格 D、名称不能以数字开头,中间不能包含冒号,冒号是留给命名空间使⽤的 E、标签成对、空标签关闭、标签正确嵌套[2]元素/标签 的写法:2)备注: 不含标签体的两种写法:<age></age> 或者</age> 对于xml标签中出现的所有空格和换⾏,xml解析程序都会当做标签内容进⾏处理,例如下⾯两段内容的意义就不⼀样: 写法⼀:<stu>xiaoming</stu> 这种写法是标准的格式要求写法 写法⼆: <stu> xiaoming </stu>由于在xml⽂件中,空格和换⾏都作为原始内容被处理,所以,在编写xml⽂件中,要特别注意【3】属性 属性值⽤双引号括起来,或者⽤单引号括起来。

标准的xml文件格式

标准的xml文件格式XML(可扩展标记语言)是一种用于标记电子文档结构和数据的标准格式。

它被广泛应用于Web开发、数据交换和配置文件等领域。

标准的XML文件格式对于确保文档的正确性和可读性至关重要。

本文将介绍标准的XML文件格式,包括其基本结构、常见元素和属性,以及一些最佳实践。

XML文件由标签、元素、属性和数据组成。

标签是XML文档的基本构建块,用于定义元素和属性。

元素是标签的实例,用于表示文档中的数据结构。

属性是元素的附加信息,用于提供关于元素的额外描述。

数据则是元素或属性中的实际内容。

在标准的XML文件格式中,一个合法的XML文档必须包含一个根元素。

根元素是XML文档的顶层元素,所有其他元素都必须包含在根元素内部。

根元素还必须是唯一的,不能有多个根元素存在于同一个XML文档中。

除了根元素外,XML文档还可以包含注释、处理指令和空白字符。

注释用于向文档中添加说明性的文字,可以帮助他人理解文档的内容和结构。

处理指令用于指示解析器如何处理文档中的特定部分。

空白字符(如空格、制表符和换行符)用于格式化文档,但在某些情况下也可以影响文档的解析和处理。

在XML文件中,元素和属性的命名必须遵循一定的规则。

它们必须以字母、下划线或冒号开头,后面可以跟随任意数量的字母、数字、下划线、连字符或句点。

此外,元素和属性的命名是区分大小写的,因此<book>和<Book>被视为两个不同的元素。

另外,XML文件中还可以包含实体引用和CDATA部分。

实体引用用于表示一些特殊字符,如<表示小于号,&表示和号等。

CDATA部分用于包含文本块,其中的内容不会被解析器解析,而是作为原始数据处理。

在编写XML文件时,应该尽量遵循一些最佳实践,以确保文档的可读性和可维护性。

例如,应该使用缩进和换行来组织文档的结构,使其更易于理解和修改。

此外,应该为元素和属性选择描述性的名称,以便他人能够理解其含义和用途。

string 类型的xml

string 类型的xmlXML (可扩展标记语言) 是一种用于存储和传输数据的标记语言。

它的设计目标是传输和存储数据,而不是显示数据。

XML 使用自定义标记来定义数据元素和结构,类似于HTML。

本文将介绍XML 的基本概念和用法。

1. XML 是一种用于存储和传输数据的标记语言。

与HTML 不同,XML 更加灵活,可以自定义标记和结构。

2. XML 使用标签来定义数据元素。

标签由尖括号包围,例如`<name>` 和 `</name>`。

3. XML 中的数据元素可以包含属性。

属性是用来描述元素的特性,例如 `<book id="1">` 中的 id 属性。

4. XML 中的数据可以嵌套。

一个元素可以包含其他元素,形成一个层次结构。

例如 `<book>` 元素可以包含 `<title>` 和 `<author>` 元素。

5. XML 还支持文本数据。

可以在元素中插入文本,例如`<name>John</name>`。

6. XML 的文档结构由根元素定义。

一个 XML 文档只能有一个根元素,所有其他元素都是根元素的子元素。

7. XML 还支持注释。

注释用于在文档中添加说明或备注,以便其他人阅读。

8. XML 还可以使用命名空间来避免元素名的冲突。

命名空间是一种将元素分组的机制,可以确保元素名的唯一性。

9. XML 的语法是严格的,标签必须正确嵌套和闭合。

任何不符合语法规则的文档都将被视为无效的 XML。

10. XML 的优势是它的灵活性和可扩展性。

它可以适应不同的数据结构和需求,可以与各种编程语言和数据库进行集成。

11. XML 还可以与样式表语言 (如 XSLT) 结合使用,用于将 XML 数据转换为其他格式,如 HTML 或 PDF。

总的来说,XML 是一种强大而灵活的标记语言,用于存储和传输数据。

读写XML的四种方法

读写XML的四种方法XML(eXtensible Markup Language)是一种用于表示和传输数据的标记语言。

它具有良好的可读性和扩展性,被广泛应用于Web开发、数据交换和配置文件等领域。

在读写和处理XML数据时,有许多方法可供选择。

本文将介绍四种常见的读写XML的方法:DOM、SAX、JDOM、和XMLStreamReader/XMLStreamWriter。

1. DOM(Document Object Model):DOM是一种基于树形结构的解析器,它将整个XML文档加载到内存中,并将其表示为一个对象树。

在DOM中,每个XML元素都被表示为一个节点(Node),可以通过节点的属性和方法对其进行操作。

读取XML文档时,可以使用DOM解析器将其转换为一个DOM树,然后通过节点的方法访问和修改树结构。

写入XML文档时,可以通过创建和修改节点来构建DOM树,并使用DOM解析器将其保存为XML文档。

使用DOM读取XML文档的基本步骤如下:- 创建一个DocumentBuilderFactory对象。

- 根据DocumentBuilderFactory对象创建一个DocumentBuilder对象。

- 使用DocumentBuilder对象解析XML文档,并返回一个Document对象。

- 通过Document对象的方法遍历和操作XML文档的节点。

使用DOM写入XML文档的基本步骤如下:- 创建一个DocumentBuilderFactory对象。

- 根据DocumentBuilderFactory对象创建一个DocumentBuilder对象。

- 使用DocumentBuilder对象创建一个Document对象。

- 通过Document对象的方法创建和添加元素节点、属性节点等。

- 使用TransformerFactory和Transformer对象将Document对象保存为XML文档。

DOM的优点是易于使用和理解,可以方便地遍历和修改XML文档。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

XML认识
第一行是一句定义声明说明这是一个XML文件。

声明以“<?xml”开始,以“?>”标示结束。

声明中包含版本和编码属性。

例如:<?xml version=“1.0”enc oding=“UTF-8”?>
每个XML文件以树结构进行组织。

每个标记称为一个元素(Element)。

而第一个元素又称为根(root),它是所有其它元素的祖先。

每个元素都可以有多个子元素(Child)。

Xml文件必须只有一个根标记,其他标记必需封装在根标记中。

名称不能包含有空格。

标记分为非空标记和空标记。

空标记:不标记任何内容,可以带属性列表。

形式:<标记的名称属性列表/>
非空标记: 以”开始标记”开始,以“结束标记”结束,在开始标记与结束标记之间加入标记内容。

其中开始标记为<标记的名称属性列表>,结束标记为</标记名称> 。

标记内容包含文本数据和标记
例如<sex> 男</sex >
标记命名规则:
可以包含字母、数字和其它符号不能以数字或标点符号开头不能以xml或XML、Xml等等的单词开头名称不能包含有空格
属性通常用来提供非数据的信息,一定要用双引号括住属性的内容。

如果内容包含有双引号那么应该用&quot来代替。

&lt,&gt代替“<”和“>”。

&apos 代替单引号, 用&amp 代替符号&。

同样标记内容中也不能含有上面的特殊符号,也需用替换。

但是如果这种替代太多影响阅读,可利用CDATA段来描述含有特殊符号的标记内容。

其以<![CDATA[ 开始以]]>结束,中间包含那些带有特殊符号的内容。

对于下面的XML树其对应的XML文件如下
对应的XML文件:
<?xml version=”1.0” encoding=”UTF-08” ?>
<bootstore>
<book category =”ABC”>
<title lang=”yingyu”>
Everyday Ttalian
</title>
<author>
Giada DeLaurentiis
</author>
<year> 2005 </year>
<price> 30.00 </price>
</book>
</bootstore>
关于XML文件的编写要遵循以下的语法规则:
∙每个XML Eleme nt都要有一个闭合标记。

(可以是自闭合的)
∙大小写敏感。

∙Eleme nt要正确地嵌套。

∙包含有一个根元素(root eleme nt)
∙所有属性(Attrib ute)的值必须用双引号括住。

∙注释是这样写的“<!-- 这是注释--> ”(不包括双引号)。

空格保留。

数据与元素的区别:
属性不能包含多值,但元素可以。

属性不能包含树结构,但元素可以。

属性很难被扩展。

ID一类的数据比较适合使用属性来保
注释要以<!—开始,以 结束
名称空间:用于解决标记名冲突问题。

名称空间分有前缀和无前缀的名称空间。

有前缀名称空间声明:
xmlns:前缀名=名称空间的名字
无前缀名称空间声明:
Xmlns=名称空间的名字
名称空间必须在标记的“开始标记”里面声明,并放在标记名的后面。

名称空间作用域:该标记以及其所有的子孙标记。

若一个标记中声明的是有前缀的名称空间,哪么该标记以及其子孙标记如果准备隶属该名称空间,则需通过名称空间的前缀引用这个名称空间。

使得该标记隶属于这个名称空间。

如:
<?xml verdsio n=”1.0” e ncoding=”UTF-8” ?>
<人员名单xmlns:ps1=”第一公司” xmlns:ps2=”第二公司”>
<ps1:张三> 1983年出生</ps1:张三>
<ps2:张三> 1985年出生</ps2:张三>
</人员名单>。

相关文档
最新文档