java核心基础编程_第1页
java核心基础编程_第2页
java核心基础编程_第3页
java核心基础编程_第4页
java核心基础编程_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XMLXML编程编程王昭珽王昭珽Qq:30694257Qq:30694257动感在握动感在握电话:电话: ( (京京) ) ( (济南济南) ) 高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 主要内容lXML及其语法lXML约束之DTDlXML编程(CRUD-Create Read Update Delete)lXML约束之Schema高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML概述王昭珽王昭珽高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育

2、 什么是XMLlXML是指可扩展标记语言(eXtensible Markup Language),它是一种标记语言,很类似HTML。它被设计的宗旨是传输数据,而非显示数据。lXML标签没有被预定义,需要用户自行定义标签。lXML技术是W3C组织(World Wide Web Consortium万维网联盟)发布的,目前遵循的是W3C组织于2000年发布的XML1.0规范。lXML被广泛认为是继Java之后在Internet上最激动人心的新技术。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML技术用于解决什么问题?l在现实生活中存在大量有关系的数据,如右图所示。l问

3、题:这样的数据该如何表示并交给计算机处理呢?高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML技术用于解决什么问题?lXML语言出现的根本目的在于描述向上图那种有关系的数据。lXML是一种通用的数据交换格式。l在XML语言中,它允许用户自定义标签。一个标签用于描述一段数据;一个标签可分为开始标签和结束标签,在起始标签之间,又可以使用其它标签描述其它数据,以此来实现数据关系的描述。lXML中的数据必须通过软件程序来解析执行或显示,如IE;这样的解析程序称之为Parser(解析器)。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML常见应用l

4、在Java开发中,传统的配置文件是*.properties属性文件(key=value),而XML表示的数据更为丰富。lXML技术除用于描述有关系的数据外,还经常用作软件配置文件,以描述程序模块之间的关系。(如后面将要学习到的Struts、Spring和Hibernate都是基于XML作为配置文件的)l在一个软件系统中,通过XML配置文件可以提高系统的灵活性。即程序的行为是通过XML文件来配置的,而不是硬编码。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML语法王昭珽王昭珽高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML文档的组成l一

5、个XML文件一般由以下几部分组成:l文档声明l元素l元素的属性l注释lCDATA区l特殊字符l处理指令(PI:Processing Instruction)高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 文档声明l在编写XML文档时,需要先使用文档声明来声明XML文档。且必须出现在文档的第一行。l最简单的语法:l用encoding属性说明文档所使用的字符编码,默认为UTF-8。保存在磁盘上的文件编码要与声明的编码一致。l如:l用standalone属性说明文档是否独立,即是否依赖其他文档。l如:高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 元素

6、(1)lXML元素指XML文件中出现的标签。一个标签分为起始和结束标签(不能省略)。一个标签有如下几种书写形式:l包含标签主体:some contentl不含标签主体: = l一个标签中可以嵌套若干子标签,但所有标签必须合理的嵌套,不允许有交叉嵌套。l WRONGl一个XML文档必须有且仅有一个根标签,其他标签都是这个根标签的子标签或孙标签。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 元素(2)lXML中不会忽略主体内容中出现的空格和换行。注:由于在XML中,空格和换行都作为原始内容被处理,所以,在编写XML文件时,使用换行和缩进等方式来让原文件中的内容清晰可读的“

7、良好”书写习惯可能要被迫改变。第一段:第一段: 第二段:第二段:rn rt给人看高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 元素(3)-元素命名规范l元素(标签)的名称可以包含字母、数字、减号、下划线和英文句点,但必须遵守下面的一些规范:l严格区分大小写; l只能以字母或下划线开头;abc _abcl不能以xml(或XML、Xml等)开头-W3C保留日后使用;l名称字符之间不能有空格或制表符;abl名称字符之间不能使用冒号; (有特殊用途)高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 元素的属性l一个元素可以有多个属性,每个属性都有它自己的

8、名称和取值,例如:l属性值一定要用引号(单引号或双引号)引起来。l属性名称的命名规范与元素的命名规范相同l元素中的属性是不允许重复的l在XML技术中,标签属性所代表的信息也可以被改成用子元素的形式来描述,例如:高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 注释lXML中的注释语法为:l注意:lXML声明之前不能有注释l注释不能嵌套,例如:!-大段注释-WRONG高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 CDATA区lCDATA是Character Data的缩写l作用:把标签当做普通文本内容;l语法:!CDATA 以上红色部分被当做普通文

