跳转至内容

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 函数:根据字符拆分字符串
华夏公益教科书