|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface DOMConfiguration
該 DOMConfiguration
介面表示文檔的配置,並維護一個可識別的參數表。使用該配置,能夠更改 Document.normalizeDocument()
行為,如將 CDATASection
節點替換為 Text
節點或指定在請求驗證 Document
時必須使用的網要型別。DOMConfiguration
物件也可用於 DOMParser
和 DOMSerializer
介面中的 [DOM Level 3 Load and Save]。
由 DOMConfiguration
物件使用的參數名稱可在整個 DOM Level 3 規範中定義。名稱不區分大小寫。要避免可能的衝突,根據慣例,應該使指向在 DOM 規範之外定義的參數的名稱唯一。因為參數要作為屬性公開,所以建議名稱遵循 5.16 節帶有字元 '-'(連字元號)的“[Unicode] 標識符”,但它不是由 DOM 實作強制執行的。要求 DOM Level 3 核心實作來識別在此規範中定義的所有參數。也可能要求某些參數值接受該實作的支持。若要知道一個值是否必須被支持,請參閱參數的定義。
註:參數類似於在 SAX2 [SAX] 中使用的功能和屬性。
下面是在 DOM 中定義的參數列表:
"canonical-form"
true
DocumentType
節點(如果有),或從每個元素移除多餘的名稱空間宣告。注意,這限於可以在 DOM 中表示的內容;需要特別指出的是,無法指定 DOM 中的屬性的順序。此外,將此參數設置為 true
還要設置下面列出的參數的狀態。以後對這些參數中某個的狀態的更改都會將“規範形式”轉換回 false
。設置為 false
的參數:"entities"、" normalize-characters"、"cdata-sections"。設置為 true
的參數:"namespaces"、"namespace-declarations"、"well-formed"、"element-content-whitespace"。其他參數只有在參數描述中顯式地指定時才更改。false
"cdata-sections"
true
CDATASection
節點。false
CDATASection
節點轉換為 Text
節點。然後將新的 Text
節點與任何相鄰 Text
節點合併起來。"check-character-normalization"
true
DOMError.type
(等於 "check-character-normalization-failure")的錯誤。 false
"comments"
true
Comment
節點。false
Comment
節點。"datatype-normalization"
true
true
。"validate" 為 false
時啟動此參數無效,且不發生網要規範化。
註:由於文檔包含 XML 1.0 處理的結果,所以此參數不會像在 [XML 1.0] 的 3.3.3 節中定義的那樣應用於屬性值規範化,而只用於除文檔型別定義 (DTD) 之外的網要語言。
false
"element-content-whitespace"
true
false
Text
節點,如在 [element content whitespace] 中描述的那樣。期望該實作使用屬性 Text.isElementContentWhitespace
來確定是否應該丟棄 Text
節點。"entities"
true
EntityReference
節點。false
EntityReference
節點,並直接將實體擴展放入適當位置。按 Node.normalize
中定義的那樣,標準化 Text
節點。文檔中只保留 未擴展的實體參考。 註:此參數不影響 Entity
節點。
"error-handler"
DOMErrorHandler
物件。如果在文檔中遇到錯誤,則該實作將回調使用此參數註冊的 DOMErrorHandler
。該實作可以提供預設的 DOMErrorHandler
物件。調用時,DOMError.relatedData
將包含離發生錯誤的位置最近的節點。如果該實作不能確定發生錯誤的節點,則 DOMError.relatedData
將包含 Document
節點。從錯誤處理程序內部對文檔的修改將導致與實作有關的行為。 "infoset"
true
false
:"validate-if-schema"、"entities"、"datatype-normalization"、"cdata-sections"。這迫使以下參數為 true
:"namespace-declarations"、"well-formed"、"element-content-whitespace"、" comments"、"namespaces"。其他參數只有在參數的描述中顯式指定時才能更改。注意,只有在適當設置以上指定的單個參數時,使用 getParameter
查詢此參數才能返回 true
。false
infoset
設置為 false
無效。"namespaces"
true
false
"namespace-declarations"
false
,則此參數無效。
true
false
Node.prefix
),即使此參數設置為 false
。"normalize-characters"
true
false
"schema-location"
DOMString
物件,由空格分隔(與在 [XML 1.0] 第 2.3 節定義的 nonterminal production S 比對的字元),它表示對其進行驗證的網要,即當前網要。此列表中參考的網要型別必須比對用 schema-type
指定的型別,否則實作的行為不確定。使用此屬性指定的網要優先於在文檔本身中指定的網要資訊。對於名稱空間感知的網要而言,如果使用此屬性指定的網要和網要文檔(例如使用 schemaLocation
屬性)中在文檔實例中(例如使用網要 import
機制)指定的網要共享同一 targetNamespace
,則將使用由使用者使用此屬性指定的網要。如果使用此屬性指定的兩個網要共享同一 targetNamespace
,或不存在名稱空間,則該行為與實作有關。如果未提供任何位置,則此參數為 null
。
註:忽略 "schema-location"
參數,除非設置了 "schema-type" 參數值。強烈建議設置 Document.documentURI
,以便實作可以成功解析所參考的所有外部實體。
"schema-type"
DOMString
物件,該物件包含絕對 URI 且表示用於對其驗證文檔的網要語言型別。注意,不對絕對 URI 進行詞彙檢查。如果未設置此參數,則該實作可以根據支持的網要語言和載入時使用的網要語言提供預設值。如果未提供任何值,則此參數為 null
。
註:對於 XML 網要 [XML Schema Part 1],應用程序必須使用值 "http://www.w3.org/2001/XMLSchema"
。對於 XML DTD [XML 1.0],應用程序必須使用值 "http://www.w3.org/TR/REC-xml"
。其他網要語言在 W3C 的作用域之外,因此為了使用此方法應該建議絕對 URI。
"split-cdata-sections"
true
DOMError.type
等於 "cdata-sections-splitted"
,DOMError.relatedData
等於從該拆分得到的文檔順序的第一個 CDATASection
節點。false
CDATASection
套件含不可表示的字元時發出錯誤通知。"validate"
true
true
。此參數將重新評詁:
Attr.specified
等於 false
的屬性節點,如在 Attr
介面的描述中指定的那樣;
Text
節點的屬性 Text.isElementContentWhitespace
的值;
Attr
節點的屬性 Attr.isId
的值;
Element.schemaTypeInfo
和 Attr.schemaTypeInfo
。
註:"validate-if-schema" 和 "validate" 互斥,將其中一個設置為 true
就要將另一個設置為 false
。應用程序還應該考慮將參數 "well-formed" 設置為 true
,這是驗證該文檔時該選項的預設值。
false
true
,則仍可能進行驗證。 "validate-if-schema"
true
true
的參數 "validate" 的行為相同。
註:"validate-if-schema" 和 "validate" 互斥,將其中一個設置為 true
就要將另一個設置為 false
。
false
true
,則仍必須進行驗證。 "well-formed"
true
Document.xmlVersion
中使用的 XML 版本檢查所有節點是否是良好格式的 XML:
Node.nodeName
是否包含無效字元;是否產生型別 "wf-invalid-character-in-node-name"
的 DOMError
(必要時帶有 DOMError.SEVERITY_ERROR
severity);
Attr
、Element
、Comment
、Text
、CDATASection
節點內的文本內容是否包含無效字元,是否產生型別 "wf-invalid-character"
的 DOMError
(必要時帶有 DOMError.SEVERITY_ERROR
severity);
ProcessingInstruction
節點內的資料是否包含無效字元,是否產生型別 "wf-invalid-character"
的 DOMError
(必要時帶有 DOMError.SEVERITY_ERROR
severity);
false
使用 Document.documentURI
解析與實體相關的系統標識符。但是,當 DOM 實作支持在 [DOM Level 3 Load and Save] 中定義的功能 "LS" 時,參數 "resource-resolver" 還可以在連接到 Document
節點的 DOMConfiguration
上使用。如果已設置了此參數,則 Document.normalizeDocument()
將調用資源解析程序,而不是使用 Document.documentURI
。
另請參見 Document Object Model (DOM) Level 3 Core Specification。
方法摘要 | |
---|---|
boolean |
canSetParameter(String name,
Object value)
檢查是否支持將參數設置為特定值。 |
Object |
getParameter(String name)
如果已知,則返回參數的值。 |
DOMStringList |
getParameterNames()
此 DOMConfiguration 物件支持的參數列表,並且應用程序至少可以為其設置一個值。 |
void |
setParameter(String name,
Object value)
設置參數的值。 |
方法詳細資訊 |
---|
void setParameter(String name, Object value) throws DOMException
name
- 要設置的參數的名稱。value
- 新的值,如果使用者希望取消設置該參數則為 null
。當將值參數的型別定義為 DOMUserData
時,物件型別必須比對由參數的定義所定義的型別。例如,如果參數為 "error-handler",則該值必須是 DOMErrorHandler
型別。
DOMException
- NOT_FOUND_ERR: 參數名稱不可識別時,引發此異常。Object getParameter(String name) throws DOMException
name
- 參數的名稱。
null
。
DOMException
- NOT_FOUND_ERR:參數名稱不可識別時,引發此異常。boolean canSetParameter(String name, Object value)
name
- 要檢查的參數的名稱。value
- 一個物件。如果為 null
,則返回的值為 true
。
true
;如果參數不可識別或請求的值不受支持,則返回 false
。這樣不會更改參數本身的當前值。DOMStringList getParameterNames()
DOMConfiguration
物件支持的參數列表,並且應用程序至少可以為其設置一個值。注意,此列表還可以包含在此規範之外定義的參數名稱。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。