9、本而不是标签高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 特殊字符l对于一些特殊字符,若要在元素主体内容中显示,必须进行转义。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 处理指令l处理指令,简称PI(Processing Instruction)。l作用:用来指挥软件如何解析XML文档。l语法:必须以“”作为结尾。l常用处理指令:lXML声明:lxml-stylesheet指令:l作用:指示XML文档所使用的CSS样式XSL。注:对中文命名的标签元素不起作用高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML约束之

10、DTD王昭珽高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 为什么需要约束lXML都是用户自定义的标签,若出现小小的错误,软件程序将不能正确地获取文件中的内容而报错。(如:Tomcat)lXML技术中,可以编写一个文档来约束一个XML的书写规范,这个文档称之为约束。l两个概念:l格式良好的XML:遵循XML语法的XMLl有效的XML:遵循约束文档的XMLl总之:约束文档定义了在XML中允许出现的元素名称、属性及元素出现的顺序等等。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 常用的约束技术lXML DTDlXDRlSOXlXML Schema高

11、级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 DTD快速入门lDTD(Document Type Definition):文档类型定义。l作用:约束XML的书写规范文件清单:文件清单:book.xmlbook.xml!DOCTYPE book.dtd JavaJava就业培训教程就业培训教程/ 张孝祥张孝祥/ 39.0039.00元元/ / JavaScriptJavaScript网页开发网页开发/ 张孝祥张孝祥/ 28.0028.00元元/ / / 文件清单:文件清单:book.dtd高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 验证XML的

12、有效性l如何根据DTD中定义的内容来验证XML书写是否正确呢?l答:需要软件程序,即解析器l根据能否对XML文档进行约束模式校验,可以将解析器分为两类:l非校验解析器,如IEl校验解析器高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 编程校验XML文档的正确性lIE5以上浏览器内置了XML解析工具:Microsort.XMLDOM,开发人员可以编写javascript代码,利用这个解析工具装载xml文件,并对xml文件进行dtd验证。l创建xml文档解析器对象lvar xmldoc = new ActiveXObject(Microsoft.XMLDOM);l开启xml

13、校验lxmldoc.validateOnParse = true;l装载xml文档lxmldoc.load(book.xml);l获取错误信息lxmldoc.parseError.reason; lxmldoc.parseError.line高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 编写DTD的方式lDTD约束文档可以在XML文档中直接定义,也可以作为单独的文档进行编写(单独的文档必须以UTF-8编码进行保存) 。l在XML文档中编写DTD示例!DOCTYPE 书架 Java就业培训教程张孝祥39.00元.高级软件人才实作培训专家高级软件人才实作培训专家! !北京

14、传智播客教育 引入外部DTD文档lXML使用DOCTYPE声明语句来指明它所遵循的DTD文档,有两种形式:l当引用的DTD文档在本地时,采用如下方式:ll如:l当引用的DTD文档在公共网络上时,采用如下方式:ll如:高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 DTD语法细节lDTD文档的语法主要涉及以下内容的定义:l定义元素l定义属性l定义实体高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 DTD-定义元素l在DTD文档中使用ELEMENT关键字来声明一个XML元素。l语法:l使用规则:l(#PCDATA):指示元素的主体内容只能是普通的文本

15、.(Parsed Character Data)lEMPTY:用于指示元素的主体为空。比如lANY:用于指示元素的主体内容为任意类型。l(子元素):指示元素中包含的子元素l定义子元素及描述它们的关系:l如果子元素用逗号分开,说明必须按照声明顺序去编写XML文档。l如: !ELEMENT FILE (TITLE,AUTHOR,EMAIL)l如果子元素用“|”分开,说明任选其一。l如:!ELEMENT FILE (TITLE|AUTHOR|EMAIL)l用+、*、?来表示元素出现的次数l如果元素后面没有+*?:表示必须且只能出现一次l+:表示至少出现一次,一次或多次l*:表示可有可无,零次、一次或

16、多次l?:表示可以有也可以无,有的话只能有一次。零次或一次l如: 高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 DTD-定义属性1l在DTD文档中使用ATTLIST关键字来为一个元素声明属性。l语法:l例如:对应的XML为:高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 DTD-定义属性2l属性值类型:lCDATA:表示属性的取值为普通的文本字符串lENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)lID:表示属性的取值不能重复l设置说明l#REQUIRED:表示该属性必须出现l#IM

