DLTS-41数据扩展技术的指导规范.docx

上传人:时光煮雨 文档编号:15029304 上传时间:2022-03-06 格式:DOCX 页数:26 大小:72.35KB
返回 下载 相关 举报
DLTS-41数据扩展技术的指导规范.docx_第1页
第1页 / 共26页
DLTS-41数据扩展技术的指导规范.docx_第2页
第2页 / 共26页
DLTS-41数据扩展技术的指导规范.docx_第3页
第3页 / 共26页
DLTS-41数据扩展技术的指导规范.docx_第4页
第4页 / 共26页
DLTS-41数据扩展技术的指导规范.docx_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《DLTS-41数据扩展技术的指导规范.docx》由会员分享,可在线阅读,更多相关《DLTS-41数据扩展技术的指导规范.docx(26页珍藏版)》请在三一文库上搜索。

1、目 次1 概述11.1 范围11.2 目的12 规范性引用文件13 定义14 应用模型84.1 数据访问模型84.2 通用数据操作84.3 和具体应用相关的数据操作的例子95 一致性模型95.1 一致性的分层模型105.2 只规定“一致”够吗105.3 只规定“严格一致”够吗105.4 两个都要规定106 数据元素的强制属性106.1 必需数据元素106.2 可选数据元素116.3 条件数据元素116.4 扩展数据元素116.5 必需和可选126.6 扩展和保留127 数据元素的生命期属性127.1 过时数据元素127.2 保留数据元素137.3 强制/生命期的递归/上下文属性138 对一致性

2、分类的总结149 一致性用词模板149.1 一致性层次149.2 编码的一致性159.3 API的一致性169.4 协议的一致性169.5 数据应用程序的一致性1610 既是严格一致又是一致的数据应用程序1811 对扩展的处理1911.1 数据元素“核心集”的概念1911.2 处理一般性问题的方法22DLTS-4.1数据扩展技术的指导规范一个数据模型,在对它及其绑定进行标准化的时候,都会涉及扩展的问题。换句话说,就是同标准的一致性问题。一致性问题是一个很重要的问题,因为它和数据模型的互操作性有直接的关系。本规范就是想通过描述一种通用的扩展技术,为数据模型及其绑定标准的开发者提供有效的指导。对于

3、现代远程教育的其它标准,在处理扩展(即一致性)问题时,应参考本规范。1 概述1.1 范围本指导规范规定了一些通用的扩展技术,用于数据模型及其绑定的标准化。在本文中,“扩展”是指在某个标准范围以外的情况。这些技术一般都涉及多个应用领域。1.2 目的本指导规范的目的在于为数据模型及其绑定标准的开发者提供一定的指导。规范描述了一些通用的技术,用于满足用户,供应商和工业界在技术及商业上的不同利益。本指导规范涉及几个互操作的问题。互操作的层次是和标准的一致性层次相关的。但是,一致性和互操作性之间还有一些细微的差别:一致性是指某种实现(或一个系统)相对于某个标准(或规范)的要求的满足程度。互操作性是指两个

4、或更多实现系统之间的成功交互以及这些交互在某种程度上的自动化。举个例子,以下是几种可能的互操作的场景: 场景1:某个实现只能和其它严格一致的实现达到互操作。如:某个实现可能只包含标准所规定的特征,不使用扩展或其它属性特征。 场景2:某个实现和来自同一个供应商,用户或组织的其它实现达到互操作。 场景3:某个实现能和大范围的扩展达到互操作。这种扩展可以是用户定义的,供应商定义的,组织定义的和/或工业界定义的。扩展的使用及标准化为新兴技术融入主流技术提供了一条通用的途径。例如:用户,供应商,组织,工业界等需要标准以外的特征(扩展)来满足他们特定的需要。严格一致的实现不允许使用扩展,但是一致的实现可以

