GB/T 28170.2-2021 信息技术 计算机图形和图像处理 可扩展三维组件(X3D) 第2部分:场景访问接口(SAI).pdf
- 文档部分内容预览:
不要求在包含节点及其用户代码之间一一对应。语言绑定可允许一个用户代码实例在包含节点的 多个实例之间共享。
应用程序是外部过程,不是X3D浏览器的隐式部分。该应用程序应浏览器的请求,以某种形式连 接至X3D浏览器。应用程序既不属于GB/T28170.1一2011中图1中定义的X3D浏览器的组成部分, 也不属于GB/T28170.1一2011中4.4.8.3执行模型定义的执行模型的组成部分。应用程序可处于另一 台来自X3D浏览器的机器上。应用程序可负责创建一个嵌入在该应用程序中的,或者附着在已经运行
会话定义用户代码和X3D浏览器之间单个连接的生命周期。一个浏览器可同时服务多个会话(例 如,一个场景中的多个脚本节点)。 一个应用程序可包含与多个浏览器的多个单独的会话,但一个脚本节点不应如此。外部应用程序 和多个X3D浏览器之间同时有多个会话是允许的。然而,独立的实现可能会对此类多个同时会话设置 些限制。 会话不是本部分的可实现部分。它纯粹是一个概念机制,用户可通过它来请求服务。它可能在浏 览器和外部应用程序之间建立任何连接之前就存在,或者与浏览器连接请求同时建立
浏览器是一个有效X3D场景图的基本封装机制(这是时间推进的而不是存储在磁盘上的文件形式 的)。由于它包含了整个场景图,它还提供了一组最小的核心能力工程造价标准规范范本,用于在一个粗糙的级别上动态操纵 景图。此场景图可能包含最多一个活跌LayerSet节点,该节点应是此场景图的根节点(见 B/T28170.1一2011中4.3.2根节点)。场景中包含的使用内联节点(或通过其他方式)导入的任何其 也LayerSet节点都应忽略。 用户可能会在他们的机器上同时运行很多X3D浏览器。因此,每个浏览器应由会话中的唯一标识 等来表示。对单个浏览器实例的多个请求,该标识符应完全相同。这是为了确保访问一个浏览器实例 的两个应用程序可以一种明确的方式共享信息 任何需要使用浏览器功能的操作都应使用浏览器标识符标识服务请求
场景表示单个X3D场景图和所有关于该场景图的信息。这个场景是一个X3D文件的程序化等价 物。它可包含节点、路由、原型声明、导人和导出以及一个有效的X3D文件可能包含的所有信息。在任 何给定的时间,浏览器可包含一个或多个场景。例如,一个场景使用Inline节点来包含另一个场景。 在浏览器中,场景不必是处于激活或者运行状态的。用户可构造一个未附加在浏览器实例上的新 的场景,然后程序化地填充诸如节点和路由之类的信息。这个场景可随后被直接传递到一个通用程序, 例如用于发布源文件的打印程序,或者用于替换浏览器中的当前场景。
4.4.8节点和节点生命周期
节点是在场景图中与元素交互的最小单元。节点与GB/T28170.1一2011中定义的X3D节点相 同。一个节点可作为一个单元从场景图中删除、存储,然后在之后的某个时间重新插入到相同会话中的 另一个位置,而不会产生不利影响。 每个节点都由唯一的标识符来定义,该标识符对于会话是唯一的。也就是说,单个浏览器可能同时
表4.2在节点生命周期期间允许的字段访问功
从设置到实现状态的转换可以是隐式的或显式的。存在服务请求,以便用户可正式发布设置已经 完成的通知,从而节点可完成所需的任何内部构造。由于用户的操作,转换也可能是隐式的。当用户对 节点引用做了除设置字段值之外的其他任何操作,此节点将转换到实现状态。 示例:用户创建了一个Box节点,设置了字段大小,创建一个Shape节点,然后立即将Box添加到Shape节点。此 操作将使Box节点的状态变为Realized状态,并在设置状态中保留Shape节点。 节点标识符也用来表示一个空节点。一个空的SFNode或MFNode字段值都用空值来表示。对 于空的MFNode字段,可用字段值应为空
各个字段都在节点内定义。虽然无法直接操作节点,但字段是直接操作单个属性的方法,如表4.2 听示。 不可能将节点属性当做独立于节点本身的实体直接加以操纵(即字段不存在于包含节点之外)。 字段类型和对于各个字段的访问是由GB/T28170.1一2011定义的。每个字段指定一个字段标识 符。但该标识符并非唯一的,并且需要一个节点标识符加上字段标识符来指定与之交互的特定字段。 当访问一个字段时,用户应获得整个字段的标识符。通过服务定义,将所有字段隐式处理为可读和可 写。使用标志指示该字段能否在该时间点上及时读取或写入(依赖于表4.2中所述的生命周期的节点 状态)。此状态可能会随着节点生命周期的推进时间而改变。例如,一个处于非激活状态的节点的仅初 始化字段可能是可写的,但是一且该节点插入到场景图中,它就不再是可写的。这种规定有助于希望围 绕第三方浏览器程序化构建场景的制作工具和用户。 在会话过程中任何时候,字段都是可读并可写的。用户代码可注册和注销,以接收当字段值发生变 化时的通知。在注册过程中,用户代码可提供一个标记,该标记将随事件的数据值一起返回。此标记可
被用户代码用于在事件不是隐式唯一的情况下唯一标识此事件。标记不需要与服务请求一起传递,并 且可留作应用程序接口内部实现的一部分保存。 被应用程序引用到的节点的所有可输出字段都能被读取。读取值是该字段发送的最后一个值,或 者如果没有发送任何事件,则是该字段类型的默认值。所读取的数据特定于该字段的字段类型,并被格 式化,以适合所用的语言或协议
4.4.10执行上下文
执行上下文是运行时语义,等价于在GB/T28170.1一2011中4.4.7运行时命名范围所描述的名称 范围。它提供了一种包含内部交互代码并为其加防火墙的方式,这种方式与命名空间在文件格式中提 共的限制类似。例如,当一个Proto实例中的脚本添加一个ROUTE时,该路由被添加到该proto内, 而不是添加到一般场景中。 场景是执行上下文的派生类型。当内部交互请求当前执行上下文时,返回一个场景对象。然后,用 代码可检查该执行上下文是否为完整场景的一个实例,并且通过将其转化为对应的派生类型(如果可 用时)
任何围绕X3D场景图的短暂数据使用都是通过事件来完成的。应用程序可注册从X3D场景图中 收事件,并可发起新的事件。事件被认为是短暂的,只有在特定的行为发生时才产生。事件不应被存 诸,也不应被交付给那些在事件发生时并未对该事件表示兴趣的各方。
应用程序可将值写入字段或从字段中读取值。在X3D浏览器内部表示并标记时间戳之前,此值不 会成为事件。浏览器与应用程序的边界是事件停止的位置。事件不能从X3D浏览器外部存在;也就是 说,应用程序无法插人事件级联中。可向应用程序通知事件,发起新事件,但是当通知事件时,在浏览器 内阻止当前时间戳事件级联的处理时,不能处理和传递事件。允许记录事件以用于分析目的。 在创建级联之前不会生成事件。如果内部交互直接写人另一个节点的可输出字段,则不会生成任 可事件,因此不会形成事件级联的一部分。如果内部交互写入包含节点的可输人字段,则如果该字段是 来自其他地方的ROUTE的主题,则形成具有写人值的事件
4.5.3浏览器到外部应用程序
浏览器可通过自已的一系列事件直接与外部应用程序通信。这些事件用于指示浏览器的状态或 些异步问题。可用的事件的数量和类型将依赖于实现。至少,遵循本部分的所有实现都应提供以下 事件。 应保证从浏览器到外部应用程序的事件传递
初始化事件用于指示浏览器已经在初始化过程中运行了一个场景(浏览器已经加载了世界,就在 将发布其第一个与时间相关的事件之前)。此时,节点标识符将从场景的getNode服务中获得 .7 getNode)。
初始化事件应立即在浏览器中生成并 该事件被认为是异步的。也就是说,事件 的交付(以及任何实现依赖确认方案)都不应延迟浏览器启动执行模型评估的时间
场景正在被替换(见6.3.12replaceWorld和6.3.14loadURL); b 浏览器本身正在退出; c) 客户端应用程序已经处理了它与浏览器的连接(见6.3.25dispose)。 关闭事件应立即在浏览器中生成并交付给应用程序。该事件被认为是异步的。也就是说,事件的 交付(以及任何依赖实现的确认方案)都不会延迟浏览器停止执行模型评估和关闭浏览器资源,除非需 要确保事件交付应用程序
4.5.3.4无可用的 URI
4.5.3.5连接中断
连接丢失的错误被用来通知应用程序,底层实现已经丢失了浏览器和应用程序之间的连接,从而导 致服务请求不能被授予。例如,一个TCP网络连接超时或其他类似的问题。 如果实现执行了一些自动的重新连接尝试,那么实现可能会延迟发送连接丢失的事件。它只会在 被认为不可能连接到浏览器的时候发送。在此事件生成后,不需要强制重新建立连接,也不需要尝试任 何形式的自动重新连接功能
标识符的构成依赖于实现。在某些情况下,将节点标识符表示为整个节点(包括所有字段信息)可 能更有效。然后在本地节点上进行字段信息的请求。在其他实现中,标识符可能只是一个简单的整数。 确保标识符唯一是浏览器的重要职责,这样应用程序可在合理的环境约束下共享数据。对该环境的约 束可指定为在附加的附录中定义的独立实现的一部分。 使用不同服务实现的两个应用程序在浏览器环境之外交换数据是不合理的
4.8.1交互类型综述
因为SAI实现了外部应用程序和脚本的编程接口的角色,所以执行模型能在这两种情况下工作 尽管两种情况下的API调用都是相同的,对每个服务请求的运行时评估可能不同。 示例:在脚本中服务字段更改通知将停止当前事件级联,但对于外部应用程序则不应如此。 该规范定义了服务可参与的两种交互类型:内部(即脚本)和外部(应用程序)。
4.8.2事件模型评估顺序
4.8.3.1允许交互
内部交互是发生于用户代码和包含节点构成X3D场景图的一部分时。这些节点服从并参与事件 吸联评估。内部交互可能发生在事件级联的中间,作为接收事件的直接结果,并可能产生一个或多个输 出事件作为响应。这些事件将在当前级联中继续。当输出事件由异步脚本评估产生,或由其他与当前 事件级联处理不直接相关的过程生成,如在GB/T28170.1一2011中29.2.4EventsProcessed()所定义 的,一个全新的事件级联将会启动。 在GB/T28170.1一2011中29.3.1X3DScriptNode中指定的X3DScriptNode类型,其指定了一个包 含节点,但将来也可定义其他节点类型。浏览器将只充许通过用户代码的内部交互,此用户代码是从 X3D脚本节点或其他将来定义的包含节点类型中引用的。如果用户代码是从任何其他节点类型引用 的,则应将代码视为外部交互并相应地采取行动。 内部交互还允许与其他节点的字段直接交互,或者在不参与事件级联的情况下进行一些浏览器操 作。此操作应只允许依赖于包含X3DScriptNode节点的directOutput字段设置的值。关于什么时候
此行为是充许的定义,见GB/T28170.1一2011中第29章脚本组件中的定义。 因为用户代码被认为是包含在包含节点内的,所以节点字段的含义会与其标准状态相反。一个仅 输人型字段是可读不可写的;一个仅输出型字段是可写不可读的;仅初始化型字段和输人输出型字段都 是可读又可写的。将此与非表4.3中包含节点的外部节点进行对比,任何其他内置或本机扩展节点可 能拥有的访问类型与之类似
表4.3允许的活动节点的字段交互
4.8.3.2浏览器交互
款概述了哪些服务可用于内部操作以及哪些服务是不受限制的 在内部操作的初始化阶段,应为脚本提供适合其交互的浏览器的引用。这应在脚本的整个生命周 期内保持不变,而其包含的节点被认为是实时的
4.8.3.3事件响应
内部交互旨在响应事件,提供一些处理,并可选地也为包含节点生成新的输出。此外,它还可提供 异步输出,它并不通过使用一个或多个线程对应任何输入。产生输出在4.8.3.4更新场景图中有被考 患。4.8.3.4描述了由事件级联引起的输人的响应问题,该事件级联将事件发送到包含节点的一个或多 个可输出字段 为了响应事件,用户代码注册对包含节点的适当字段的兴趣。除了包含节点的仅输出型字段外,可 寸所有学段访同类型注册兴趣。一且包含节点完成了它的初始化阶段,其中包含节点的某个学段接收 到一个事件,用户代码就会通过特定于语言的绑定提供的通知机制通知它。浏览器可选择立即通知用 户代码,或者将多个事件组合在一起,并提供一个延迟通知。在这两种情况下,浏览器应确保在该时间 截中交付所有事件,而不是在以后的某个时间。在决定是否推迟或立即通知时,浏览器还应遵循 GB/T28170.1一2011中29.4.1脚本规定的包含节点的mustEvaluate字段指示。 在通知之后,浏览器将不再处理包含节点的事件级联中的任何事件,直到处理已经从用户代码返回 尽管这充许其他事件级联继续同时处理)。在用户代码放弃控制之前,不应将写人其他节点学段和包 含节点可输人字段的值传递给目标节点。 注意:如果存在并行事件级联被评估(例如在多CPU机器上运行的浏览器,并行事件级联可被评估,并导致两个级 关将事件同时传递给包含的节点),那么这并不排除浏览器实现同时向用户代码交付多个事件。用户代码的作者应知道 详对这种情况采取适当的预防措施。 当浏览器确定级联或级联完成时,浏览器可能会调用在GB/T28170.1一2011中29.2.4EventPro cessed()所定义的包含节点的EventProcessed()方法。用户代码也被告知这种情况,此时用户代码可 选择执行额外的评估并生成更多的输出。内部通知用户代码无法确定何时当前煊染顿完成及下一顿 开始
D.22021/ISO/IEC197
4.8.3.4更新场景图
用户代码除了接收输人外,还可选择生成输出。对于内部交互,不要求用户代码生成响应输入的输 出。在任何包含节点被认为是活动的时候,用户代码可异步地生成输出或直接写入到其他节点,在 4.8.3.3事件响应和4.8.2.5异步活动中给出了一些限制。 用户代码有两种影响场景图的选项;它可写入包含节点的可输出字段,并使该值服从通常的事件级 联,或者直接写入包含节点和用户代码已经具有引用的另一个节点的可输入字段。用户代码可随时根 据表4.2中定义的访问规则写人包含节点的字段。与其他节点的内部交互应遵从包含节点的直接输出 段定义的规则,如GB/T28170.1一2011中29.2.6带直接输出的脚本中表明的。 有两种特殊情况,用户代码不充许对包含节点的字段进行更改。X3DScriptNode抽象类型mus Evaluate和directOutput的两个字段被认为是特殊的,用户代码在运行时不允许修改这些值。用户代 码可读取这些值。如果包含的节点也来自X3DUrINode抽象类型,它可能会选择更改自已的URL字 段,从而用新的用户代码替换当前的用户代码。 脚本可自我修改,因此,如果包含节点也是从X3DUrlNode抽象类型(见GB/T28170.1一2011中 9.3.2X3DUrlObject)派生的,它可选择更改自已的URL字段,从而用新用户代码替换当前用户代码。
4.8.3.5异步活动
二些语言中的用户代码可被允许使用异步执行线程进行操作。这允许用户代码直接运行而不需要 通过浏览器的调用。这种情况的一个典型用途是监视网络连接,以便对场景图进行更改。这需要使用 内部交互,该内部交互不是作为由用户代码接收到的字段更改的直接结果而创建的。 内部交互只允许在4.8.3.7用户代码生命周期指定的时间内进行。如果用户代码试图在任何其他 寸间内进行内部交互,那么浏览器将产生一个错误。prepareEvents服务(见6.11.4.1prepareEvents), 扣果由用户代码定义,允许用户代码在已知的时间点对场景图进行完全异步的更改,而不需要使用 imeSensor或其他节点对脚本进行计时。这与eventsProcessed服务(见6.11.4.2eventsProcessed)形 成对照,它只在包含节点必须处理字段更改之后才被调用。 此外,当用户代码注册为一个侦听器服务时,与此相关的回调被认为是异步操作。在此期间操作的 用户代码,不应对场景图进行修改
4.8.3.6监控场景图中的变化
字段的服务定义允许用户代码在其他节点的字段输出中注册兴趣。内部交互代码不允许在字段更 改信息中注册兴趣。如果用户代码想要被字段告知更改信息,它将使用现有的路由机制和适当的场景 服务,在感兴趣的字段和包含节点的可输人字段之间添加一条路由。 内部用户代码仅可在其他节点的可输出字段中添加注册兴趣,只有当包含节点的directOutput字 段设置为TRUE时,才允许这样做。如果该值设置为FALSE而允许用户代码在输出中注册兴趣的 话,这将是错误的
4.8.3.7用户代码生命周期
4.8.3.7.1综述
用户代码的生命周期可能由于许多原因而更短,例如从远程站点获取代码的下载时间或其他用户 代码更改包含节点的URL以替换当前用户代码。但是,用户代码的生命周期遵循包含节点的基本原 则。它有相同的阶段,也经历过类似的转变。 在GB/T28170.1一2011的4.4.2.5对象生命周期中,定义了包含节点的生命周期。
4.8.3.7.2设置
假设在包含节点初始化和用户代码将通过初始化阶段时,会有一些延迟,但会很小。虽然包含节点 可能已经完成了初始化阶段并处于运行阶段,但是用户代码可能还没有开始或者可能正在处理它的初 始化。 在初始化阶段,内部交互代码将获得其生命周期余下阶段所需的所有信息。初始化阶段的第一步 是用户代码的实例化。在实例化过程中,用户代码没有关于其包含环境或包含节点的信息。在此期间 用户代码可选择设置所需的任何资源,如线程、网络连接或包含环境的任何其他允许操作(见4.8.3.9执 行环境和安全性)。 在实例化之后,用户代码会接收到在内部交互环境中运行所需的资源通知。给出包含浏览器的标 只符,节点的字段列表(不包括任何特殊学段)和包含节点的标识符(需要使用户代码可添加和删除到其 包含节点的路由)。在此期间,用户代码除打印消息外,不应发出任何服务请求。如果是,浏览器就会产 生错误。 作为初始化阶段的最后一步,用户代码应调用它的初始化服务(参见6.11.3.3initializc)。此时,用 户代码可自由地使用内部交互可用的所有服务。 注:对于用户代码来说,这是一个很好的时机来注册包含节点字段的更改通知,或者执行一些外部任务,比如绑定 一个特定的视图
4.8.3.7.3实现
4.8.3.7.4清理
当节点不再活动或其他用户代码的操作导致用户代码从包含节点中删除时,用户代码将进入关闭 阶段(例如,更改脚本节点的URL以指向新的可执行内容), 对关闭阶段的更改通知应通过用户代码中shutdown服务请求的调用(见6.11.5.1shutdown)。在 此阶段,用户代码可将值设置在包含节点的可输出字段,或直接将最终值写入其他节点的可输人字段。 在该阶段结束时,浏览器和包含字段的标识符将被视为无效。例如,如果用户代码包含一个在关闭阶段 后继续运行的线程,则不允许对场景图进行修改。这样做将产生一个错误
4.8.3.8输入输出字段和包含节点
包含节点允许拥有输入输出访问类型的字段。因为输人输出字段表示同时具有输人和输出类型的 字段,用户代码可能希望写入值,用户代码需遵从某些特殊条件,以便与核心规范保持一致。 为了定义允许的行为,包含的节点和用户代码被认为是解耦的、非相关的实体。字段值的更改通知 是通知,没有更多。设置输入输出类型字段值被认为是一个瞬时的、原子动作。当字段值被设定时,输 人和输出值都立即被设定。然后执行对用户代码的通知。由于输人输出字段的输出已经设置,所以在 当前时间戳中任何进一步更改输入输出字段值的尝试都要遵从GB/T28170.1一2011的4.4.8.4循环,
也就是说,如果用户代码收到它的包含节点的输入输出字段的事件通知,在相同的时间戳期间它不能写 另一个值到那个相同的输入输出字段,因为输出事件已经发布,包含节点不允许在相同的时间截内为同 一字段发布另一个输出事件。 在接收事件中,脚本应只通过输人输出字段的包含节点接收到的第一个事件。 如果包含的节点在当前时间戳中尚未收到字段的更改,则允许用户代码为字段写人值。如果在用 户代码修改后接收到字段的更改,则只处理该节点的只输入部分。通知发送到用户代码,但根据 GB/T28170.1一2011的4.4.8.4"循环”中的循环打破规则,字段值不应更改
4.8.3.9执行环境和安全性
4.8.4.1允许交互
从外部视角看,与浏览器交互的用户代码在整个生命周期不仅对场景图而且对包括浏览器有完全 的控制。因此,外部交互具有对浏览器的全面控制。 因为应用程序被认为是浏览器外部的,所以它对内部状态及何时操作是安全或不安全的没有深刻 的了解。因此,外部交互被定义为提议功能。外部交互请求浏览器做出更改,然后浏览器将准确地决定 可时执行这些请求是安全的。浏览器应执行下面列出的各项服务指南范围内的所有请求。 外部应用程序也可能希望监视节点、字段甚至浏览器本身的变化。浏览器应将变化通知外部应用 程序,但应以异步方式进行。也就是说,任何更新都被认为仅是通知,并且不应阻挡浏览器内部评估 结果是,通知从在浏览器内发生至到达外部应用程序会有一些延迟。 示例:由于整个系统的传输滞后.坐在远程计算机上的外部应用程序与浏览器之间的数据传输可能会出现延迟
4.8.4.2浏览器交互
外部交互的浏览器交互包括提供给内部交互的所有基本服务。除此之外,还充许进行一些额外的 交互。允许单个外部应用程序一次与多于一个浏览器交互。它还可指示多个浏览器像一个单一实体那 样行动或独自工作。外部应用程序的生命周期独立于浏览器
4.8.4.3更新场景图
外部应用程序的一个特点是,它们会爆发性地对X3D浏览器制造大量变化。也有可能单个浏览 午多应用程序连接到它,所有的这些应用程序都在请求浏览器。 事件可被批处理以有助于应用程序性能(见6.3.19updateControl)。这一机制提供了一个简单
4.8.4.4监控场景图中的变化
外部交互允许监视场景图中的任何更改。这些更改的通知应及时交付,并保持与浏货 内部 同的序列中
4.8.4.5同步多个应用程序
当多个应用程序请求浏览器时,请求将按到达浏览器的时间被服务。浏览器将决定到达时间。缓 存的场景图更新,它们的到达时间应在EndUpdate被请求时确定。到达时间不一定与浏览器选择将事 件发送到场景图的时间戳相同。事件被发送到场景图的时间戳应由浏览器决定,但不会早于 EndUpdate被请求的时间。到达时间用于对来自多个应用程序的冲突请求进行排序,以确保以正确顺 享应用事件得到一致的结果。 如果浏览器断定两个请求同时到达,其结果是依赖于实现的。 注意:外部应用程序可同时向给定的仅输入字段发送新值。在这种情况下,浏览器应遵从GB/T28170.1一2011中 .4.8.5扇人和扇出。作者可通过确保事件发生在单独的事件级联中来避免非反感行为。 如果浏览器收到loadURL或replaceWorld请求时当前正在处理类似的请求,旧的请求立即终止, 新的请求开始。见6.3.12replaceWorld和6.3.14loadURL获取更多信息
所有服务请求在底层实现支持该服务的地方都应保证得到执行。一旦应用程序发出服务请求,该 请求将被传送到浏览器,假设连接仍然可用。也就是说,所有通信都被假定是可靠的。如果浏览器和应 用程序之间的连接被破坏(例如,TCP连接失败),就不能保证交付。实现应定义一个错误条件,可通知 用户,每个服务请求的连接都失败了。另外,浏览器接口可包含一个事件,它为失败的用户提供异步 通知。
2021/ISO/IEC19775
本条款中的所有数据类型都是独立于语言绑定的。它们表示作为参数传递的单值信息,返回值 通过外部创作界面生成的错误条件。每种语言绑定都应定义每种数据类型的实现 这些数据类型代表每种类型的具体实现:也就是说,X3D浏览器如何在内部表示它们
5.2.1SAIAction
SAIAction是一个单值字段,表示更一般服务类型的限定符。SAIAction类型的每次使用应定义 可接受值的范围。
5.2.2 SAIBoolean
SAIBoolean表示一个真值或虚值
SAIBoolean表示一个真值或虚值
5.2.3SAIBrowserApp
它定义了浏览器应用程序本身,而SAIBrowserRef定义了对浏览器功能的标准化接口的引用。该数据 类型应包含一些获取SAIBrowWserRef的方法
5.2.4SAIBrowserName
SAIBrowserName定义浏览器名称的表示形式。如果浏览器的实现不支持此信息,则将空值视为 此数据类型的合法表示形式
5.2.5 SAIBrowserRel
TSAIBrowserRef表示浏览器引用。这是每个浏览器实例的唯一标识符。单个语言绑定可能会对 唯一性设置条件,允许其他方法检查对同一浏览器的等效引用。 在4.4.6浏览器中进一步定义了浏览器概念
2.6SAIBrowserVersion
SAIBrowserVersion定义了浏览器版本的表示形式。如果浏览器实现不支持此信息,则将空值视 为此数据类型的合法表示形式
SAIComponentDeclara
SAIComponentDeclaration定义了有关组件及其声明的所有信息。它可用来表示文件中声明的组 件信息和浏览器中的可用组件
5.2.8SAIComponent
SAIComponent指定了在请求中使用的组件的标识符,组件由名称和级别组成,两者都封装在此标 识符中。
5.2.9 SAIEncoding
SAIEncoding为编码类型指定标识符 18
5.2.10SAIExecutionCo
5.2. 11 SAIFieldAccess
5.2.12SAIFieldDeclara
170.22021/ISO/IEC1
SAIFieldDeclaration表示节点字段的抽象声明。声明对于该节点的所有实例都是常量,并且不包 括字段值。它可被认为是包含SAIFieldAccess、SAIFieldName和SAIFieldType数据类型的包装数据 类型。
5.2.13SAIField
SAIField表示节点的特定字段的标识符。它保证在单个节点引用的范围内是唯一的。就生成的 所有字段引用而言,它不一定是唯一的。要在场景图中唯一地定义字段,需要节点和字段标识符的 组合。 字段概念在4.4.9字段中得到了进一步的定义。
5.2.14 SAIFieldName
AIFieldName表示字段的
5.2.15SAIFieldType
SAIFieldType指定字段表示的数据类型。在某些情况下(字段类型表示MFString或S 此字段类型可能对应于SAINode。有效的字段类型在GB/T28170.1一2011中的5字段和事 定义。
5.2. 16 SAIFieldValuc
SAIFieldValue表示要以语言特定术语设置或返回SAIFieldType的值。可构造表试验、检测与鉴定,将表示的每个 SAIFieldType映射到至少一个语言特定条目。此数据类型包含SAIFieldType类的项和由第一个项的 直指定的字段类型的项。应支持GB/T28170.1一2011中的5字段和事件参考中定义的所有字段 类型。
5.2.17SAIFrameRate
SAIFrameRate表示浏览器当前正在以每秒顿数为单位的顿率
5.2.18 SAILaverID
SAILayerID是操作的目标层的标识符。层的排序是在GB/T28170.1一2011中35.4.2Layer 定义的LayerSet节点的层字段中的顺序位置。
市政定额、预算5.2. 19 SAILoadState
....- 计算机标准
- 相关专题: 信息技术