JavaTM 2 Platform
Standard Ed. 6

軟體套件 org.xml.sax

此套件提供了核心 SAX API。

請參見:
          描述

介面摘要
AttributeList 已過時。 此介面已經被 SAX2 Attributes 介面取代,後者包括名稱空間支持。
Attributes 關於 XML 屬性列表的介面。
ContentHandler 接收文檔邏輯內容的通知。
DocumentHandler 已過時。 此介面已經被 SAX2 ContentHandler 介面取代,後者包括名稱空間支持。
DTDHandler 接收基本的 DTD 相關的事件的通知。
EntityResolver 用於解析實體的基本介面。
ErrorHandler SAX 錯誤處理程序的基本介面。
Locator 用來將 SAX 事件與文檔位置關聯的介面。
Parser 已過時。 此介面已經被 SAX2 XMLReader 介面取代,後者包括名稱空間支持。
XMLFilter 用於 XML 過濾器的介面。
XMLReader 用於使用回調讀取 XML 文檔的介面。
 

類別摘要
HandlerBase 已過時。 此類別可可以與不推薦使用的 DocumentHandler 介面一起工作。
InputSource XML 實體的單一輸入源。
 

異常摘要
SAXException 封裝一般的 SAX 錯誤或警告。
SAXNotRecognizedException 用於未識別的標識符的 Exception 類別。
SAXNotSupportedException 用於不被支持的操作的 Exception 類別。
SAXParseException 封裝 XML 解析錯誤或警告。
 

軟體套件 org.xml.sax 的描述

此套件提供了核心 SAX API。不推薦某些 SAX1 API 支持將名稱空間感知性集成到新的應用程序設計當中和對現有的基礎結構的維護當中。

有關 SAX 的更多資訊,請參閱 http://www.saxproject.org

SAX2 標準功能標誌

SAX2 的基本特徵之一就是增加了可用來檢查和在可能的情況下修改解析器網要(特別是驗證之類別的網要)的功能標誌。由於這些功能用(絕對)URI 標識,所以任何人都可以定義此類別功能。當前定義的標準功能 URI 在標識符(如 validation)之前有前綴 http://xml.org/sax/features/。可使用 setFeature 打開或關閉這些功能。這些標準標識符包括:

功能 ID 存取 預設值 描述
外部一般實體 讀/寫 未指定 報告此解析器是否處理外部一般實體;如果驗證,則始終為 true。
外部參數實體 讀/寫 未指定 報告此解析器是否處理外部參數實體;如果驗證,則始終為 true。
獨立 (解析)只讀,(不解析) 不適用 只可以在解析期間,完成 startDocument() 回調後進行檢查;只讀。如果文檔在其 XML 宣告中指定 standalone="yes",則該值為 true,否則為 false。
詞法處理程序/參數實體 讀/寫 未指定 值 "true" 表示 LexicalHandler 將報告參數實體的開始和結束。
名稱空間 讀/寫 true 值 "true" 表示名稱空間 URI 和元素的無前綴本地名稱以及屬性名稱可用。
名稱空間前綴 讀/寫 false 值 "true" 表示 XML 限定名(帶有前綴)和屬性(包括 xmlns* 屬性)可用。
resolve-dtd-uris 讀/寫 true 值 "true" 表示在報告之前將絕對化(與其基 URI 有關)宣告中的系統 ID。(這是所有 SAX2 XML 解析器的預設行為。)值 "false" 表示不會絕對化這些 ID;解析器將從 Locator.getSystemId() 中提供基 URI。這適用於傳入的系統 ID
  • DTDHandler.notationDecl()
  • DTDHandler.unparsedEntityDecl()
  • DeclHandler.externalEntityDecl()