17、PLIED:表示该属性可有可无l#FIXED:表示属性的取值为一个固定值。语法:#FIXED 固定值l直接值:表示属性的取值为该默认值高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 DTD-定义属性示例1、 2 2、!DOCTYPE !DOCTYPE 购物篮购物篮 !ELEMENT EMPTY!ATTLIST / / / 高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 DTD-定义属性示例lID表示属性的设置值为一个唯一值。!DOCTYPE 联系人列表张三 李四高级软件人才实作培训专家高级软件人才

18、实作培训专家! !北京传智播客教育 DTD-定义实体l定义实体就是为一段内容指定一个名称,使用时通过这个名称就可以引用其所代表的内容。l在DTD文档中使用ENTITY关键字来声明一个实体。l实体可分为:引用实体和参数实体,两者的语法不同高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 定义引用实体l概念:在DTD中定义,在XML中使用l语法:l引用方式(注意是在XML中使用):&实体名称;DTD中定义:XML中引用:&copyright;高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 定义参数实体(了解)l概念:在DTD中定义,在D

19、TD中使用l语法:l引用方式(注意是在DTD中使用):%实体名称;DTD中定义:DTD中引用:高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML及DTD练习lXML练习题l右键复制lDTD实例高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML编程(用Java编写解析器)王昭珽高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 Java解析XML概述lXML解析方式分为两种:DOM方式和SAX方式lDOM:Document Object Model,文档对象模型。这种方式是W3C推荐的处理XML的一种方式。lSAX:Si

20、mple API for XML。这种方式不是官方标准,属于开源社区XML-DEV,几乎所有的XML解析器都支持它。lXML解析开发包lJAXP:是SUN公司推出的解析标准实现。JDKlDom4J:是开源组织推出的解析开发包。(牛,大家都在用,包括SUN公司的一些技术的实现都在用)lJDom:是开源组织推出的解析开发包。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 JAXPlJAXP:(Java API for XML Processing)开发包是JavaSE的一部分,它由以下几个包及其子包组成:lorg.w3c.dom:提供DOM方式解析XML的标准接口lorg.

21、xml.sax:提供SAX方式解析XML的标准接口ljavax.xml:提供了解析XML文档的类ljavax.xml.parsers包中,定义了几个工厂类。我们可以通过调用这些工厂类,得到对XML文档进行解析的DOM和SAX解析器对象。lDocumentBuilderFactorylSAXParserFactory高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 使用使用JAXPJAXP进行进行DOMDOM解析解析ljavax.xml.parsers 包中的DocumentBuilderFactory用于创建DOM模式的解析器对象 , DocumentB

22、uilderFactory是一个抽象工厂类,它不能直接实例化,但该类提供了一个newInstance方法 ,这个方法会根据本地平台默认安装的解析器,自动创建一个工厂的对象并返回。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 获得获得JAXPJAXP中的中的DOMDOM解析器解析器l调用 DocumentBuilderFactory.newInstance() 方法得到创建 DOM 解析器的工厂。l调用工厂对象的 newDocumentBuilder方法得到 DOM 解析器对象。l调用 DOM 解析器对象的 parse() 方法解析 XML 文档,得到

23、代表整个文档的 Document 对象,进行可以利用DOM特性对整个XML文档进行操作了。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 TipTip:DOMDOM编程编程lDOM模型(document object model)lDOM解析器在解析XML文档时,会把文档中的所有元素,按照其出现的层次关系,解析成一个个Node对象(节点)。l在dom中,节点之间关系如下:l位于一个节点之上的节点是该节点的父节点(parent)l一个节点之下的节点是该节点的子节点(children) l同一层次,具有相同父节点的节点是兄弟节点(sibling) l一个节

