跳轉至內容

XSLTForms/Javascript

來自華夏公益教科書

警告!! 此文件是根據 Javascript 原始碼中嵌入的註釋自動生成的。


XSLTForms Javascript 部分在瀏覽器執行由 XSLT 轉換之後啟用。 "init()" 函式由 XSLT 轉換根據 XForms 文件建立,並以 "xforms.init()" 作為最後一個函式呼叫,由 "body" 元素關聯的 "onload" 事件呼叫。許多 Javascript 物件和函式可以由開發人員直接呼叫以滿足特定目的,考慮到誤用可能會影響 XSLTForms 的全域性行為。

主要函式和物件

[編輯 | 編輯原始碼]

"$" 函式

[編輯 | 編輯原始碼]

document.getElementById() 的快捷方式

如果我們還想包含 JQuery 函式,這將如何工作?應該使用不同的函式嗎?

"Core" 類

[編輯 | 編輯原始碼]

用於瀏覽器相容性的核心類

  • isOperaisIEisMozilla 方法:返回瀏覽器家族
  • hasClass 方法:測試元素是否具有 CSS 類
  • loadProperties 方法:AJAX 方法,用於獲取 I18N 屬性
  • constructURI 方法:根據當前位置構造 URI
  • createElement 方法:建立 DOM 元素,並可選地新增類、將其附加到其父元素並用文字內容填充它
  • getWindowSize 方法:獲取各種瀏覽器的視窗大小
  • openRequest 方法:開啟 XMLHttpRequest

"DebugConsole" 類

[編輯 | 編輯原始碼]

除錯控制檯管理

  • write 方法:向除錯控制檯新增文字
  • clear 方法:清除除錯控制檯

"Dialog" 類

[編輯 | 編輯原始碼]

對話方塊面板管理

  • show 方法:顯示對話方塊面板
  • hide 方法:隱藏對話方塊面板
  • knownSelect 方法:確定對話方塊管理是否已知選擇控制元件(IE6 解決方案)
  • showSelects 方法:顯示/隱藏對話方塊面板下的選擇控制元件(IE6 解決方案)

"Event" 類

[編輯 | 編輯原始碼]

事件管理

"I8N" 類

[編輯 | 編輯原始碼]

國際化管理

  • get 方法:獲取當前語言的屬性值
  • parse 方法:根據模式和當前語言解析資料
  • format 方法:根據模式和當前語言格式化資料
  • parseDate 方法:用於解析日期的直接方法
  • formatDate 方法:用於格式化日期的直接方法
  • formatNumber 方法:用於格式化數字的直接方法
  • parseNumber 方法:用於解析數字的直接方法

其他函式

[編輯 | 編輯原始碼]
  • forEach 函式:用相同引數向物件集合呼叫相同方法的便捷方式
  • assert 函式:條件除錯控制檯訊息新增
  • inArray 函式:測試陣列中是否存在值
  • zeros 函式:左或右零填充
  • getValue 函式:獲取節點值
  • setValue 函式:設定節點的值
  • run 函式:執行操作(由生成的 Javascript 指令呼叫)
  • getId 函式:獲取事件所涉及的 xf 元素的 ID(FF2 相容性問題)
  • show 函式:顯示/隱藏元素(由生成的 Javascript 指令呼叫,通常用於提示或輸入錯誤)
  • trim 方法:String 類的左右修剪方法
  • copyArray 函式:將源陣列中的每個元素複製到目標陣列

"xforms" 類

[編輯 | 編輯原始碼]

XForms 管理的全域性類

  • init 方法:從生成的 init() 函式呼叫,該函式在 onload 事件中呼叫
  • close 方法:執行所有關閉操作
  • openAction 方法:簡單地清除除錯控制檯
  • closeAction 方法:在所有操作完成後呼叫 closeChanges() 方法
  • closeChanges 方法:重建或重新計算更改後的內容
  • error 方法:XForms 錯誤管理
  • refresh 方法:XForms 重新整理管理
  • build 方法:XForms 構建管理
  • addChange 方法:構建受更改影響的元素堆疊
  • dispose 方法:處置元素
  • blur 方法:焦點移出管理

"Binding" 類

[編輯 | 編輯原始碼]

XForms 繫結管理

  • 建構函式:解析 "xpath"、"model" 和 "bind" 屬性
  • evaluate 方法:評估繫結

"IdManager" 類

[編輯 | 編輯原始碼]

重複結構的 ID 管理器

XForms 模型管理

[編輯 | 編輯原始碼]

每個模型元件都儲存為由 XSLT 轉換建立的 Javascript 物件。XFCoreElement 是所有其他類的父類。

"XFCoreElement" 類

[編輯 | 編輯原始碼]

每個模型元件類的父類

  • init 方法:在 "head" 元素下建立一個 "span" 元素來儲存此物件
  • dispose 方法:清除此物件的屬性

"XFModel" 類