5、使用扩展,只要能满足实现和数据互操作的要求即可。当某种扩展被广泛使用后,那么在将来对标准做出修改时可以把这些特征集成到标准中。因此,现在作为扩展被使用特征将来可能成为严格一致的实现所必要的东西。2 规范性引用文件下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。版本对于本规范的适用性。对于没有时间规定的引用标准,本规范默认使用引用标准的最新版本。 IEEE 1484.14.2/D1:“学习技术

6、的指导草案数据扩展技术” DLTC-2:“词汇表” RFC 822: IETF RFC 2068:“超文本传输协议”(HTTP/1.1) W3C XML:“扩展标记语言” ISO/IEC 11404(1996):“语言无关的数据类型” ANSI X3.30 (1998):“信息交换中日期和时间的表示” ANSI X3.42(1990):“信息交换中字符串的表示” ANSI X.3.285(1998):“数据表示的元数据模型” ISO/IEC 11179 ISO/IEC 86013 定义注: 下面的定义是和DLTC-2“词汇表”及相关参考文献相一致的。3.1 通过规范性引用集成的定义注: 下面的

7、术语和它们的定义是通过正规引用的方式集成进来的: IEEE 1484.14.1/D1:“学习技术的指导草案数据扩展技术”。 DLTC-2:“词汇表”。3.2 绑定(binding)从一个框架或规范到另一个框架或规范的应用或映射。3.3 保留数据元素(reserved data element)在某些上下文中,在数据结构中没有被定义,也不能在数据结构的实例中使用的数据元素。“保留”属性属于数据元素的生存期属性。参见:生存期(数据元素),过时数据元素。3.4 本地特定行为(locale-specific behavior)依赖于民族,文化,语言,制度等地方习俗的行为,在具体实现时加以说明。3.5

8、编码(coding or encoding)(1) 在信息交换中,信息的规范化或结构化的表示。(2) 用某一结构表示信息的过程。(3) 用比特和字节的格式对信息加以表示。3.6 必需数据元素(mandatory data element)在某些上下文中,在数据结构实例中被定义和要求的某个数据元素。“必需”属性属于数据元素的强制属性。参见:条件数据元素,扩展数据元素,强制(数据元素),可选数据元素。3.7 产生(数据)(produce (data)处理数据直到词汇或编码边界被定义,然后写下结果数据。其它形式:产生数据,数据产生器,数据产生。参见:生成(数据),消费(数据)。注: 数据在产生前被生

9、成。3.8 过时数据元素 (obsolete data element)在某些上下文中,某一元素在一个数据结构中被定义,但它不能在数据结构的实例中使用。“过时”属性属于数据元素的生存期属性。参见:生存期(数据元素),保留数据元素。注: 不提倡使用过时数据元素,关于它们的规定也许会在标准的将来版本中被删掉。3.9 集合(数据类型,值)(aggregate (datatype, value)从根本上来讲,集合的数据类型和值是由集合元素的数据类型和值组成的。集合的数据类型或值是通过把集合元素的数据类型或值按照一定的算法流程加以组合得到的。集合元素的值可以通过特定的操作加以访问。集合的属性同集合元素的

10、属性无关。例1:一个数组集合包含相同类型的数组元素。对数组的操作如下实现:通过索引值(一个数字)来访问单个数组元素。my_array: array (0.9) of (integer), / 整数数组my_array(4) / 访问第五个元素例2:一个记录的集合包含独立的组成元素,每个组成元素有自己的类型和标识。对纪录的操作如下实现:通过元素名(一个标识符)来访问单个组成元素。A: record( B: integer, C: void, D: characterstring(iso-10646-1),),A.B / 访问标号为B的元素注: 该定义来自ISO/IEC 11404.3.10 解释

11、(数据)(interpret (data))处理数据,直到发现规范所要求的语义。其它形式:解释数据,数据解释器,数据解释。参见:生成(数据),消费(数据)。注:数据在解释前被消费。例1:在下列字符流中: 123.45 PQR Z JKL XXX YYY 一个数据消费者能够识别: 有两个记录,都用标号“R”标识。 第一个“R”记录包含三个记录,分别用标号“A”,“B”,“C”标识。 第二个“R”记录包含两个记录,分别用标号“D”,“E”标识。因为已经被识别了的标号才能进行数据解释。假设标号“E”代表一个扩展数据元素,那么一个数据解释器可能只能识别标准标号“A”,“B”“C”“D”。基于1)“消费

12、”和“解释”的分离,2)某种特定的标准绑定(如XML),一个应用程序可能只解释标准化的特征A,B,C和D。正如上面所说,一个把数据消费和数据解释组合起来,但仅仅解释标准化数据元素的应用程序可以被称为严格一致的数据阅读器。3.11 可选数据元素(optional data element)在某些上下文中,一个数据结构的某个元素被定义,允许其存在,但并不一定要求在数据结构的实例中出现。“可选”属性属于数据元素的强制属性。参见:条件数据元素,扩展数据元素,必需数据元素,强制(数据元素)。3.12 扩展数据元素(extended data element)在某些上下文中,数据结构的某个数据元素在标准之