不適用於不用來報告宣告的 EntityResolver.resolveEntity(),也不適用於 LexicalHandler.startDTD(),後者已經提供了非絕對化的 URI。
字元串駐留 讀/寫 未指定 如果所有的 XML 名稱(針對元素、前綴、屬性、實體、表示法和本地名稱)以及名稱空間 URI 都通過使用 java.lang.String.intern 被駐留下來,則將具有值 "true"。這支持快速測試字元串常數是否相等/不等,而不是強制減慢對 String.equals() 的調用。
unicode 標準化檢查 讀/寫 false 控制解析器是否報告 Unicode 標準化錯誤,“XML 1.1 Recommendation”的 2.13 節和附錄 B 中描述了這一點。如果為 true,則使用 ErrorHandler.error() 回調報告 Unicode 標準化錯誤。此類別錯誤本身並不是嚴重的(儘管顯然其他與 Unicode 相關的錯誤可能是嚴重的錯誤)。
use-attributes2 只讀 不可用 如果 ContentHandler.startElement() 中的由此解析器傳遞的 Attributes 物件實作了 org.xml.sax.ext.Attributes2 介面,則返回 "true"。該介面公開其他的與 DTD 相關的資訊,例如屬性是否在源文本中指定而不是是預設的。
use-locator2 只讀 不可用 如果在 ContentHandler.setDocumentLocator() 中由此解析器傳遞的 Locator 物件實作了 org.xml.sax.ext.Locator2 介面,則返回 "true"。該介面公開其他的實體資訊,例如所用的字元編碼和 XML 版本。
use-entity-resolver2 讀/寫 true 如果為 setEntityResolver 提供實作 org.xml.sax.ext.EntityResolver2 介面的物件時,將使用這些這些新的方法,則返回 "true"。如果返回 "false" 則表示將不使用這些方法。
驗證 讀/寫 未指定 控制解析器是否報告所有的有效性錯誤;如果為 true,則將讀取所有的外部實體。
xmlns-uris 讀/寫 false 當設置 namespace-prefixes 功能時,控制解析器是否將名稱空間宣告屬性視為在 http://www.w3.org/2000/xmlns/ 名稱空間中。預設情況下,SAX2 遵守原始的 "Namespaces in XML" 推薦標準,該推薦標準明確規定此類別屬性不在任何名稱空間中。將此可選標記設置為 "true" 能使 SAX2 事件遵守該推薦標準以後的向後相容的版本,從而將這些屬性置於名稱空間中。
xml-1.1 只讀 不適用 如果解析器既支持 XML 1.1 又支持 XML 1.0,則返回 "true"。如果解析器僅支持 XML 1.0,則返回 "false"。

要求支持 名稱空間名稱空間前綴 屬性的預設值。對其他任何功能標誌的支持是完全可選的。

對於不是由 SAX2 指定的預設值,每個 XMLReader 推薦標準都指定了其預設值,或可以選擇不公開功能標誌。否則除非在此指定,推薦標準可以支持改變這些標準功能標誌的當前值(但在解析期間不可以)。

SAX2 標準處理程序和屬性 ID

對於被描述為物件的解析器介面特徵,將定義獨立名稱空間。此名稱空間中的物件仍是由 URI 標識的,並且在諸如 lexical-handlerdom-node 之類別的標識符之前,標準屬性 URI 具有前綴 http://xml.org/sax/properties/。可使用 setProperty() 管理這些屬性。這些標識符包括:

屬性 ID 描述
declaration-handler 用來查看大多數 DTD 宣告,但那些被視為詞法(“document element name is ...”)或者對所有 SAX 解析器 (DTDHandler) 是強制性的宣告除外。該物件必須實作 org.xml.sax.ext.DeclHandler
document-xml-version 只可以在解析期間、完成 startDocument() 回調後進行檢查;只讀。此屬性是一個字元串常數,它描述了文檔的實際 XML 版本,如 "1.0" 或 "1.1"。
dom-node 對於忽略其 parser.parse() 參數的 "DOM Walker" 樣式解析器,這可以用來指定通過該解析器遍歷的 DOM (子)階層樹。該物件必須實作 org.w3c.dom.Node 介面。
lexical-handler 用來查看某些應用程序基本的語法事件:註釋、CDATA 分隔符、選定的一般實體收錄和 DTD(以及文檔元素名稱的宣告)的開始與結尾。該物件必須實作 org.xml.sax.ext.LexicalHandler
xml-string 僅在解析器回調期間可讀,這公開負責當前事件的字元的 TBS 存儲塊。

所有這些標準屬性都是可選的;XMLReader 實作不必支持它們。


JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only