[編輯 | 編輯原始碼]
  • 建構函式:專門獲取關聯的模式
  • addInstance 方法:向此模型新增例項
  • addBind 方法:向此模型新增繫結
  • dispose 方法:清除此物件的屬性
  • getInstance 方法:透過其 ID 獲取此模型的例項
  • getInstanceDocument 方法:透過例項 ID 獲取此模型例項的文件
  • findInstance 方法:在此模型中查詢節點對應的例項
  • construct 方法:構造步驟轉發到例項,並分派相應的 XForms 事件
  • reset 方法:重置操作轉發到例項,並將此模型標記為已重建
  • rebuild 方法:重新整理操作轉發到例項,並分派 "xforms-recalculate" 事件
  • recalculate 方法:重新計算操作轉發到例項,並分派 "xforms-revalidate" 事件
  • revalidate 方法:重新驗證操作轉發到例項,並分派 "xforms-refresh" 事件
  • refresh 方法:無操作
  • addChange 方法:根據當前步驟將此模型堆疊為已更改
  • setRebuilded 方法:根據當前步驟儲存已重建狀態

"XFInstance" 類

[編輯 | 編輯原始碼]

例項類

  • 建構函式:儲存此例項的屬性,並將其附加到模型
  • dispose 方法:清除屬性並回收關聯的節點
  • construct 方法:在本地或遠端載入此例項的原始碼
  • reset 方法:簡單地恢復此例項的初始副本
  • store 方法:克隆此例項的文件
  • setDoc 方法:為此例項設定文件
  • revalidate 方法:根據只讀和相關屬性遞迴地重新驗證此例項的每個節點

"XFBind" 類

[編輯 | 編輯原始碼]

模型繫結類

  • 建構函式:解析所有屬性,並將此物件附加到模型
  • refresh 方法:完全評估並重新整理此繫結
  • recalculate 方法:僅重新計算此繫結

"XFSubmission" 類

[編輯 | 編輯原始碼]

提交類

  • 建構函式:儲存此提交的屬性,並將其附加到模型
  • submit 方法:根據所選方法提交序列化資料
  • toUrl_ 方法:遞迴地收集節點值以將其新增到 URL

"XFProcessor" 類

[編輯 | 編輯原始碼]

內部 XForms 處理器類

  • error 函式:顯示錯誤

XForms 操作管理

[編輯 | 編輯原始碼]

每個操作都儲存為由 XSLT 轉換建立的 Javascript 物件。XFAbstractAction 是所有操作類的父類。

"XFAbstractAction" 類

[編輯 | 編輯原始碼]

每個操作類的父類

  • init 方法:"if" 和 "while" 屬性在此類中定義
  • execute 方法:"while" 屬性處理呼叫 "if" 屬性處理
  • exec_ 方法:"if" 屬性處理呼叫特定的 "run" 方法
  • run 方法:空方法,將在每個子類中定義

"XFAction" 類

[編輯 | 編輯原始碼]

操作類

  • 建構函式:專門在沒有子節點的情況下初始化
  • add 方法:向此操作新增子操作
  • run 方法:執行此操作的每個子操作

"XFDelete" 類

[編輯 | 編輯原始碼]

刪除操作類

  • 建構函式:解析此刪除操作的屬性
  • run 方法:執行此刪除操作,並分派 "xforms-delete"

"XFDispatch" 類

[編輯 | 編輯原始碼]

分派操作類

  • 建構函式:儲存特定屬性
  • run 方法:分派 XForms 事件

"XFInsert" 類

[編輯 | 編輯原始碼]

插入操作類

  • 建構函式:解析特定屬性
  • run 方法:克隆然後插入新元素,並分派 "xforms-insert"

"XFLoad" 類

[編輯 | 編輯原始碼]

載入操作類

  • 建構函式:儲存特定屬性
  • run 方法:根據 "show" 屬性開啟新視窗或更改當前位置

"XFMessage" 類

[編輯 | 編輯原始碼]

訊息操作類

  • 建構函式:儲存特定屬性
  • run 方法:顯示包含節點值的警報訊息框

"XFSetindex" 類

[編輯 | 編輯原始碼]

SetIndex 操作類

  • 建構函式:解析特定屬性
  • run 方法: 設定重複結構的當前索引

"XFSetvalue" 類

[編輯 | 編輯原始碼]

SetValue 操作類

  • 建構函式:解析特定屬性
  • run 方法: 設定節點的值並在更改集合中記錄它

"XFToggle" 類

[編輯 | 編輯原始碼]

Toggle 操作類

  • 建構函式: 儲存特定屬性
  • run 方法: 切換關聯元素
  • toggle 方法: 根據元素的 ID 切換元素並分發 "xforms-deselect" 事件

XForms 控制元件管理

[編輯 | 編輯原始碼]

每個控制元件都儲存為一個由 XSLT 轉換建立的 Javascript 物件,該物件以對應 (X)HTML 元素的 ID 作為屬性。XFElement 是所有操作類的父類,XFControl 類作為中間類,適用於大多數操作類。

"XFAVT" 類

[編輯 | 編輯原始碼]

AVT 控制元件類

  • 建構函式: 初始化特定屬性並初始化焦點和模糊事件管理
  • clone 方法: 使用給定 ID 建立一個新的輸出控制元件
  • dispose 方法: 清理此控制元件的屬性並呼叫父 dispose() 方法
  • setValue 方法: 設定此 AVT 控制元件的值

"XFElement" 類

[編輯 | 編輯原始碼]