24、点的下一个层次的节点集合是节点后代(descendant)l父、祖父节点及所有位于节点上面的,都是节点的祖先(ancestor) l节点类型(下页ppt)高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 NodeNode对象对象lNode对象提供了一系列常量来代表结点的类型,当开发人员获得某个Node类型后,就可以把Node节点转换成相应的节点对象(Node的子类对象),以便于调用其特有的方法。(查看API文档) lNode对象提供了相应的方法去获得它的父结点或子结点。编程人员通过这些方法就可以读取整个XML文档的内容、或添加、修改、删除XML文档的内容

25、了。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 DOMDOM方式解析方式解析XMLXML文件文件lDOM解析编程l1、得到某个具体的节点内容l2、遍历所有元素节点l3、修改某个元素节点的主体内容l4、向指定元素节点中增加子元素节点l5、向指定元素节点上增加同级元素节点l6、删除指定元素节点l7、操作XML文件属性lDOM编程练习高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 更新更新XMLXML文档文档ljavax.xml.transform包中的Transformer类用于把代表XML文件的Documen

26、t对象转换为某种格式后进行输出,例如把xml文件应用样式表后转成一个html文档。利用这个对象,当然也可以把Document对象又重新写入到一个XML文件中。lTransformer类通过transform方法完成转换操作,该方法接收一个源和一个目的地。我们可以通过:ljavax.xml.transform.dom.DOMSource类来关联要转换的document对象, l用javax.xml.transform.stream.StreamResult 对象来表示数据的目的地。l Transformer对象通过TransformerFactory获得。高级软件人才实作培训专家高级软件人才实作

27、培训专家! !北京传智播客教育 北京传智播客教育 SAXSAX解析解析l在使用 DOM 解析 XML 文档时,需要读取整个 XML 文档,在内存中构架代表整个 DOM 树的Doucment对象,从而再对XML文档进行操作。此种情况下,如果 XML 文档特别大,就会消耗计算机的大量内存,并且容易导致内存溢出。lSAX解析允许在读取文档的时候,即对文档进行处理,而不必等到整个文档装载完才会文档进行操作。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 SAXSAX解析解析lSAX采用事件处理的方式解析XML文件,利用 SAX 解析 XML 文档,涉及两个部分

28、:解析器和事件处理器:l解析器可以使用JAXP的API创建,创建出SAX解析器后,就可以指定解析器去解析某个XML文档。l解析器采用SAX方式在解析某个XML文档时,它只要解析到XML文档的一个组成部分,都会去调用事件处理器的一个方法,解析器在调用事件处理器的方法时,会把当前解析到的xml文件内容作为方法的参数传递给事件处理器。l事件处理器由程序员编写,程序员通过事件处理器中方法的参数,就可以很轻松地得到sax解析器解析到的数据,从而可以决定如何对数据进行处理。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 SAXSAX解析解析阅读ContentHan

29、dler API文档,常用方法:startElement、endElement、characters高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 SAXSAX方式解析方式解析XMLXML文档文档l使用SAXParserFactory创建SAX解析工厂lSAXParserFactory spf = SAXParserFactory.newInstance();l通过SAX解析工厂得到解析器对象lSAXParser sp = spf.newSAXParser();l通过解析器对象得到一个XML的读取器lXMLReader xmlReader = sp.g

