xml格式文件用什么软件打开_后缀xml文件用什么软件打开

xml格式文件用什么软件打开_后缀xml文件用什么软件打开Java操作XML文件及转义字符&1.XML简介XML的背景1) XML代表可扩展的标记语言(eXtensible Markup Language);2) XML由W3C联盟发展维护;3) XML是一种语言,可以用

Java操作XML文件及转义字符   &1.XML简介   XML的背景   1) XML代表可扩展的标记语言(eXtensible Markup Language);   2) XML由W3C联盟发展维护;   3) XML是一种语言,可以用来定义其它标签语言;   4) XML没有定义任何标记,它提供了一种工具定义标记以及它们之间的结构关系;   5) XML是一种用于结构化文本交换的标记语言;   6) XML代表了内容的结构也代表了内容本身;   7) XML继承自SGML(标准通用标记语言)。SGML的前身GML由IBM在1960年发明,用于描述设备无关的文本   8) XML是SGML的子语言,由SGML简化而来,起初的目的是为Web的结构文档提供服务。   9) W3C组织在1998年2月10日发布XML1.0版,第二个版本发布于2000年10月9日。   10)XML是分层的树形结构的自解释的一种可扩展的标记语言。   XML和HTML的关系   1) 事实上,HTML和XML不能够进行比较的。因为XML是一种语言,而HTML是一种定义好的标记语言。XML是描述数据的语言,HTML是描述数据   外观的语言。   2) HTML有一套确定的标记。在W3C标准规范中定义了HTML标记的含义并由部分浏览器实现了。   3) HTML标记非常适合描述人类易读的可视化文本。   4) HTML定义了许多表现指令用以优化在浏览器中的显示。   5) 在HTML标记中,数据固有的结构丢失了。   6) HTML没有维持数据类型信息的完整性、约束、或实体间的其它关系,而XML提供了这些特征。   对XML文件的要求,格式良好(符合XML的语法要求),有效的XML;   XML的用途,数据传输的中间件,做为通用文档格式   1,数据交换   2,web服务   3,内容管理   4,web集成   5,充当配置文件   格式良好的XML文件的规范   XML文档是一种严格规范的语言,必须按照规范来写。   XML文档的框架结构   XML文档=序言+素+杂项(可选)   1)序言   序言=(XML声明)+(杂项)+(文档类型声明)   XML声明   如:   文档类型声明   规定素的结构和属性列表的取值   如:   2)素   空素   非空素   内容   内容=(子素|字符数据|字符数据段|引用|处理指令|注释)*   字符数据   字符数据中,不能含有&,,’,”,需要采用实体引用的方式   字符数据段   引用   3)杂项   处理指令   XML为其它应用程序准备的接口。   注释   空白符指空格、回车等   XML文件事例   …   XML文件的写法   xml文档是有标签和标签中的内容组成的,标签和标签中的内容合成为素   非空素   (起始标签)   aaa(内容)   (结束标签)   空素   格式良好的XML文档的规范   1)文档声明位于文件的开头   2)文档中只能定义一个唯一的根素(根素是在文档声明之后的最外层的素)   3)标签必须闭合,且不能交叉,有素的起始标签,就必须有其结束标签(空素除外)   4)层层嵌套,每一对标签总是出于另一对标签的内或和其处于同一层,不能交叉(根素chuw)   5)大小写敏感,起始标签和结束标签的名字要一致   6)属性值必须用引号引起来   7)注意特殊字符,使用时需要使用转义字符。   注意:   1.第一行一定要写   2.xml文件是由素和素的内容以及属性组成的,一个xml文件中只能有一个根素,标签和标签的内容加在一起叫作一个素。xml是大小写   敏感的,只能以字母或下划线开头。   字符转义   < 代表 “” ,   ” 代表双引号。   &amp 代表 “&” ,   &apos; 代表单引号   字符数据段,不解析   ….的部分不必使用转义,其中内容会直接输出。   引用   实体声明   使用实体,引用   &引用名   事例:   (XML文件的声明)   (注释)   (根素)   (子素)   b)   then {return 1}   else{return 0}   }]]>   (空素)   张三   XSLT,是用于对XML进行文档格式转换,把一个XML文档转换成另一种格式的XML文档,但是其中内容是不变的。   &2.DTD(Document Type Difinition   DTD文档是用于规定XML文档的结构。只有结构符合所引用的DTD文件的XML文件才能称之为有效的XML文件。   DTD(文档类型定义)   !DOCTYPE 定义DTD文件名   !ELEMENT 定义素中可用的数据类型   #PCDATA 可解析字符串。   1)DTD的调用   方式一:调用内部文档类型定义。   <!DOCTYPE studinfo[]>   注意点:   (1) studinfo与(#PCDATA)有空格   (2) 文档类型名与根素名必须一致   方式二:调用外部文档类型定义,需要写一个DTD文档   注意点:   (1)standalone=”no”   (2)注意dtd文件的路径   2)DTD的结构   1.素类型声明   指明素的名称和素含有的内容。   素类型声明=   素内容说明=’EMPTY’|’ANY’|混合内容|素内容|’#PCDATA’   #PCDATA:   只有可析的字符数据才能作为素的内容   素内容:   素内部只能出现指定的子素   事例:带有子素的素结构定义   ”?” 表示子素只可以出现一个,也可以不出现 (0到1)   ”+” 表示子素必须出现,可以出现多个 (1到多)   ”*” 表示子素可以出现多个,也可以不出现,(0到多)   Enumerated:枚举类型,由“|”分隔的可能的子素,在可能出现的子素中只能有一个出现。   EMPTY:素内容为空时才写(空素,其中不能有内容)   (无子素)   ANY:素内容可以任意,也可以为空   混合内容:标记文本和可析字符串   2.素属性表声明   属性:由“=”分隔的成对的属性名和属性值构成,只能出现在素标记的内部。   结束标记不能带属性,一个素可以具有多个属性   语法:   属性取值类型   1、CDATA:可析字符(文本)   2、Enumerated:枚举类型,由“|”分隔的可能的属性值列表   属性默认值:   注意   1、#REQUIRED:必须提供属性值   2、IMPLIED:可提供也可不提供   3、FIXED:不能修改   事例:   zhangshan   实体声明   实体:存储了任意符合规则的xml文档单片断。   1、内部通用实体   定义格式   引用格式 &实体名;   2、外部通用实体   定义格式   引用格式 &实体名;   事例:   <!DOCTYPE studinfo[   ]>   zhangshan   20   beijing haidian   &schoolinfo;   记号声明   用记号标识非xml格式的数据   定义格式   3)DTD的缺陷,DTD中的类型比较少,有一些约束在DTD中是表达不了的,DTD不支持XML语法.   &3.NameSpace(命名空间)   namespace是为了解决XML文档中的命名冲突问题的。   DTD不支持命名空间,解析器无法测试命名空间。   1、作用:   解决XML文档中命名冲突的问题,即将   XML文档与引用URI标识的名域相结合,来   限定其中的素和属性名。   示例:   t1   man   s1   girl   2、名域的声明   (1)直接定义   xmlns:名域前缀=”名域的URI”(唯一性)   类比:名字与身份证   名域的使用,名域前缀:需要限定的素名   示例:   zhangshan   man   stu1   girl   (2)缺省定义   xmlns=名域的URI   zhangshan   man   stu1   girl   3、名域的使用   (1)用名域限定素   zhangshan   man   stu1   girl   (2)用名域限定属性   zhangshan   man   caoyang,no1   stu1   girl   haidian,no2   4、名域的作用范围   名域能够把声明它的素和该素的所有子素关联起来,除非它们被其他的名域声明所覆盖。   &XML Schema   Schema 也是XML文档,用于定义XML文档的结构。   目标名域   使用目标名域中的限制,要只用这个schema文件结构生成XML文档中必须使用者个默认名域。   schema文件的扩展名为 .xsd schema文档的语法和XML的语法相同。   schema文档也有根素,根素为schema。   参照类型约束,来约束素的内容   素的默认和固定值 1) 简单素可以有一个默认或固定值: 2) 当没有指定值时,一个默认的值自动分配给素。在这个例子中,默   认值为red: 3) 一个固定值也是自动分配给素的,你不能指定   其它值。在这个例子中,默认值为red:   ref关键字 参照….定义。   属性结构的定义,属性也可以使用固定值或者是默认值   schema文件中也可以定义素结构和类型,schema文件中对素内容加以限制   schema中可以定义素内容类型   1. 简单类型   2. 自定义类型,复杂类型,子素组合   简单类型,基本类型加限制   simpleType:简单类型定义   restriction:基本类型引用   enumeration:使用枚举类型,从给定值中选择且必选其一。   minInclusive:简单类型加最小值约束,且包含设定的最小值   maxExclusive:简单类型加最大值约束,且包含设定的最大值   以下是其使用的事例   . 简单类型加限制   只能使用非负整数3到7包含3和7。   . 复杂类型定义   复杂类型定义事例:   整体schema文档事例   演示simpleType用法,即自定义类型   学生(id = “1000”)   姓名   年龄(必须是int,并且只能取一定范围的值)   父亲(父母二者选一)   母亲   专业(枚举类型)   知识点:   simpleType   restriction   enumeration   minInclusive   maxExclusive   针对以上schema文件的有效的XML文件事例   shang   zhang   30   lishi   computer   XML文档的解析   SAX   :事件机制驱动。在遇到相应的节点时,会发出一个事件,当解析器发现素开始、素结束、文本、文档的开始或结束等时,发送事件,程序员编写响应这些事件的代码,保存数据。   SAX的优缺点:   优点:   不用事先调入整个文档,占用资源少;   SAX解析器代码比DOM解析器代码小,适于Applet,下载   缺点:   不是持久的;事件过后,若没保存数据,那么数据就丢了,比较消耗时间;   只能顺序处理,不能选择读取。不支持文档的创建和修改。   无状态性;从事件中只能得到文本,但不知该文本属于哪个素;   使用场合:Applet;只需XML文档的少量内容,很少回头访问;机器内存少   SAX处理流程   UNIX   color   分析这个代码片断的 SAX 处理器一般情况下将产生以下事件:   startDocument()   startElement (samples)   characters (white space)   startElement (server)   characters (UNIX)   endElement (server)   characters (white space)   startElement (monitor)   characters (color)   endElement (monitor)   characters (white space)   endElement (samples)   SAX API 允许开发人员捕捉这些事件并对它们作出反应。   SAX 处理涉及以下步骤:   创建一个事件处理程序。   创建 SAX 解析器。   向解析器分配事件处理程序。   解析文档,同时向事件处理程序发送每个事件。   要实现SAX解析XML文档的方法,   XMLReader和XMLReaderFactory   XMLReader read=XMLReaderFactory.createXMLReader();生成XMLReader对象,   使用XMLReader对象的方法parse(File f,ContentHandler handler),ContentHandler是一个定义好事件处理方法的接口,   DTDHandler ,EntityResolver ,ErrorHandler这三个接口和 ContentHandler接口相同,但是其中定义的是其他事件处理方法,一般只是实现ContentHandler接口。   使用SAX解析XML文档,需要先有SAXParserFactory对象,他的对象是通过自身的静态方法newInstance(),然后再通过SAXParserFactory对象来创建SAXParser对象,使用SAXParser对象的   parse(File f,DefaultHandler handler),DefaultHandler是用来处理解析时发出的事件的类,就可以进行解析。DefaultHandler实现了ContentHandler,DTDHandler ,EntityResolver ,ErrorHandler,四个接口,但是只给出了空实现,便于使用者覆盖相应的方法。   SAX解析的其他方法请参阅JAVA API文档。(javax.xml.parsers ,org.xml.sax ,org.xml.sax.helpers)   DOM (文档对象模型)Document Object Modle   为 XML 文档的已解析版本定义了一组接口。解析器读入整个文档,然后构建一个驻留内存的树结构,然后代码就可以使用 DOM 接口来操作这个树结构。   优点:整个文档树在内存中,便于操作;支持删除、修改、重新排列等多种功能;   缺点:将整个文档调入内存(包括无用的节点),浪费时间和空间;   使用场合:一旦解析了文档还需多次访问这些数据;硬件资源充足(内存、CPU)   DOM解析是将整个的XML文档素结构读入内存,由根素向下形成子素分级树状关系。   DOM的解析   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();   DocumentBuilder builder = factory.newDocumentBuilder();   Document document = builder.parse(name);   以上三行代码,使用来生成Document对象的,Document对象就代表了读入内存后结构化的XML文档。   使用Document对象的getDocumentElement()方法获得子节点,可以通过不断的迭代便利所有节点,这些节点就代表了素,从根素开始一直到最内层的子素。   getElementsByTagName(String tagname) 这个方法可以通过素的名来或得该素内层素,也就是或得了这个节点的所有子节点(NodeList)NodeList的方法getLength()(列表中的节点数),通过循环使用 Node item(int index) (返回集合中的第 index 个项)方法,来获得每个子节点。   DOM解析的其他方法请参阅JAVA API文档。(org.w3c.dom)   选择 DOM 还是选择 SAX,这取决于下面几个因素:   应用程序的目的:   数据容量:   数据多少部分会被使用   对速度的需要:   DOM4j,JDOM   开源的XML文档解析器,实现DOM,SAX接口,保留了DOM和SAX的基本语法,对解析性能进行了优化。   JDOM   需要jdom.jar和   JDOM的背后使用的是使用SAX对文件进行扫描的。   SAXBuilder builder=new SAXBuilder();//创建解析器   使用SAX扫描之后的结果保存成DOM结构的树。JDOM对解析过程作了简化。   JDOM中的方法便的更加易用。例如:getRootElement(),getChildren(“…”)方法的返回值是java.util.List类型,getText()方法直接可以返回素中的内容,他的返回值类型是String类型。   JDOM也可以对XML文档进行写操作。   XMLOutputter类的对象可以向文件中写信息,setEncoding(“”)设置内码,setNewLine(true),设置换行。output(Document docFileWriter write)方法可以向文件中写入。

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/51336.html

(0)
上一篇 2024年 9月 2日
下一篇 2024年 9月 2日

相关推荐

关注微信