元素類

  • 建構函式: 空
  • init 方法: 初始化屬性
  • dispose 方法: 清理此元素的屬性
  • build 方法: 抽象地根據依賴項構建此元素

"XFControl" 類

[編輯 | 編輯原始碼]

控制元件類

  • 建構函式: 將此元素設定為控制元件
  • initFocus 方法: 為 "focus" 和 "blur" 附加事件處理程式
  • dispose 方法: 呼叫父 "dispose()" 方法
  • focus 方法: 管理焦點並分發 "DOMFocusIn" 事件
  • build_ 方法: 更新依賴項的特定構建方法
  • refresh 方法: 根據對應節點的值重新整理此控制元件並分發相應事件
  • changeProp 方法: 更改此控制元件的屬性,例如 requiredrelevantreadonlyvalid
  • valueChanged 方法: 更改此控制元件的值並分發 "xforms-recalculate" 事件
  • getXFElement 函式: 獲取元素的祖先或自身 XFElement 值
  • focusHandler 函式: 焦點處理程式
  • blurHandler 函式: 包含延遲的模糊處理程式

"XFGroup" 類

[編輯 | 編輯原始碼]

組元素類

  • 建構函式: 設定特定屬性
  • clone 方法: 使用給定 ID 建立一個新的組
  • build_ 方法: 特定構建方法
  • refresh 方法: 設定 "xforms-disabled" CSS 類

"XFInput" 類

[編輯 | 編輯原始碼]

輸入控制元件類

  • 建構函式: 初始化特定屬性,包括輔助按鈕管理
  • clone 方法: 使用給定 ID 建立一個新的輸入
  • dispose 方法: 清理此元素的屬性並呼叫父 dispose() 方法
  • initInput 方法: 根據型別 (password/textarea/boolean/date/datetime) 初始化輸入控制元件
  • setValue 方法: 根據型別設定此輸入控制元件的值
  • changeReadonly 方法: 更改此輸入控制元件的只讀狀態
  • initEvents 方法: 根據增量功能初始化事件管理
  • blur 方法: 不處於增量模式時管理模糊事件
  • click 方法: 根據輸入控制元件型別管理點選事件
  • keyUpInputMode 函式: 按鍵向上後更新此輸入控制元件的值
  • keyUpActivate 函式: 檢查是否按下了 Enter 鍵以分發 DOMActivate
  • keyUpIncrementalActivate 函式: 檢查是否按下了 Enter 鍵以在增量模式下分發 DOMActivate
  • keyUpIncremental 函式: 在增量模式下按鍵向上後更新此輸入控制元件的值
  • InputMode 函式集: 每個可能的輸入模式 (lowerCase/upperCase/titleCase/digits) 的特定檢查函式

"XFItem" 類

[編輯 | 編輯原始碼]

專案控制元件類

  • 建構函式: 初始化特定屬性並初始化焦點和模糊事件管理
  • clone 方法: 使用給定 ID 建立一個新的專案控制元件
  • dispose 方法: 清理此元素的屬性並呼叫父 dispose() 方法
  • build_ 方法: 根據標籤和值繫結建立特定構建方法
  • refresh 方法: 根據是否有選項作為渲染來重新整理此專案控制元件的標籤和值
  • click 方法: 根據專案控制元件型別管理點選事件

"XFItemset" 類

[編輯 | 編輯原始碼]

ItemSet 控制元件類

  • 建構函式: 初始化特定屬性
  • build_ 方法: 使用相應的克隆建立特定構建方法
  • refresh 方法: 設定 "xforms-disabled" CSS 類
  • clone 方法: 使用給定 ID 建立一個新的 itemset 控制元件
  • refresh_ 方法: 在給定位置重新整理此 ItemSet 控制元件

"XFLabel" 類

[編輯 | 編輯原始碼]

標籤元素類

  • 建構函式: 初始化特定屬性
  • clone 方法: 使用給定 ID 建立一個新的標籤元素
  • build_ 方法: 特定構建方法
  • refresh 方法: 重新整理此標籤元素

"XFOutput" 類

[編輯 | 編輯原始碼]

輸出控制元件類

  • 建構函式: 初始化特定屬性並初始化焦點和模糊事件管理
  • clone 方法: 使用給定 ID 建立一個新的輸出控制元件
  • dispose 方法: 清理此控制元件的屬性並呼叫父 dispose() 方法
  • setValue 方法: 設定此輸出控制元件的值
  • getValue 方法: 設定此輸出控制元件的值

"XFRepeat" 類

[編輯 | 編輯原始碼]

重複元素類

  • 建構函式: 設定特定屬性
  • dispose 方法: 清理此元素的屬性並呼叫父 dispose() 方法
  • setIndex 方法: 設定此重複元素的當前索引
  • deleteNode 方法: 刪除此重複元素中的給定節點,並確保當前索引仍然有效
  • insertNode 方法: 在此重複元素中的另一個給定節點之後插入給定節點,並更新當前索引
  • build_ 方法: 重新建立此重複控制元件中的所有節點並將當前索引設定為 1
  • refresh 方法: 重新整理此重複元素,如果它不是 ItemSet,則重新整理子元素
  • clone 方法: 使用給定 ID 建立一個新的重複元素
  • initClone 函式: 初始化給定 ID 的克隆
  • selectItem 函式: 將當前索引設定為重複元素中給定元素的索引