30、etXMLReader();l设置读取器的事件处理器lxmlReader.setContentHandler(new BookParserHandler();l解析xml文件lxmlReader.parse(book.xml);高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 SAXSAX方式解析方式解析XMLXML文档文档lSAX解析编程高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 DOM4JDOM4J解析解析XMLXML文档文档lDom4j是一个简单、灵活的开放源代码的库。Dom4j是由早期开发JDOM的人

31、分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4j的API相对要复杂一些,但它提供了比JDOM更好的灵活性。 lDom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极易使用的特点。现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j。l使用Dom4j开发,需下载dom4j相应的jar文件。高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 DocumentDocument对象对象lDOM4j中,获得Document对象的方式有三种:l1.读取XML文

32、件,获得document对象 l SAXReader reader = new SAXReader(); Document document = reader.read(new File(input.xml);l2.解析XML形式的文本,得到document对象.l String text = ; Document document = DocumentHelper.parseText(text);l3.主动创建document对象.l Document document = DocumentHelper.createDocument(); /创建根节点l Element root = doc

33、ument.addElement(members);高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 节点对象节点对象l1.获取文档的根节点.l Element root = document.getRootElement();l2.取得某个节点的子节点.lElement element=node.element(“书名);l3.取得节点的文字l String text=node.getText();高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 节点对象节点对象l4.取得某节点下所有名为“member”的子节点

34、,并进行遍历. List nodes = rootElm.elements(member); for (Iterator it = nodes.iterator(); it.hasNext();) Element elm = (Element) it.next(); / do something l5.对某节点下的所有子节点进行遍历. for(Iterator it=root.elementIterator();it.hasNext();) Element element = (Element) it.next(); / do something l6.在某节点下添加子节点.Element a

35、geElm = newMemberElm.addElement(age);高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 节点对象节点对象l7.设置节点文字. element.setText(29);l8.删除某节点./childElm是待删除的节点,parentElm是其父节点l parentElm.remove(childElm);l9.添加一个CDATA节点.Element contentElm = infoElm.addElement(content);contentElm.addCDATA(diary.getContent();高级软件人才实

36、作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 节点对象属性节点对象属性l1.取得某节点下的某属性 Element root=document.getRootElement(); /属性名namel Attribute attribute=root.attribute(size);l2.取得属性的文字 String text=attribute.getText();l 3.删除某属性 Attribute attribute=root.attribute(size); root.remove(attribute);高级软件人才实作培训专家高级软件人才实作培训专家! !

37、北京传智播客教育 北京传智播客教育 节点对象属性节点对象属性l3.遍历某节点的所有属性 Element root=document.getRootElement(); for(Iterator it=root.attributeIterator();it.hasNext();) Attribute attribute = (Attribute) it.next(); String text=attribute.getText(); System.out.println(text); l4.设置某节点的属性和文字. newMemberElm.addAttribute(name, sitinspr

38、ing);l5.设置属性的文字 Attribute attribute=root.attribute(name); attribute.setText(sitinspring);高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 将文档写入XML文件. l1.文档中全为英文,不设置编码,直接写入的形式. XMLWriter writer = new XMLWriter(new FileWriter(output.xml); writer.write(document); writer.close();l2.文档中含有中文,设置编码格式写入的形式.Outpu

39、tFormat format = OutputFormat.createPrettyPrint();/ 指定XML编码 l format.setEncoding(GBK); XMLWriter writer = new XMLWriter(new FileOutputStream (output.xml),format);writer.write(document);writer.close();高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 Dom4j在指定位置插入节点 l1.得到插入位置的节点列表(list)l2.调用list.add(index,

40、elemnent),由index决定element的插入位置。lElement元素可以通过DocumentHelper对象得到。示例代码:lElement aaa = DocumentHelper.createElement(aaa);laaa.setText(aaa);lList list = root.element(书).elements();llist.add(1, aaa);l/更新document高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 字符串与XML的转换 l1.将字符串转化为XML l String text = sitinspr

41、ing;Document document = DocumentHelper.parseText(text);l2.将文档或节点的XML转化为字符串.l SAXReader reader = new SAXReader();Document document = reader.read(new File(input.xml); Element root=document.getRootElement(); l String docXmlText=document.asXML();lString rootXmlText=root.asXML();Element memberElm=root.el

42、ement(member);String memberXmlText=memberElm.asXML();高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 XML约束之Schema王昭珽高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 XML SchemaXML SchemalXML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性lXML Schema VS DTD:lXML Schema符合XML语法结构。 lDOM、SAX等XML API很容易解析出XML Schema

43、文档中的内容。 lXML Schema对名称空间支持得非常好。 lXML Schema比XML DTD支持更多的数据类型,并支持用户自定义新的数据类型。 lXML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。lXML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。 高级软件人才实作培训专家高级软件人才实作培训专家! !北京传智播客教育 北京传智播客教育 SchemaSchema约束快速入门约束快速入门XML Schema 文件自身就是一个XML文件,但它的扩展名通常为.xsd。一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档。和XML文件一样,一个XML Schema文档也必须有一个根结点,但这个根结点的名称为schema。编写了一个XML Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个地址上,在XML Schema技术中有一个专业术语来描述这个过程,即把XML Schema文档声明的元素绑定到一个名称空间上,以后XML文件就可以通过这个URI(即名称空间)来告诉解析引擎,xml文档中编写的元素来自哪里,被

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论