javaweb学习总结XML

XML

1XML语法-文档声明:用standalone属性说明文档是否独立:

<?xml version="1.0" encoding="GB2312"  standalone="yes" ?>

2对于XML标签中出现的所有空格和换行,XML解析程序都会当作标签内容进行处理。

3CDATA:在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理。

遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直接原封不动的输出。

语法:<![CDATA[ 内容 ]]>

<![CDATA[

<itcast>

<br/>

</itcast>

]]>

4Xml文件中的注释采用:“<!--注释-->” 格式。(XML声明之前不能有注释)

XML约束:

1、常用的约束技术

 1)、XML DTD 

 2)、XML Schema

 1.1DTD(Document Type Definition),全称为文档类型定义。

 XML文件使用 DOCTYPE 声明语句来指明它所遵循的DTD文件,DOCTYPE声明语句有    

   两种形式:

  当引用的文件在本地时,采用如下方式:

<!DOCTYPE 文档根结点 SYSTEM "DTD文件的URL">

例如: <!DOCTYPE 书架 SYSTEM book.dtd>。在xml文件中手写一下。

  当引用的文件是一个公共的文件时,采用如下方式:

<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">

例如:<!DOCTYPE web-app PUBLIC 

"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd">

1.2XML解析方式分为两种:domsax

 1.2.1dom(Document Object Model, 即文档对象模型是 W3C 组织推荐的处理 XML 的一种方式。

  在使用 DOM 解析 XML 文档时,需要读取整个 XML 文档,在内存中构架代表整个 DOM 树的Doucment对象,从而再对XML文档进行操作。此种情况下,如果 XML 文档特别大,就会消耗计算机的大量内存,并且容易导致内存溢出。

 1.2.2sax (Simple API for XML) 不是官方标准,但它是 XML 社区事实上的标准,几乎所有的 XML 解析器都支持它。

   SAX解析允许在读取文档的时候,即对文档进行处理,而不必等到整个文档装载完才会文档进行操作

 1.2.3XML解析器

  CrimsonXerces Aelfred2

 1.2.4XML解析开发包

JaxpJdomdom4j

1.3DOM4j中,获得Document对象的方式有三种:

1.读取XML文件,获得document对象            

                   SAXReader reader = new SAXReader();
              Document   document = reader.read(new File("input.xml"));

2.解析XML形式的文本,得到document对象.

                   String text = "<members></members>";
              Document document = DocumentHelper.parseText(text);

3.主动创建document对象.

                  Document document = DocumentHelper.createDocument();
             //创建根节点

                  Element root = document.addElement("members");

将文档写入XML文件:

1.文档中全为英文,不设置编码,直接写入的形式.
  XMLWriter writer = new XMLWriter(new  FileWriter("output.xml"));
  writer.write(document);
  writer.close();

2.文档中含有中文,设置编码格式写入的形式.

OutputFormat format = OutputFormat.createPrettyPrint();

format.setEncoding("UTF-8");

XMLWriter writer = new XMLWriter(new FileOutputStream("src/book1.xml"),format);

writer.write(document);  //utf-8

writer.close();

XML Schema: XML Schema 文件自身就是一个XML文件,但它的扩展名通常为.xsd

XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性

XML Schema VS DTD

XML Schema符合XML语法结构。 

DOMSAXXML API很容易解析出XML Schema文档中的内容。 

XML Schema对名称空间支持得非常好。 

XML SchemaXML DTD支持更多的数据类型,并支持用户自定义新的数据类型。 

XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。

XML Schema不能像DTD一样定义实体,比DTD更复杂,但Xml Schema现在已是w3c组织的标准,它正逐步取代DTD。 

名称空间的概念:

XML Schema中,每个约束模式文档都可以被赋以一个唯一的名称空间,名称空间用一个唯一的URIUniform Resource Identifier,统一资源标识符)表示。 在Xml文件中书写标签时,可以通过名称空间声明(xmlns),来声明当前编写的标签来自哪个Schema约束文档。如:

<itcast:书架 xmlns:itcast=http://www.itcast.cn>

<itcast:>……</itcast:>

</itcast:书架>

 此处使用itcast来指向声明的名称,以便于后面对名称空间的引用。

使用名称空间引入Schema :

为了在一个XML文档中声明它所遵循的Schema文件的具体位置,通常需要在Xml文档中的根结点中使用schemaLocation属性来指定,例如:

<itcast:书架 xmlns:itcast="http://www.itcast.cn"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation=http://www.itcast.cn book.xsd">

schemaLocation此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置,两者之间用空格分隔。 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值