"XFSelect" 類

[編輯 | 編輯原始碼]

Select/Select1 控制元件類

  • 建構函式 : 初始化特定屬性並初始化焦點和更改事件管理
  • clone 方法 : 使用給定 ID 建立一個新的 select/select1 控制元件
  • dispose 方法 : 清除此 select/select1 控制元件的屬性並呼叫父 dispose() 方法
  • focusFirst 方法 : 將焦點設定到此 select/select1 控制元件中的第一個專案
  • setValue 方法 : 搜尋給定值,如果找到則檢查它,否則分派 "xforms-in-range" 事件
  • changeReadonly 方法 : 更改此 select/select1 控制元件的只讀狀態
  • itemClick 方法 : 分派 "xforms-select" 和 "xforms-deselect" 事件
  • blur 方法 : 模糊事件管理
  • normalChange 函式 : 更改時以正常模式處理程式分派 "xforms-select" 和 "xforms-deselect" 事件
  • incrementalChange 函式 : 更改時以增量模式處理程式呼叫正常模式處理程式
  • getSelected 方法 : 收集此 select/select1 控制元件的已選選項

"XFTrigger" 類

[編輯 | 編輯原始碼]

觸發器控制元件類

  • 建構函式 : 初始化特定屬性並初始化焦點事件管理
  • setValue 方法 : 空
  • clone 方法 : 使用給定 ID 建立一個新的觸發器控制元件
  • click 方法 : 分派 "DOMActivate" 事件
  • blur 方法 : 空

"Calendar" 類

[編輯 | 編輯原始碼]

用於日期/日期時間控制元件的日曆類

  • 建構函式 : 動態建立一個表格元素
  • today 方法 : 將此日曆物件的 value 屬性設定為當前日期
  • refreshControls 方法 : 根據給定日期重新整理此日曆物件
  • refresh 方法 : 重新整理此日曆物件
  • getFirstDay 方法 : 獲取所選月份的第一天
  • getDaysOfMonth 方法 : 獲取所選月份的天數
  • createElement 方法 : 在此日曆物件中建立一個新的可點選日期
  • show 函式 : 為給定輸入顯示給定型別的日曆物件
  • close 函式 : 隱藏當前日曆物件

XML 模式管理

[編輯 | 編輯原始碼]

每個模式都儲存為由 XSLT 轉換建立的 Javascript 物件。Type 是 *Type 類的父類。

"Type" 類

[編輯 | 編輯原始碼]

Type 抽象類

  • 建構函式: 空
  • setSchema 方法 : 將模式與此 Type 物件關聯
  • setName 方法 : 將名稱與此 Type 物件關聯,並相應更新模式
  • canonicalValue 方法 : 根據空白管理(替換、摺疊)計算規範值
  • getMaxLength 方法 : 獲取此 Type 物件的最大長度或 null
  • getDisplayLength 方法 : 獲取此 Type 物件的顯示長度或未定義最大長度

"Schema" 類

[編輯 | 編輯原始碼]

Schema 類

  • 建構函式 : 在檢查它尚不存在後建立一個 Schema 物件
  • all 關聯陣列 : 根據其各自的名稱空間儲存所有模式
  • getType 方法 : 獲取此模式的給定名稱的型別
  • getType 函式 : 獲取給定字首:名稱的型別
  • getTypeNS 函式 : 獲取給定名稱空間和給定名稱的型別
  • get 函式 : 獲取給定名稱空間的模式
  • prefixes 關聯陣列 : 初始化預設字首和名稱空間
  • registerPrefix 函式 : 將字首和相應的名稱空間新增到 "prefixes" 關聯陣列

"AtomicType" 類

[編輯 | 編輯原始碼]

AtomicType 類

  • 建構函式 : 初始化 patterns 屬性
  • setBase 方法 : 將基本模式複製到此 AtomicType 物件
  • put 方法 : 設定基本模式,複製模式或僅新增屬性
  • validate 方法 : 根據此 AtomicType 物件驗證值
  • normalize 方法 : 根據此 AtomicType 物件規範化值的位數

"ListType" 類

[編輯 | 編輯原始碼]

ListType 類

  • 建構函式 : 空白管理為 "collapse"
  • setItemType 方法 : 為此 ListType 物件中的每個專案關聯 Type 物件
  • validate 方法 : 根據此 ListType 物件驗證值
  • canonicalValue 方法 : 計算列表值的規範值

"ListType" 類

[編輯 | 編輯原始碼]

ListType 類

  • 建構函式 : 初始化 base types 屬性
  • addType 方法 : 向此 UnionType 物件新增 Type 物件
  • validate 方法 : 驗證值是否至少與此 UnionType 物件的一個基本型別匹配

"TypeDefs" 類

[編輯 | 編輯原始碼]

