正 文

JAXP的演进


www.7dspace.com  更新日期:2005-10-27 2:39:10  七度空间


使用JAXP, 通过DOM parse XML document的代码片断:

DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
        dbfactory.setNamespaceAware(true);
        DocumentBuilder domparser = dbfactory.newDocumentBuilder();

        //parse the XML and create the DOM
        Document doc = domparser.parse(new File("data.xml"));

        //to create a new DOM from scratch -
        //Document doc = domparser.newDocument();

        //once you have the Document handle, then you can use
        //the org.w3c.dom.* APIs to traverse or modify the DOM...


      在校验模式下进行解析

      根据DTD校验

      DTD 是XML 文档的语法。经常人们会觉得DTD有点另类,因为它和XML的syntax不一样,但DTD是W3C XML1.0里的完整的一部分。如果一份XML文档声明了DOCTYPE,并且想在解析的时候根据DTD校验文档,那你必须在适当的factory里启用根据DTD校验文档(validation)这个特性。例如:

       DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
        dbfactory.setValidating(true);

        OR

        SAXParserFactory spfactory = SAXParserFactory.newInstance();
        spfactory.setValidating(true);

      注意,如果XML文档声明了一个DTD ,即使你不启用校验(validation)这个特性,解析器总是试着去读入这个DTD。  这样做的目的是为了保证XML文档中entity reference被正确的扩展了,否则会导致格式不正确的XML文档,只有在XML文档序言部分的声明中standalone属性被置为true时,外部的DTD才会被完全忽略掉。例如:  

<?xml version="1.1" encoding="UTF-8" standalone="yes"?>

      根据W3C Schema来校验XML文档(WXS)

      XMLSchema 是XML文档的另外一种文法描述。XMLSchema非常流行市因为它和XML文档使用同样的语法并且提供了丰富的定义校验限制的特性。如果一个XML文档用"schemaLocation" 和"noNamespaceSchemaLocation"指向了一个schema,结下来你想启用根据XMLSchema校验文档这个特性,你还要做如下的步骤:

1.和上面说的一样,调用SAXParserFactory o或DocumentBuilderFactory的setValidating函数来启用validation这个特性。
2.把属性 "http://java.sun.com/xml/jaxp/properties/schemaLanguage" 值设为 "http://www.w3.org/2001/XMLSchema"

       注意,这种情况下,即使XML文档有DOCTYPE声明,处理器仍不会用DTD来校验这个文档。但是和前面提到的一样,为了任何一个entity reference是被正确扩展的,这个DTD还是会被装载的,

      既然"schemaLocation" 和"noNamespaceSchemaLocation"仅仅是提示,所以可以使用属性"http: //java.sun.com/xml/jaxp/properties/schemaSource"从外部提供schemas来覆盖这些提示。

8页,页码:[1] [2] [3] [4] [5] [6] [7] [8] 

上一篇:快速了解IDS和IPS的区别
下一篇:AS3.0概要–了解AS3.0的改变
作者:  来源:Matrix ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