13、外被定义,但可能在数据结构的某个实例中被使用。数据元素的“扩展”属性属于强制属性。数据元素的“扩展”属性同一致性程度有关。(例如:严格一致的实现与一致的实现)例如:必需扩展数据元素,可选扩展数据元素,条件扩展数据元素。参见:条件数据元素,必需数据元素,强制(数据元素),可选数据元素。3.13 漫游(访问,系统)(nomadic (access, system)(1) 利用间断的通讯会话和跨越不同的地理位置表现为连续性服务的外观。(2) 不间断地从它的子系统或相关系统的网络断开。注:也称为“有时连通”或“有时漫游”。3.14 强制(数据元素)(obligation (data element)对

14、数据元素的某种要求,用于确定一个数据结构的合法性。参见:生存期(数据元素),条件数据元素,扩展数据元素,必需数据元素,可选数据元素。例:一个数据元素X,有四个元素:A和B是必需的,C是可选的,D是条件的(如果B的值为真,则D存在)。下面是合法和不合法的数据结构的例子:( A=123 ) / 不合法,缺少必需数据元素B( A=123, B=false ) / 合法( A=123, B=true ) / 不合法,缺少条件数据元素D( A=123, B=true, D=17 ) / 合法( A=123, B=false, D=17 ) / 合法( A=123, B=nil, C=345 ) / 合法

15、3.15 生成(数据)(generate (data)把数据的语义用某种适合数据交换的形式加以表示。例如:根据某种概念模型把数据结构序列化,在此过程中不必把数据用某种具体的编码方式加以表示。参见:解释(数据),产生(数据)。3.16 生存期(数据元素)(longevity (data element)数据元素的一种属性,用于表示数据元素同标准的过去,现在或未来版本的关系。参见:强制(数据元素),过时数据元素,保留数据元素。注:生存期属性和强制属性无关。例1:一个过时数据元素也许包含在某规范的过去版本中,但不会包含在该规范的将来版本中。例2:一个保留数据元素可能并没有包含在某规范的过去版本中,但

16、可能会包含在该规范的将来版本中。3.17 实现定义的行为/值(implementation-defined behavior/value)未指定的行为或未指定的值,这些行为或值需要在实现时做出选择。参见:实现行为,未定义的行为/值,未指定的行为/值。例如:某种编码所允许的最大长度,用字节表示。3.18 实现行为(implementation behavior)外部的观察,外观或行为。参见:实现定义的行为,实现值,未定义的行为,未指定的行为。3.19 实现值(implementation value)和实现相关的值。参见:实现行为,实现定义的行为/值,未定义的行为/值,未指定的行为/值。3.20

17、 数据对象(data object)在数据访问的概念模型中数据处理的单元。注1:一个数据对象可以是一个数据元素或一个实现定义的对象。严格一致的实现能使用和访问的数据对象只能是数据元素。注2:如果一个数据对象进行语义上的定义和限制,就成是一个数据结构。一个数据结构的实例是一个数据集。一个数据集,在某种绑定中进一步定义,限制和表示就是一个数据实例。参见:数据元素,数据实例,数据集,数据结构3.21 数据集(data set)参见数据结构的第二条定义。注:数据集是独立于绑定的(和绑定无关)。3.22 数据结构(data structure)(1) 零个或多个数据元素集合而成的数据类型。(2) 零个或

18、多个数据元素集合而成的实例。注: 在不同的情况下,一个数据结构可能是一个完整的不可分割的单元。在这种情况下,这个数据结构可能是某个更高层数据结构的数据元素。如:一个记录,一个集合,一个序列,一个列表,一个数组。3.23 数据实例(data instance)数据集在某种绑定中被进一步定义,限制和表示。3.24 条件数据元素(conditional data element)在某些上下文中,如果某些条件被满足,那么在数据结构的实例中,某个元素被定义和要求。一个数据元素的“条件”属性属于义务属性。参见:扩展数据元素,必需数据元素,强制(数据元素),可选数据元素。3.25 消费(数据)(consum

19、e (data))读取数据并进行如下处理:找到词汇或编码的边界。其它形式:消费数据,数据消费者,数据消费。参见:解释(数据),产生(数据)。注: 数据在解释前被消费。例1:在下列字符流中: 123.45 PQR Z JKL XXX YYY 一个数据消费者能够识别: 有两个记录,都用标号“R”标识。 第一个“R”记录包含三个记录,分别用标号“A”,“B”,“C”标识。 第二个“R”记录包含两个记录,分别用标号“D”,“E”标识。但是,数据消费者: 不知道标号的意思:. . .是什么意思? 不能确定标号的合法性:“”可以有属性“X”吗? 不能确定记录内容的合法性:在记录“A”中,“123.45”是

20、合法值吗? 可以限制消费的深度:“R”只用往下分析一层就发现标号“D”和“E”,但对“E”的内容只是进行有限的分析(即发现对等的标号),因此标号“F”和“G”不会被发现和分析。因此,一个数据消费者对一个信息结构可以只是进行部分的理解。例2:下面是一个API的例子,它表明了扩展数据在被间接使用时(这种实现仍是严格一致的),数据消费和数据解释之间的区别。/ 这个例子包含两个文件: 头文件std_data.h和一个包含该头文件的严格一/ 致的应用程序/ 下面是所包含的头文件 std_data.hstruct std_data int std_element_1; / 必需元素 void *std_e

21、lement_2; / 可选元素 int ext_element_3; / 扩展元素.;/ 严格一致的应用程序/ 引用标准头文件 (内容在上面列出)#include std_data.hstruct std_data x; / 声明x是 std_data.my_code() struct std_data y,z; / 声明 y 和 z. / 严格一致的代码, 但是扩展元素ext_element_3被复制。 memcpy(&y,&x,sizeof(x); / 把字符串赋给std_element_2. / 把长度赋给 std_element_1. y.std_element_2 = hello

22、there; y.std_element_1 = strlen(y.std_element_2); /严格一致的代码, 但是扩展元素ext_element_3被复制。 memcpy(&z,&y,sizeof(y);/该例子是严格一致的,因为在实现时只解释和生成了标准集合中的元素(即std_element_1和std_element_2)。Memcpy(在内存中复制对象)操作在这个假设的API绑定中相当于消费和产生操作。而直接的元素访问(如y.std_element_1)在该假设的API绑定中是解释和生成操作。3.26 信息库(repository)数据集的集合以及对信息进行存储,索引,查找和提

23、取的数据访问方法。3.27 未定义的行为/值(undefined behavior/value)标准中没有做任何要求的实现行为或实现值参见:实现行为,实现值,实现定义的行为/值,未指定的行为/值。例1:可能的未定义的行为包括,但不局限于: 完全忽略某种情形。 不可预知的结果。例2:可能的未定义的值包括“无穷”,“空”,“非数字”等。3.28 未指定的行为/值(unspecified behavior/value)标准提供两个或更多的可能性,但不做进一步要求的实现行为或实现值。参见:实现行为,实现值,实现定义的行为/值,未定义的行为/值。例1:一个应用程序对算法的选择,该算法用于创建对象的标识符

24、。例2:过程调用的参数入栈的次序。3.29 缩写 API : Application Programming Interface(应用程序接口) ICS: Implementation Conformance Statement (实现的一致性声明) IETF: Internet Engineering Task Force LID: Language Independent Datatypes (语言无关数据类型,即ISO/IEC 11404) DLTSC: Distance Learning Technology Standards (远程教育技术标准委员会) RFC: Request f

25、or Comments SPM: Smallest Permitted Maximum (最低峰值) W3C: World Wide Web Consortium (WWW论坛) XML: eXtensible Markup Language (扩展标记语言)4 应用模型对于本规范,“应用”被认为是以下几种:(1)数据实例,(2)数据阅读器,(3)数据写作器,(4)数据信息库,(5)数据应用程序。这些应用可能使用或遵循一个或多个标准,如编码绑定,API绑定或协议绑定。4.1 数据访问模型在数据访问的概念模型中,应用程序可能包含如下特征:注:在下面,对“应该”和“可以”的陈述应该应用于相关的标准

26、,不是本规范。 数据对象模型(Data Object Model)。一个数据对象应该至少是一个数据元素或一个实现定义的对象。 数据存储模型(Data Storage Model)。数据(包括数据集)可以存储在某个数据对象里,通过标识符来引用。 数据提取模型(Data Retrieval Model)。数据(包括数据集)可以从数据对象里提取,通过标识符来引用。 数据类型模型(Data Typing Model)。如果数据对象是数据元素,那么它应该有数据类型。数据类型可以用来规定值的空间(即值域),数据表示,编码,存储,设计,同其它类型的转换,方法和操作等。XXX标准的数据元素的数据类型使用ISO

27、/IEC 11404的语义和符号。 数据属性模型(Data Attribute Model)。一个数据属性应该是一个实现定义的对象,该对象和某个数据对象相联系。这些属性本身可以作为数据对象加以访问。 数据信息库访问模型(Data Repository Access Model)。标准化的绑定定义对信息库的访问(如果有的话)。 数据信息库安全模型(Data Repository Security Model)。某个标准可以定义一个安全模型。 数据持续模型(Data Persistence Model)。数据对象的生命期应该是实现定义的。 数据浏览模型(Data Navigation Model)

28、。对数据结构的浏览技术在绑定标准中定义。 数据鉴定模型(Data Identification Model)。鉴定,分类,名称空间及相关的技术应该在实现时定义。 数据引用模型(Data Referencing Model)。数据信息库可以创建对某个数据对象的引用,用于以后的调用。命名规则,生命期和引用范围应该在实现时定义。 数据调用模型(Data Dereferencing Model)。数据信息库可以通过提供一个引用来访问数据对象,即调用一个引用。调用的方法在实现时定义。 数据索引模型(Data Indexing Model)。对数据信息库的索引方法应该在实现时定义。注:“索引”这个词在数据

29、信息库系统中被使用,即数据信息库组织记录的方法。 数据查找模型(Data Searching Model)。对数据信息库的查找方法应该在实现时定义。4.2 通用数据操作标准可能支持对数据集的如下数据管理操作: 创建操作(Create Operation)。创建某个信息类型的一个新的实例,如个人信息。 删除操作(Destroy Operation)。把某个信息类型的实例从它的存储环境中删除掉。注:注意区分“从应用程序的内存中删除”,“从临时存储中删除”和“从数据信息库中删除”。 复制操作(Copy Operation)。创建一个具有相同内容的信息类型的新的实例。 转移操作(Move Operat

30、ion)。改变某个信息类型的实例的标签,通过改变信息的存储(隐式的标签改变)或改变标签本身(显式的标签改变)来实现。 标注操作(Label Operation)。创建(或删除)一个名称,该名称由“调用者”指定,把该名称同一个信息实例联系起来。 定位操作(Navigate Operation)。使用一种命名方法(绝对的,相对的,完全的,渐进的)来定位某个信息类型的实例。 查找操作(Search Operation)。找到和查找条件相匹配的信息对象的实例,并把查到的信息通过引用,标注或复制的方式返回。 引用操作(Reference Operation)。创建一个到信息对象实例的句柄。注:一个引用和

31、一个标注的区别在于:“调用者”为一个标注选择名称,而“被调用者”为一个引用选择名称。 调用操作(Dereference Operation)。通过引用操作创建的句柄来访问一个信息类型的实例。 聚合操作(Aggregation Operation)。把一个或多个信息类型的几个实例组合到一个容器中。 分解操作(Decomposition Operation)。从一个容器中提取信息类型的实例。绑定标准定义上述操作是否存在以及使用上述操作的方法。4.3 和具体应用相关的数据操作的例子标准可能支持和具体应用相关的数据操作。 累积操作(Accumulation Operations)。数据集可以被积累,被

32、集合在一起或被分析。例如:满足条件X的记录的总和。 时间压缩和扩展操作(Time Compression and Expansion Operations.)。对于时间连续的数据,数据集可以用不同的粒度来记录。时间压缩操作把记录集合简化为粗粒度。时间扩展操作通过插值来创建细粒度的记录。 排序-合并操作(Sort-Merge Operations)。基于规则的排序和合并。例如:通过某一特定数据元素的字母顺序来排列记录。绑定标准定义上述操作是否存在以及使用上述操作的方法。5 一致性模型本指导规范描述了数据模型标准及它们的绑定标准中的扩展技术和一致性技术。一致性模型描述了别的标准应如何处理一致性问题

33、。本指导规范是用来提供信息的不存在对本指导规范的一致性要求。在本指导规范中,“应该”应被解释成对某一实现的要求,该实现遵循某一标准(是某个相关的标准,不是本文档)。“不应该”应被解释成在某一标准中禁止的东西。如果“应该”或“不应该”的要求被违反,那么该行为就没有定义。依据一致性(相对于某个标准)和数据集的结构有一定的关系,和系统的行为也有一定的关系。也就是说,一致性同时包含行为的和非行为的成分,两者都是很重要的。“行为”这个词在一般的意义下使用,例如,一个数据集不表现出“行为”,但对数据集某种实现的存储,提取,生成和解释都表现出“行为”即使在数据集的上下文中,对“未定义”,“实现定义”和“未指

34、定”的行为的概念都给出了定义。5.1 一致性的分层模型为了支持用户,供应商,团体组织和其他人在技术上和工业上的要求,至少需要两个层次上的一致性。如果某个标准只规定了一个最小的特征集合,那它可能不能满足工业和互操作的需要,譬如特征太少而不能满足技术需求和商业需求。如果一个标准规定了太多的特征,那么实现起来就会太复杂或代价太高,因此阻碍标准的采纳。在这一部分中,“参与者”这个词在如下的上下文中使用:“在互操作场景下的参与者”。互操作场景包括任何一个“应用”(数据实例,数据阅读器,数据写作器等)和任何数据交换标准(如编码绑定,API绑定,协议绑定)。一个“参与者”是互操作场景中的任何一个“应用”。“

35、一致性的分层”允许多个程度的实现方法和互操作性。有些标准提供了一致性的N个层次,这样就要求确定和测试N*N个互操作场景。本指导规范不处理N个一致性层次的样例。本指导规范处理只有一个一致性层次的标准,但允许该标准以外的某些扩展能力。为了充分利用这些扩展特性,互操作场景的参与者必须做好事先的协定,如双边协议,规范或其它的标准。因此,对于参与者来说下面有一个为真:1 只使用标准规定的特征。不使用任何扩展。这样的参与者被称为“严格一致”。结论:能够达到互操作因为参与者只使用了标准所规定的最少特征。2 使用了标准规定的特征。也使用了一些基于双方协议的扩展(如双边协议,规范或其它的标准)。这样的参与者称为

36、“一致”。结论:能够获得互操作因为参与者在扩展的特定集合上达成一致。3 使用了标准规定的特征。也使用了一些扩展,但协议是单方面的。这样的参与者是“一致”的,但也许不能和其它的参与者达到互操作,因为在特定扩展的使用上没有在事先达成一致。结论:互操作没有保证。5.2 只规定“一致”够吗一个标准只需规定“一致”,而不需要区分“严格一致”,这样可行吗? 回答是否定的。因为某种一致的实现希望能和其它所有的一致性实现达到互操作,而不只是一个实现的子集。这种特征就是“严格一致”。供应商想要这个特征因为它使他们的产品更受欢迎。用户也喜欢它是因为它降低了集成和维护的风险。因此,“一致”和“严格一致”都是需要的。

37、5.3 只规定“严格一致”够吗一个标准只规定最小的需求,对标准的扩展就认为是不一致,这样可行吗?回答是否定的。因为消费者和供应商需要具有扩展能力的系统它们不希望因为增加了几个特征就失去了“一致”的保障。因此,“一致”和“严格一致”都是需要的。5.4 两个都要规定“严格一致”的实现和“一致”的实现之间的差别是有必要的,它可以同时满足互操作性和扩展性的需求。标准应该对这两个都进行规定。本指导规范描述了在制定规范时用于提高互操作性的技术。扩展的要求由用户,供应商,组织团体和工业界的需求产生,它们(1)没有被相关的标准直接定义。(2)在相关标准之外定义和达成一致。(3)作为相关标准将来版本的试用品。6

38、 数据元素的强制属性数据元素有四种强制属性:必需,可选,条件和扩展。强制属性和数据结构的合法性有关。6.1 必需数据元素必需数据元素对于合法的数据结构来讲是必须的。所有的数据集(和数据实例)都必须包含这些元素。所有的数据应用程序都必须支持这些元素。如果一个实现不支持或不包含一个或多个必需数据元素,那么它就是一个不一致的实现。6.2 可选数据元素可选数据元素对于数据结构的合法性来说是可选的,但不是必须的。一个数据集(和数据实例)可以包含这些数据元素,但不是必须的。因为所有的数据信息库和数据阅读器都必须支持合法的数据集,所以数据信息库和数据阅读器都必须支持可选数据元素。这儿可能会有些混淆,因为“可

39、选”对数据信息库和数据阅读来讲并不是可选的强制属性“可选”适用于数据结构的合法性(“可选”对于数据结构的实例来讲是可选)。对于数据写作器要求能生成和产生每个数据实例的可选数据元素。如果一个实现不支持一个或多个可选数据元素,那么它是一个不一致的实现。如果一个实现包含或支持这些数据元素,那么它们的使用方法在相关的标准中被定义。如果一个实现包含或支持可选数据元素,但包括和支持的方法和相关标准不一致,那么它是一个不一致的实现。“可选”并不是说一个实现可以随意地实现数据元素,如果某个数据元素被实现,那么对它的要求必须在相应的标准中被规定。6.3 条件数据元素条件数据元素是必需的,但它们的必需是建立在某种

40、条件之上的。每个条件数据元素都有各自的一组条件。如果条件被满足,那么该数据元素对于数据结构的合法性来说是必需的。因此,如果条件满足,数据集(和数据元素)必须包含这些元素。和可选数据元素一样,所有的数据信息库和数据阅读器都必须支持所有的条件元素。同理,一个数据写作器必须能够生成和产生每个数据实例的条件数据元素。如果一个实现不支持一个或多个条件数据元素,那么它是一个不一致的实现。如果一个实现包含或支持条件数据元素,但包含和支持的方法和相应标准不一致,那么它是一个不一致和实现。6.4 扩展数据元素对于严格一致的实现来说,扩展数据元素是不允许的。在一致的实现中,扩展数据元素是允许的,但要求该实现自身能

41、支持每个扩展的数据元素,即(1)实现允许使用指定的扩展数据元素。(2)数据交换的参与者允许使用特定的数据元素。(3)其它的扩展数据元素不能使用。对于支持扩展数据元素的一致的实现来说,这些元素可能分别有它们各自的强制属性,例如,可能有必需扩展数据元素,可选扩展数据元素和条件扩展数据元素。在扩展数据元素的上下文中,这些强制属性决定了数据结构的合法性,例如,一个可选的扩展数据元素(1)对于数据结构的合法性来讲是可选的但并不是必须的,(2)对于支持这个扩展数据元素的一致的实现也一样。注:必需扩展数据元素会引起互操作上的问题因为一个必需扩展数据元素(1)对于数据结构的合法性是必须的,(2)对于支持这个扩

42、展数据元素的一致性的实现也是必须的。也就是说,(1)只有支持这个扩展数据元素的实现才能达到互操作,(2)没有严格一致的实现能进行互操作因为扩展特征对于互操作性来说是必须的。没有通用的技术或方法既能支持扩展数据元素或扩展特征又能完全支持语义的互操作性。只存在特定的技术和方法用于支持扩展的数据元素。在环境以外(不支持的环境)使用扩展数据元素会产生未定义的行为,它们可能是: 恰当的,如忽略一个不能识别的数据元素如果它是不重要的。 不恰当的,如忽略一个不能识别的数据元素如果它是重要的,如安全分类信息。 无害的,如错误信息。 破坏性的,如错误信息。 可预测的,如程序中止,非法退出,或无限挂起等等。 不可

43、预测的,如程序中止,非法退出,或无限挂起等等。没有正确的通用的方法来处理未定义的行为。任何处理未定义行为的特定的方法都可能是想要的,不想要的或两者都是。某些绑定“放宽”了对不能识别的数据元素的处理。一般的,扩展数据元素会产生未定义的行为,但某些绑定把这些要求“放宽”到实现定义的行为甚至忽略不能识别的扩展数据元素这两种“放宽”的处理方法(实现定义的行为,忽略不能识别的扩展数据元素)都具有更小的破坏性。扩展数据元素既是一个强制特征(数据建模),又是一致性层次特征(严格一致和一致)。6.5 必需和可选一些数据元素被定义为必需数据元素而另一些被定义为可选数据元素。“必需”和“可选”的概念可能会使想要遵

44、循某个标准的供应商,实现者,应用程序或信息库产生混淆。一些应用程序的供应商认为“可选”对于应用程序来说也是可选的,但这是不对的。下面是对“必需”和“可选”,“数据实例”和“应用”的阐述:某人在政府机关填写表格。表格上的某些地方可能写着“必填”(如名称和地址)这些就是必需数据元素。有些地方可能写着“可选”或根本就没有做标记(如家庭电话号码)这些就是可选数据元素。当表格交到机关的事务员手里时,如果某些“必填”的区域没有填好或是填的不正确,事务员会拒绝接收表格表格是不合格的因为一些必需的数据元素没有填好,即数据实例是不一致的。至于“可选”项,如电话号码,事务员可以在没有电话号码的情况下接受表格,但结果是无益的(如果给出电话号码,联系就会方便)表格是合格的因为数据实例是一致的。虽然表格中的某些项是必填的,某些项是可选的,但是输入数据的事务员,数据信息库和计算机系统必须支持所

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1