預設型別定義初始化類

  • initAll 方法 : 初始化 XML 模式和 XForms 的預設型別定義
  • init 方法 : 初始化給定名稱空間的預設型別定義
  • Default 關聯陣列 : XML 模式的每個預設型別定義
    • base : 基本型別的名稱
    • whitespace : 空白行為
    • patterns : 正則表示式陣列
    • class : 關聯類
    • displayLength : 數字
    • fractionDigits : 數字
    • totalDigits : 數字
    • minInclusive : 數字
    • maxInclusive : 數字
    • minExclusive : 數字
    • maxExclusive : 數字
    • format : 格式化函式
    • parse : 解析函式
  • 預定義型別 
    • xsd:string
    • xsd:boolean
    • xsd:decimal
    • xsd:float
    • xsd:double
    • xsd:dateTime
    • xsd:date
    • xsd:time
    • xsd:duration
    • xsd:gDay
    • xsd:gMonth
    • xsd:gMonthDay
    • xsd:gYear
    • xsd:gYearMonth
    • xsd:integer
    • xsd:nonPositiveInteger
    • xsd:nonNegativeInteger
    • xsd:negativeInteger
    • xsd:positiveInteger
    • xsd:byte
    • xsd:short
    • xsd:int
    • xsd:long
    • xsd:unsignedByte
    • xsd:unsignedShort
    • xsd:unsignedInt
    • xsd:unsignedLong
    • xsd:normalizedString
    • xsd:token
    • xsd:language
    • xsd:anyURI
    • xsd:Name
    • xsd:NCName
    • xsd:QName
    • xsd:ID
    • xsd:IDREF
    • xsd:IDREFS
    • xsd:NMTOKEN
    • xsd:NMTOKENS
    • xsd:base64Binary
    • xsd:hexBinary
  • XForms 關聯陣列 : XForms 型別的每個預設型別定義
    • xforms:string
    • xforms:boolean
    • xforms:decimal
    • xforms:float
    • xforms:double
    • xforms:dateTime
    • xforms:date
    • xforms:time
    • xforms:duration
    • xforms:dayTimeDuration
    • xforms:yearMonthDuration
    • xforms:gDay
    • xforms:gMonth
    • xforms:gMonthDay
    • xforms:gYear
    • xforms:gYearMonth
    • xforms:integer
    • xforms:nonPositiveInteger
    • xforms:nonNegativeInteger
    • xforms:negativeInteger
    • xforms:positiveInteger
    • xforms:byte
    • xforms:short
    • xforms:int
    • xforms:long
    • xforms:unsignedByte
    • xforms:unsignedShort
    • xforms:unsignedInt
    • xforms:unsignedLong
    • xforms:normalizedString
    • xforms:token
    • xforms:language
    • xforms:anyURI
    • xforms:Name
    • xforms:NCName
    • xforms:QName
    • xforms:ID"
    • xforms:IDREF
    • xforms:IDREFS
    • xforms:NMTOKEN
    • xforms:NMTOKENS
    • xforms:base64Binary
    • xforms:hexBinary
    • xforms:email
    • xforms:card-number
    • xforms:url
    • xforms:amount
  • XSLTForms 關聯陣列 : XSLTForms 型別的每個預設型別定義
    • xsltforms:decimal
    • xsltforms:float
    • xsltforms:double
    • xsltforms:integer
    • xsltforms:nonPositiveInteger
    • xsltforms:nonNegativeInteger
    • xsltforms:negativeInteger
    • xsltforms:positiveInteger
    • xsltforms:byte
    • xsltforms:short
    • xsltforms:int
    • xsltforms:long
    • xsltforms:unsignedByte
    • xsltforms:unsignedShort
    • xsltforms:unsignedInt
    • xsltforms:unsignedLong

XForms 事件管理

[編輯 | 編輯原始碼]

"Listener" 類

[編輯 | 編輯原始碼]

監聽器類

  • 建構函式 : 為觀察者元素建立一個監聽器物件並附加標準回撥函式
  • attach 方法 : 根據當前階段附加事件
  • detach 方法 : 根據當前階段分離事件
  • clone 方法 : 為給定元素建立一個新的監聽器

"XMLEvents" 類

[編輯 | 編輯原始碼]

XForms 事件管理類

  • REGISTRY 關聯陣列 : 儲存每個事件的屬性
    • bubbles : 布林值
    • cancelable : 布林值
    • defaultAction : 處理程式函式,預設情況下為空函式
  • define 函式 : 方便的函式,用於在事件登錄檔中新增新事件
  • dispatchList 函式 : 在給定列表中的每個目標處排程相同的事件
  • dispatch 函式 : 在給定目標處排程給定事件,可能具有不同的屬性
  • 預設事件管理 
    • xforms-model-construct : 在xforms-ready 事件觸發之前,在 xforms.init() 函式結束時觸發
      • bubbles : 是
      • cancelable : 否
      • 預設處理程式 : construct() 方法
    • xforms-model-construct-done : 在xforms-rebuild 事件觸發之後,在 XFModel.construct() 方法結束時觸發
      • bubbles : 是
      • cancelable : 否
      • 預設處理程式 : 空
    • xforms-ready' : 在xforms-model-construct 事件觸發之後,在 xforms.init() 函式結束時觸發
      • bubbles : 是
      • cancelable : 否
      • 預設處理程式 : 空
    • xforms-model-destruct : 在 xforms.close() 函式中,對每個模型觸發
      • bubbles : 是
      • cancelable : 否
      • 預設處理程式 : 空
    • xforms-rebuild : 在 xforms.closeChanges() 函式中,當需要重建時觸發,

在 XFModel.construct() 方法中,在xforms-model-construct-done 事件觸發之前觸發,以及在 XFSubmission.submit() 方法中,當相應的例項剛剛被替換時觸發

      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : rebuild() 方法
    • xforms-recalculate : 在 xforms.closeChanges() 函式中,當不需要重建時觸發,

在 XFModel.rebuild() 方法結束時觸發,以及在 XFControl.valueChanged() 方法中,當新值不同時觸發

      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : recalculate() 方法
    • xforms-revalidate : 在 XFModel.recalculate() 方法結束時觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : revalidate() 方法
    • xforms-reset : 由 XSL 轉換針對 xforms:reset 元素生成的監聽器觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : reset() 方法
    • xforms-submit : 由 XSL 轉換針對 xforms:submit 元素生成的監聽器觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : submit() 方法
    • xforms-refresh : 在 XFModel.revalidate() 方法結束時觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : refresh() 方法
    • xforms-focus : 由 XSL 轉換針對 xforms:setfocus 操作生成的監聽器觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : focus() 方法
    • DOMActivate : 由 XFTrigger.click() 方法觸發,以及由 XSL 轉換針對 xforms:submit 元素生成的監聽器觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • DOMFocusIn : 由 XFControl.focus() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • DOMFocusOut : 由 xforms.blur() 函式觸發,用於已經獲得焦點的元素
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-select : 由 XFToggle.toggle()、XFSelect.normalChange() 函式和 XFSelect.itemClick() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-deselect : 由 XFToggle.toggle()、XFSelect.normalChange() 函式和 XFSelect.itemClick() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-value-changed : 由 XFControl.refresh() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-insert : 由 XFInsert.run() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-delete : 由 XFDelete.run() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-valid : 由 XFControl.refresh() 方法透過 XFControl.changeProp() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-invalid : 由 XFControl.refresh() 方法透過 XFControl.changeProp() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-enabled : 由 XFControl.refresh() 方法透過 XFControl.changeProp() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-disabled : 由 XFControl.refresh() 方法透過 XFControl.changeProp() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-optional : 由 XFControl.refresh() 方法透過 XFControl.changeProp() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-required : 由 XFControl.refresh() 方法透過 XFControl.changeProp() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-readonly : 由 XFControl.refresh() 方法透過 XFControl.changeProp() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-readwrite : 由 XFControl.refresh() 方法透過 XFControl.changeProp() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-in-range : 由 XFSelect.setValue() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-out-of-range : 由 XFSelect.setValue() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-submit-done : 由 XFSubmission.submit() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-submit-error : 由 XFSubmission.submit() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-compute-exception : 未使用
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-binding-exception : 由 XFBind.refresh() 方法觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 空
    • xforms-dialog-open : 由 XSL 轉換針對 xforms:show 操作生成的監聽器觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 對應對話方塊的 show() 方法
    • xforms-dialog-close : 由 XSL 轉換針對 xforms:hide 操作生成的監聽器觸發
      • bubbles : 是
      • cancelable : 是
      • 預設處理程式 : 對應對話方塊的 hide() 方法

XPath 表示式管理

[編輯 | 編輯原始碼]

XPath 表示式由 XSLT 轉換“編譯”(轉換為 Javascript 物件建立指令)。對於每個不同的(根據其文字源)表示式,都有一個“XPath”物件。通常對每個引數執行隱式強制轉換。

XPathAxis 類

[編輯 | 編輯原始碼]

用於軸的 XML 常量類,作為關聯陣列

NodeType 類

[編輯 | 編輯原始碼]

用於節點型別的 XML 常量類,作為關聯陣列

XNode 類

[編輯 | 編輯原始碼]

XNode 類

  • 建構函式: 初始化特定屬性
  • getElementsByTagName 方法 : 獲取此 XNode 物件的所有具有給定標籤名的元素的陣列
  • getTextContent 方法 : 獲取此 XNode 物件的文字上下文
  • appendChild 方法 : 在此 XNode 物件中附加新的子節點
  • replaceChild 方法 : 替換此 XNode 物件的子節點
  • insertBefore 方法 : 在此 XNode 物件的另一個子節點之前插入子節點
  • removeChild 方法 : 刪除此 XNode 物件的子節點
  • setAttributeNS 方法 : 設定此 XNode 物件的屬性,如果需要,則建立該屬性。 “xsd:type”被解釋為將相應的型別與該 XNode 物件關聯。
  • getAttributeNS 方法 : 獲取此 XNode 物件的屬性的值
  • removeAttributeNS 方法 : 刪除此 XNode 物件的屬性
  • cloneNode 方法 : 克隆此 XNode 物件
  • init 函式 : 設定此 XNode 物件的屬性
  • recycle 函式 : 清除此 XNode 物件及其子 XNode 物件的每個屬性
  • create 函式 : 重用之前回收的 XNode 物件或建立一個新的 XNode 物件

XDocument 類

[編輯 | 編輯原始碼]

基於 XNode 類的 XDocument 類

  • 建構函式 : 建立文件 XNode 物件
  • clear 方法 : 回收組成此 XDocument 物件的每個 XNode 物件
  • appendChild 方法 : 將節點附加到此 XDocument 物件
  • createElementNS 方法 : 為此 XDocument 物件建立一個元素 XNode 物件
  • createTextNode 方法 : 為此 XDocument 物件建立一個文字 XNode 物件
  • createAttributeNS 方法 : 為此 XDocument 物件建立一個屬性 XNode 物件
  • getElementsByTagName 方法 : 獲取此 XDocument 物件的所有具有給定標籤名的元素的陣列
  • transformToText 方法 : 將文字 XSL 轉換應用於此 XDocument 物件
  • unescape 函式 : 對序列化 XML 中的實體進行轉義
  • parse 函式 : 解析序列化 XML 以將其載入到此 XDocument 物件中
  • load 函式 : 獲取給定位置的序列化 XML 以將其載入到此 XDocument 物件中

Writer 類

[編輯 | 編輯原始碼]

Writer 類

  • toString 方法 : 序列化 XNode 物件

XMLWriter 類

[編輯 | 編輯原始碼]

XMLWriter 類

  • toString 方法 : 序列化 XNode 物件

ArrayExpr 類

[編輯 | 編輯原始碼]

用於陣列表示式的 XPath 表示式類

  • 建構函式 : 初始化 exprs 屬性
  • evaluate 方法:將此表示式物件評估為節點集

BinaryExpr 類

[編輯 | 編輯原始碼]

用於二元表示式的 XPath 表示式類

  • 建構函式: 初始化特定屬性
  • evaluate 方法:評估此二元表示式物件。不需要優先順序處理,因為這已在 XSLT 轉換步驟中完成。

ExprContext 類

[編輯 | 編輯原始碼]

XPath 表示式評估類上下文

  • 建構函式: 初始化特定屬性
  • clone 方法:基於此表示式上下文物件建立一個新的表示式上下文
  • setNode 方法:設定此表示式上下文物件的節點和位置屬性
  • initDeps 方法:初始化此表示式上下文物件的依賴項集合
  • addDepNode 方法:將節點新增到此表示式上下文物件的相應依賴項集合中
  • addDepElement 方法:將元素新增到此表示式上下文物件的相應依賴項集合中

TokenExpr 類

[編輯 | 編輯原始碼]

用於令牌表示式的 XPath 表示式類

  • 建構函式:初始化 value 屬性
  • evaluate 方法:將此二元表示式物件的 value 評估為字串值。

UnaryMinusExpr 類

[編輯 | 編輯原始碼]

用於一元減號表示式的 XPath 表示式類

  • 建構函式:初始化 expr 屬性
  • evaluate 方法:評估此一元減號表示式物件。

CteExpr 類

[編輯 | 編輯原始碼]

用於常量表達式的 XPath 表示式類

  • 建構函式:初始化 value 屬性
  • evaluate 方法:按原樣獲取此常量表達式物件的 value。

FilterExpr 類

[編輯 | 編輯原始碼]

用於根據謂詞過濾節點的 XPath 表示式類

  • 建構函式: 初始化特定屬性
  • evaluate 方法:評估此過濾表示式物件

FunctionCallExpr 類

[編輯 | 編輯原始碼]

用於核心函式呼叫的 XPath 表示式類

  • 建構函式:檢查核心函式是否具有給定名稱,初始化特定屬性,推送引數
  • evaluate 方法:評估此函式呼叫表示式物件,使用上下文和相同引數呼叫相應的 Javascript 函式

LocationExpr 類

[編輯 | 編輯原始碼]

用於位置表示式的 XPath 表示式類

  • 建構函式:初始化 absolute 屬性並堆疊後續步驟
  • evaluate 方法:遞迴評估此位置表示式物件的後續步驟

NodeTestAny 類

[編輯 | 編輯原始碼]

用於任何節點表示式的 XPath 表示式類(“*”)

  • 建構函式:初始化 absolute 屬性並堆疊後續步驟
  • evaluate 方法:始終為真

NodeTestName 類

[編輯 | 編輯原始碼]

用於節點測試表達式的 XPath 表示式類

  • 建構函式:初始化 prefix 和 name 屬性
  • evaluate 方法:如果給定節點具有與此表示式物件相同的名稱空間和名稱,則評估為布林值。萬用字元作為擴充套件被支援作為有效的名稱空間測試。

NodeTestPI 類

[編輯 | 編輯原始碼]

用於處理指令測試表達式的 XPath 表示式類

  • 建構函式:初始化 target 屬性
  • evaluate 方法:如果給定節點是具有與此表示式物件相同名稱的處理指令,則評估為布林值

NodeTestType 類

[編輯 | 編輯原始碼]

用於節點型別測試表達式的 XPath 表示式類

  • 建構函式:初始化 type 屬性
  • evaluate 方法:如果給定節點具有與此表示式物件相同的型別,則評估為布林值

NSResolver 類

[編輯 | 編輯原始碼]

用於名稱空間解析的 XPath 表示式類

  • 建構函式:將 map 屬性初始化為一個空的關聯陣列
  • registerAll 方法:在此名稱空間解析器物件中註冊來自給定解析器的所有名稱空間
  • register 方法:在此名稱空間解析器物件中註冊字首和 uri
  • registerNotFound 方法:在此名稱空間解析器物件中為未找到的 uri 註冊字首
  • lookupNamespaceURI 方法:在此名稱空間解析器物件中查詢給定字首的相應 uri

PathExpr 類

[編輯 | 編輯原始碼]

用於由過濾器和相對路徑組成的路徑表示式的 XPath 表示式類

  • 建構函式:初始化 filter 和 rel 屬性
  • evaluate 方法:首先評估過濾器,然後評估此表示式物件的每個與相對路徑的組合

PredicateExpr 類

[編輯 | 編輯原始碼]

用於謂詞表達式的 XPath 表示式類

  • 建構函式:初始化 expr 屬性
  • evaluate 方法:如果可能,將此謂詞表達式物件評估為一個布林值,將數值與當前位置進行比較

StepExpr 類

[編輯 | 編輯原始碼]

用於位置步驟表示式的 XPath 表示式類

  • 建構函式:初始化 axis、nondetest 和無限數量的謂詞屬性
  • evaluate 方法:根據上下文將此表示式物件評估為節點列表

UnionExpr 類

[編輯 | 編輯原始碼]

用於二元聯合表示式的 XPath 表示式類

  • 建構函式:初始化 expr1 和 expr2 屬性
  • evaluate 方法:將此表示式物件評估為節點集

雜項函式

[編輯 | 編輯原始碼]
  • stringValue 函式:字串強制轉換
  • booleanValue 函式:布林強制轉換
  • numberValue 函式:數字強制轉換
  • booleanValue 函式:數字強制轉換
  • xmlValue 函式:根據給定節點的型別獲取其文字值
  • xmlResolveEntities 函式:將給定字串中的所有 HTML 實體解析為相應的字元
  • stringSplit 函式:根據字元拆分字串

XPath 類

[編輯 | 編輯原始碼]

XPath 類

  • 建構函式:初始化屬性並建立一個關聯的名稱空間解析器。作為字串編譯的引數被解釋為由 XSLT 轉換檢測到的錯誤。
  • evaluate 方法:評估完整的 XPath 表示式並捕獲發生的異常
  • expressions 關聯陣列:儲存每個 XPath 物件
  • get 方法:根據給定的源文字獲取 XPath 物件
  • new 方法:如果 XPath 物件不存在,則建立一個 XPath 物件
  • registerNS 方法:為所有 XPath 表示式註冊名稱空間

XPathFunction 類

[編輯 | 編輯原始碼]

XPath 函式類

  • 建構函式 : 初始化屬性
    • acceptContext : 當前上下文是否需要作為此 XPath 函式物件的第一個引數
    • defaultTo : 預設引數
      • DEFAULT_NONE : 無預設引數
      • DEFAULT_NODE : 當前節點
      • DEFAULT_NODESET : 包含當前節點的陣列
      • DEFAULT_STRING : 當前節點的文字值
    • returnNodes : 未使用
    • body : 對應的 Javascript 函式
  • call 方法 : 在管理預設引數和上下文存在的情況下,呼叫對應的 Javascript 函式

XPathCoreFunctions 關聯陣列

[編輯 | 編輯原始碼]

核心 XPath 函式

  • last()
  • position()
  • context()
  • count(nodeset)
  • id(node?)
  • local-name(nodeset?)
  • namespace-uri(nodeset?)
  • name(nodeset?)
  • string(nodeset?)
  • concat(string, string, string*)
  • starts-with(string, string)
  • contains(string, string)
  • substring-before(string, string)
  • substring-after(string, string)
  • substring(string, number)substring(string?, number?, number?)
  • compare(string, string)
  • string-length(string?)
  • normalize-space(string?)
  • translate(string, string, string)
  • boolean(object)
  • not(boolean)
  • true()
  • false()
  • lang(string)
  • number(object)
  • sum(nodeset)
  • floor(number)
  • ceiling(number)
  • round(number)
  • power(number, number)
  • random()
  • boolean-from-string(string)
  • if(boolean, object, object)
  • choose(boolean, object, object)
  • avg(nodeset)
  • min(nodeset)
  • max(nodeset)
  • count-non-empty(nodeset)
  • index(string)
  • nodeindex(string)
  • property(string)
  • instance(string?)
  • now()
  • local-date()
  • local-dateTime()
  • days-from-date(string)
  • days-to-date(number)
  • seconds-from-dateTime(string)
  • seconds-to-dateTime(number)
  • current()
  • is-valid(nodeset?)
  • is-card-number(nodeset?)
  • digest(string, string, string?)
  • upper-case(nodeset?)
  • lower-case(nodeset?)
  • transform(nodeset?, string)
  • serialize(nodeset?)

雜項函式

[編輯 | 編輯原始碼]
  • stringValue 函式:字串強制轉換
  • booleanValue 函式:布林強制轉換
  • numberValue 函式:數字強制轉換
  • booleanValue 函式:數字強制轉換
  • xmlValue 函式:根據給定節點的型別獲取其文字值
  • xmlResolveEntities 函式:將給定字串中的所有 HTML 實體解析為相應的字元
  • stringSplit 函式:根據字元拆分字串
華夏公益教科書