地理信息 XML模式实现 第1部分:编码规则_第1页
地理信息 XML模式实现 第1部分:编码规则_第2页
地理信息 XML模式实现 第1部分:编码规则_第3页
地理信息 XML模式实现 第1部分:编码规则_第4页
地理信息 XML模式实现 第1部分:编码规则_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ICS07.040

CCSA75

中华人民共和国国家标准

GB/TXXXXX—XXXX

地理信息XML模式实现

第1部分:编码规则

Geographicinformation—XMLschemaimplementation—Part1Encodingrules

(ISO/TS19139-1:2019,IDT)

(征求意见稿)

本稿完成日期:2021年8月6日

XXXX-XX-XX发布XXXX-XX-XX实施

GB/TXXXXX—XXXX

目录

前言.......................................................................................................................................III

引言......................................................................................................................................IV

1范围..............................................................................................................................1

2规范性引用文件............................................................................................................1

3术语与定义...................................................................................................................1

4符号与缩略语...............................................................................................................2

4.1缩略语................................................................................................................................2

4.2名称空间的缩写.................................................................................................................3

4.3UML模型构造型................................................................................................................3

5一致性..........................................................................................................................4

6对编码的要求...............................................................................................................4

6.1要求简述.............................................................................................................................4

6.2基于规则的编码.................................................................................................................5

6.3质量....................................................................................................................................5

6.4WEB实现.............................................................................................................................5

6.5使用外部XML实现...........................................................................................................5

6.6多态....................................................................................................................................5

7编码规则.......................................................................................................................6

7.1编码规则简述.....................................................................................................................6

7.2默认编码.............................................................................................................................6

7.3特殊情况的编码方法.......................................................................................................11

7.4XML名称空间包的编码..................................................................................................29

7.5XML模式包的编码..........................................................................................................30

8其他编码.....................................................................................................................32

9面向模块化和重用性的编码.......................................................................................32

I

GB/TXXXXX—XXXX

9.1UML包和XML名称空间.................................................................................................32

9.2针对XML实现的UML模型............................................................................................32

9.3面向XML包解耦的实现方法..........................................................................................33

附录A(规范性)抽象测试套件.................................................................................................38

附录B(资料性)后向兼容......................................................................................................39

参考文献.....................................................................................................................................40

II

GB/TXXXXX—XXXX

引言

ISO19115-1以及其他标准(如GB/T28585—2012地理信息要素编目方法(ISO19110,

IDT)、GB/T25530—2010地理信息服务(ISO19119,IDT)和ISO19157)文本中对描述

数字地理数据的元数据的重要性进行了详细阐述。这些标准为描述数字地理数据提供了结构,

定义了元数据要素,建立了通用的元数据术语、定义以及扩展程序。但这些标准没有规定如

何对元数据进行编码。

为有利于在相近领域内跨标准对实现过程进行标准化,本文件提供了一组明确的规则,

采用XML语言对ISO元数据标准进行编码。通过提供一套共同的规范来描述、检验和交换

元数据,形成的XML编码有利于增强互操作性。这些规则可以与(GB/T23708—2009,地

理信息地理标记语言(ISO19136:2007,IDT)附录E(用于将应用模式编码为XML/GML)

的规则并行使用。不同之处在于那些规则用于表示地理要素,而本文件的规则用于表示那些

数据的元数据。

ISO19118描述了基于UML模式生成编码规则的要求,也介绍了基于XML的编码规则。

本文件采用ISO19118定义的编码规则,同时考虑其他元数据标准从UML模型衍生XML模

式的需求,对ISO19118的编码规则进行了细化。

这些规则首先用于创建ISO/TS19115-3,作为ISO19115-1的XML编码,即ISO/TS

19115-3与本文件一致。同时本文件也用于创建ISO/TS19157-2,作为ISO19157的编码。

本文件的标准化目标是元数据的XML实现,它包括地理信息系列其他标准,也包括其

他组织制定的相关模型。

IV

GB/TXXXXX—XXXX

地理信息XML模式实现第1部分:编码规则

1范围

本文件针对编码规则特定类型定义了基于XML的编码规则,用于描述地理信息资源。

编码规则支持国家地理信息系列标准普遍采用的UML模型及其所使用的UML专用标准。这

些编码规则使用XML作为输出数据结构的编码。

本文件给出的编码规则不适用于对地理要素的UML应用模式进行编码(相应规则见

GB/T23708—2009,地理信息地理标记语言,<ISO19136:2007,IDT>)。

2规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期

的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括

所有的修改单)适用于本文件。

GB/T23707—2009地理信息空间模式(ISO19107:2003,IDT)

GB/T23708—2009地理信息地理标记语言(ISO19136:2007,IDT)

GB/T28585—2012地理信息要素编目方法(ISO19110:2005,IDT)

GB/T35647—2017地理信息概念模式语言(ISO19103:2015,IDT)

ISO19118,地理信息编码(Geographicinformation—Encoding)

W3CXML名称,NamespacesinXML名称空间.W3C推荐(W3CXMLName,

NamespacesinXML.W3CRecommendation)

W3CXML模式-1,XML模式第一部分:结构.W3C推荐(W3CXMLSchema-1,XML

SchemaPart1:Structures.W3CRecommendation)

W3CXML模式-2,XML模式第二部分:数据类型.W3C推荐(W3CXMLSchema-2,

XMLSchemaPart2:Datatypes.W3CRecommendation)

W3CXML,可扩展标记语言(XML)1.0.W3C推荐(W3CXML,ExtensibleMarkup

Language(XML)1.0,W3CRecommendation)

W3CX链接,XML链接语言(XLink)版本1.0.W3C推荐(W3CXLink,XMLLinking

Language(XLink)Version1.0.W3CRecommendation)

3术语与定义

下列术语与定义适用于本文件。

ISO与IEC维护并用于标准化工作的术语数据库地址分别是:

—ISO在线浏览平台,见/obp

—IEC电子百科(IECElectropedia),见/

3.1

名称空间namespace

1

GB/TXXXXX—XXXX

名称集,通过URI引用标识,来定义在XML文档中使用的要素和属性名称

[来源:W3CXML]

3.2

包package

<UML>将要素分组的一种通用机制。

例如:标识信息;元数据实体集信息;约束信息等都是包。

[来源:GB/T35647—2017,4.27-修改:示例已添加。]

3.3

多态polymorphism

在不同上下文中可以被赋予不同含义或用途的特性,允许实体诸如变量、函数或对象具

有一个以上的形态。

注1:多态具有多个不同类型。

[来源:/]

3.4

实现realization

<UML>中两组模型要素间的专用抽象关系,一个代表规范(供给方),另一个代表后者

的实现(客户方)。

注1:实现意味着继承行为,而不继承结构。

[来源:GB/T35647—2017,4.29]

4符号与缩略语

4.1缩略语

UML统一建模语言(UnifiedModelingLanguage)

URI统一资源标识符(UniformResourceIdentifier)

XCTXML类的类型(XMLClassType)

XCPTXML类的属性类型(XMLClassPropertyType)

XCGEXML类的全局要素(XMLClassGlobalElement)

XML可扩展标记语言(ExtensibleMarkupLanguage)

XSDXML模式定义(XMLSchemaDefinition)

2

GB/TXXXXX—XXXX

4.2名称空间的缩写

表1给出了本文件使用的外部名称空间。第一列是用于说明名称空间中各个要素的通用

名称空间前缀。第二列是名称空间前缀的英文说明。第三列是具体名称空间的URI。这些URI

并不一定对应各个模式的位置。

表1本文件用到的外部名称空间

名称空间前缀名称空间前缀英文说明具体名称空间的URI

gmlGeographyMarkupLanguage(地理标/gml/3.2

识语言)

xlinkXMLLinkingLanguage(XML链接语/1999/xlink

言)

xsW3CXMLbaseschemas(W3CXML/2001/XMLSchema

基本模式)

4.3UML模型构造型

4.3.1UML模型构造型简述

UML构造型是已有UML概念的扩展机制。除已定义的用于描述各类地理资源的构造型

外,本文件定义了若干必要的构造型,以便形成基于规则的XML模式编码方法。

本文件第7条所述的UML图中的要素具体说明了XML实现的各种构造型。下面各节分

述这些构造型,它们由表示XML要素或XML类型、UML属性、UML链接(实现或依赖)

和UML包的类承载。

4.3.2类的构造型

本文件中使用了下列类的构造型:

a)<<xs:choice>>:该类表示一种编码为XML选择块的实现类型。类的每一个属性都作

为选择的要素实现。

b)<<xs:complexType>>:该类表示一个编码为XML复杂类型的实现类型。

c)<<xs:simpleType>>:该类表示一个编码为XML简单类型的实现类型。

d)<<xs:simpleContent>>:该类表示一个编码为带有简单内容的XML复杂类型的实现类

型。

4.3.3属性的构造型

本文件中使用了下列属性的构造型:

a)<<xs:attribute>>:该属性编码为XML属性。

b)<<xs:attributeGroup>>:该属性编码为XML属性组(attributeGroup).

c)<<xs:element>>:该属性编码为具有名称(name)和类型(type)属性的XML要素

(<xs:elementname=”propertyName”type=”propertyType”/>)

3

GB/TXXXXX—XXXX

4.3.4链接的构造型

本文件中使用了下列链接的构造型:

a)<<XCT>>:(通过实现关系体现)待实现抽象概念的XCT由指定的外部实现替代。

b)<<XCGE>>:(通过实现关系体现)待实现抽象概念的XCGE由指定的外部实现替代。

c)<<XCPT>>:(通过实现关系体现)待实现抽象概念的XCPT由指定的外部实现替代。

d)<<implement>>:(通过依赖关系体现)引用源表示一个实现了目标中定义的抽象概念

的XML模式。

e)<<include>>:(通过依赖关系体现)引用源和目标表示XML模式。引用源包含

(<xs:include…/>)目标。

f)<<import>>:(通过依赖关系体现)引用源和目标表示同一名称空间中XML对象的若

干个集合。引用源导入(<xs:import…/>)目标。

4.3.5包的构造型

本文件中使用了下列包的构造型:

a)<<xmlSchema>>:该包代表一个XML模式。

b)<<xmlNamespace>>:该包代表同一名称空间中的一组XML对象。

5一致性

作为测试的框架、概念以及方法,旨在申明一致性需要达到的标准,一致性,都在ISO

19105中做出了规定。一个地理资源的XML模式实现只有通过了附录A规定的测试模块,

才能声明与本文件一致。

6对编码的要求

6.1要求简述

各类地理资源通常根据不同标准和规范进行规定,例如ISO19115-1规定的元数据,GB/T

28585-2012规定的要素编目。各类地理资源表示为多个概念模式,组成了包含一个或多个

UML类的一组UML包。这些概念模式为各类相关地理资源提供了一个与编码无关的视角。

XML为构建信息交换提供了多种选择。按照ISO19118的规定,本文件第7条定义了适

用于各类地理资源概念模式,且更细化的XML模式编码规则。

即便降低ISO19118和本文件定义的编码规则的限制情况下,仍然有创建特定XML模

式选择。

本文件提供了建立与地理资源实现一致的XML模式所需的基础,体现为一组将地理资

源概念模式转化为标准的XML模式的标准化编码规则。

本文件不包含XML名称空间的细节。名称空间是一个名称集合,可以用于XML文档中

4

GB/TXXXXX—XXXX

作为要素或属性的名称。名称空间标识符用于识别某一特定模式,一个名称空间标识符就是

一个URI。URI在读取、编写和讨论中使用时通常很麻烦,因此本文件在指代某一名称空间

的内容时,将使用其通用名称空间前缀。

在说明编码细节前,理解为什么要使用一个编码规则非常重要。理解了规则,就可以厘

清其作用、制约以及最佳用法。制定这些规则时考虑的一些重要目标包括与其他ISO19100

系列国际标准之间的互操纵性、可预测性、可扩展性和可用性。关于这些目标将在6.2至6.6

中详细说明。

6.2基于规则的编码

本文件定义了由UML模型构建的基于规则的编码,例如,ISO19118需要的ISO19100

系列国际标准中的那些UML模型。基于规则的编码方法可以达到三个重要目标:

第一,得到的XML模式直接基于概念模型,从而增加了互操作性;

第二,得到的模式是可预测的,因为任何类、属性、关联等都和相应同类型的UML要

素编码一样进行编码;

第三,基于这些规则可以自动或半自动生成XML模式。

6.3质量

本文件所指的XML模式质量意指概念模式的所有要素都是一致实现的,也意味着用户

可以使用相应地理资源的概念模式直接生成和/或理解XML实例文档的内容。此外,实现者

可以通过了解概念模式和编码规则来确定地理资源的XML模式的实现。

质量的另一方面是完整性,本文件支持对地理资源的整个概念模式进行编码,不需要考

虑用途或应用。

6.4Web实现

6.1中提到的一个目标是可用性。可用性,由于它涉及到地理资源的设计,侧重于地理资

源的交换,因此可以理解其多发生在Web的网络环境下。虽然对于生成非网络传输的实例文

档并没有制约,但在实际设计中都有意促进基于互联网和web的地理资源传输模式。

6.5使用外部XML实现

另一个有利于互操作和可用性的设计原则是对已有XML模式的重用。如果已经存在对

ISO19100系列中与地理元数据相关的部分进行编码的XML模式标准,则应整合该XML模

式标准。若能直接使用外部XML模式,则互操作性将得到强化,且也可直接使用已有的软

件工具,处理符合这些外部XML模式实例文档。此外,外部模式若设计合理,将会比根据

系列编码规则生成的XML模式更有效率,有助于达到可用性的目标。

尽管使用已有的XML模式标准有很多优点,但建议各外部XML模式不应违反本文件中

的主要设计原则。相关细节和实例参见7.3.8。

6.6多态

本文件3.3中给出了多态的定义。一般而言,多态意味着表现多种形态的能力,如属性

的实现,可使用他已有的数据类型,也可以使用其任何衍生类。多态使得实现者能够在特性

5

GB/TXXXXX—XXXX

的名称空间内扩展更通用的(properties)形式,同时可为外部组织用户提供可用和可理解的

实例文档。多态主要从7.3节描述的特性类型编码衍生而来。

7编码规则

7.1编码规则简述

将UML模式转换为XML模式的通用规则说明如下,这些规则与ISO19118定义的规则

是一致的。某些情况下,ISO19118允许通过多种方法实现UML模式转换为XML模式。本

文件定义的规则,目的就是明确哪种方法是符合本文件要求的。本文件未涉及各个类的背景

以及数据交换(这里指元数据交换)中这些类如何发挥作用,因为在ISO19118中对此有详

细描述。本文件以ISO19118中的编码规则为基础,熟悉该文件有助于对第7章内容的理解。

注:编码规则的描述方式并不影响XML模式生成的最佳方式的选择。

7.2默认编码

7.2.1XML类的类型(XCT)

XML类的类型(XCT)简述

类是UML中的基本建模概念(ISO19118),因此基本编码规则以UML类的编码为重点,

并在此基础上进一步扩展。一个类由一或多个特性组成。回顾ISO19118,属性可以表示属

性、关联、聚合或组合(ISO19118),这一点很重要。例如,图1中,类(Class1)有3个

属性:(attr1),(attr2)和(role1),为了按照XML模式编码,需要理解UML属性、关联、

聚合或组合所对应的属性之间是没有区别的。

ISO19118也描述了使用标识符(ids)和域唯一标识符(DUIDs)作为XML模式中的标

识符的需求。在gco名称空间中的baseTypes2014.xsd中有一个特殊的XML模式类型:

gco:AbstractObject_Type,用于提供必要的标识符,这是默认XML类的类型编码的组成部分。

XCT规则

作为一个实际例子,图1所示的UML根据以下要求编码为XML。

图1--实例

6

GB/TXXXXX—XXXX

要求:/req/default/XCT

UML类应作为一个XML复杂类型(xs:complexType)编码为XML模式,该类型引用

为XML类的类型(XCT)

要求:/req/default/XCT-name

每一个XCT应有一个名称属性,其取值为类的名称,并带上“_Type”作为后缀。

实例1:建立图1所示的类Class1的第1)步为:

<xs:complexTypename="Class1_Type">

(...)

</xs:complexType>

要求:/req/default/XCT-complex-content

所有遵循默认编码规则的UML类应具有复杂内容(complexContent),并提供相应的能

力,xs:complexType要素包含一个xs:complexContent要素。

实例2:转换图1所示的类Class1的第2)步为:

<xs:complexTypename="Class1_Type">

<xs:complexContent>

(...)

</xs:complexContent>

</xs:complexType>

要求:/req/default/XCT-extend-abstract

所有遵循默认编码规则的UML类应扩展gco:AbstractObject_Type,扩展方法为:添加一

个等于gco:AbstractObject_Type的base属性的xs:extension要素。

实例3:转换图1所示的类Class1的第3)步为:

<xs:complexTypename="Class1_Type">

<xs:complexContent>

<xs:extensionbase="gco:AbstractObject_Type">

(...)

</xs:extension>

</xs:complexcontent>

</xs:complexType>

要求:/req/default/XCT-sequence

所有遵循默认编码规则的UML类应有一个包含类的所有特性的序列,即添加一个

xs:sequence要素,其中针对类的每一个特性包含xs:element要素。

要求:/req/default/XCT-properties

xs:element要素的属性应包括:

a)name属性,应等同于特性的名称;

b)type属性,应等同于UML类指定的相应XCPT的特性类型名称,7.2.3解释了在默认

情况下,该名称为类名称加上"_PropertyType",7.3.8规定了该XCPT命名规则的唯一

7

GB/TXXXXX—XXXX

例外情况。当XCPT名称用作Type属性值时,应加上相应的名称空间前缀。

c)minOccurs和maxOccurs属性,其取值在ISO19118:2011表C.5中进行了说明。此外,

如果类的某个特性碰巧是使用了“set”或”sequence”结构的属性,则可选属性的

minOccurs属性值应为0,必选属性的minOccurs属性值应为1,maxOccurs属性值应

为"unbounded"。

实例4:转换图1所示的类Class1的第4)步为:

<xs:complexTypename="Class1_Type">

<xs:complexContent>

<xs:extensionbase="gco:AbstractObject_Type">

<xs:sequence>

<xs:elementname="attr1"type="ns1:typeAttr1_PropertyType"/>

<xs:elementname="attr2"type="ns1:typeAttr2_PropertyType"minOccurs="0"/>

<xs:elementname="role1"type="ns1:Class2_PropertyType"minOccurs="1"

maxOccurs="unbounded"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

注:本文件的所有实例中都有一个名称空间前缀“ns1”,并不都出现在UML中。这个

虚构的名称空间用来说明何时应该存在一个名称空间前缀,但它不对应于本文件中定义的任

何名称空间或者相关前缀。

要求:/req/default/XCT-properties-sequence

xs:sequence中的xs:elements要素的顺序应与数据字典载明的概念模式中的相应特性条目

的顺序一致。

该要求适用于默认编码,也适用于XCTs所有特殊情况编码。

XCT规则实例

对如下UML实例(来自ISO19157)采用上述的XCT规则,XML编码结果如下所示。

图2--取自ISO19157:2013中10.1的StandAloneQualityReportUML图

对应图2的XCT为:

<xs:complexTypename="DQ_StandaloneQualityReportInformation_Type">

<xs:complexContent>

<xs:extensionbase="gco:AbstractObject_Type">

<xs:sequence>

<xs:elementname="reportReference"type="mcc:Abstract_Citation_PropertyType"/>

<xs:elementname="abstract"type="gco:CharacterString_PropertyType"/>

<xs:elementname="elementReport"type="mdq:AbstractDQ_Element_PropertyType"

maxOccurs="unbounded"minOccurs="0"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

8

GB/TXXXXX—XXXX

7.2.2XML类全局要素(XCGE)

XML类全局要素(XCGE)简述

定义全局要素是为了在模式的其他部分直接引用。

XCGE规则

要求:/req/default/XCGE

UML类应编码为全局要素,其name属性应等于UML类的名称,type属性应等于7.2.1

说明的XCT的名称(含相应名称空间前缀)。定义全局要素后,就作为XML的类全局要素

(XCGE)进行引用。

实例1:图1中类Class1的XCGE为:

<!--....................................................................................-->

<xs:elementname="Class1"type="ns1:Class1_Type"/>

<!--....................................................................................-->

XCGE实例

实例2:图2所示的DQ_DataQuality对应的XCGE为:

<!--.......................................................................................................-->

<xs:elementname="DQ_StandaloneQualityReportInformation"

substitutionGroup="gco:AbstractObject"

type="mdq:DQ_StandaloneQualityReportInformation_Type"/>

<!--......................................................................................................-->

7.2.3XML类特性类型(XCPT)

XML类特性类型(XCPT)简述

XCPT规则是用于支持7.2.1描述的特性概念和支持给定类成为一组容器类的特性类型的

的可能性。

XCPT规则

要求:/req/default/XCPT

为支持7.2.1描述的属性概念以及给定类成为一组容器类的特性类型的可能性,每个

UML类也应被定义为另一个XSD即xs:complexType,即可作为XML类属性类型(XCPT)

进行引用。需要注意的是特性的限制是通过其数据类型的XCPT进行管理的。XCPT默认允

许既可以基于值(byValue)也可以基于引用(byRef)的方式进行限制。下面列出按默认类

对XCPT编码的具体步骤:

要求:/req/default/XCPT-name

a)为区分XCPTs和XCTs,xs:complexType要素应有一个name属性,取值为类名称加

上后缀“_PropertyType”。

9

GB/TXXXXX—XXXX

实例1:图1的类Class1编码为XCPT的第1)步为:

<xs:complexTypename="Class1_PropertyType">

(...)

</xs:complextype>

要求:/req/default/XCPT-sequence

b)为支持6.6描述的多态的需求,需提供“基于值(byValue)”的控制,因此XCPT

应有一个可选的xs:sequence要素,其中包含一个带有ref属性等于UML的XCT的

xs:element要素。xs:sequence要素是可选的,目的是允许该特性可以通过“基于引用

(byRef)”实现。

实例2:图1的类Class1编码为XCPT的第2)步为:

<xs:complexTypename="Class1_PropertyType">

<xs:sequenceminOccurs="0">

<xs:elementref="ns1:Class1"/>

</xs:sequence>

</xs:complexType>

要求:/req/default/XCPT-reference

c)为提供“基于引用(byRef)”的控制,XCPT应具有一个ref属性等于

"gco:ObjectReference"的xs:attributeGroup。

实例3:构建图1所示的Class1类XCPT的步骤3)是:

<xs:complexTypename="Class1_PropertyType">

<xs:sequenceminOccurs="0">

<xs:elementref="ns1:Class1"/>

</xs:sequence>

<xs:attributeGroupref="gco:ObjectReference"/>

</xs:complexType>

要求/req/default/XCPT-nilReason

d)为需要时提供Null值的解释,XCPT应有一个xs:attribute要素,带有一个取值为

“gco:nilReason”的ref属性。gco:nilReason的XML属性管理XML实例文档中的空

值。在特性层,该属性(解释为何无法提供实际值)允许代替实际值。对应的XML模

式如下所示:

XMLattribute<xs:attributename=”nilReason"type=“gml:NilReasonType"/>

gml:NilReasonType在GB/T23708-2009中有完整的描述,它是一种枚举XML类型,允

许如下值:“不适用的”、“缺失的”、“模板的”、“未知的”和“无值的”。

实例4:图1的类Class1编码为XCPT的第4)步为:

<xs:complexTypename="Class1_PropertyType">

<xs:sequenceminOccurs="0">

<xs:elementref="ns1:Class1"/>

</xs:sequence>

<xs:attributeGroupref="gco:ObjectReference"/>

<xs:attributeref=”gco:nilReason”>

</xs:complexType>

10

GB/TXXXXX—XXXX

XCPT实例

实例5:对应图2所示DQ_StandAloneReportInformation的实例XCPT:

<xs:complexTypename="DQ_StandaloneQualityReportInformation_PropertyType">

<xs:sequenceminOccurs="0">

<xs:elementref="mdq:DQ_StandaloneQualityReportInformation"/>

</xs:sequence>

<xs:attributeGroupref="gco:ObjectReference"/>

<xs:attributeref="gco:nilReason"/>

</xs:complexType>

注意在XCPT中没有专门的制约来约束UML中定义的特性的控制信息。UML控制指令

必须通过应用与XML元数据的外部测试来实现。这一问题将在附录A中详述。

7.3特殊情况的编码方法

7.3.1特殊情况的编码方法简述

尽管7.2中描述的编码机制涵盖了ISO19100系列国际标准中的大部分UML类,但在某

些特殊情况下,应用了不同的编码规则。这些例外一般是因为应用于类的特殊构造型而产生

的。没有构造型的类或构造型为(Type)或(DataType)的类,都将遵循默认的编码规则。

其他类将遵循7.3.2至7.3.6给出的相应编码规则。

本部分给出了一些XCT特定编码案例,其中XCT为(xs:simpleType),而不是7.2规定

的(xs:complexType)。XCT为(simple)类型时,相应的XCPT就不包含描述的“基

于引用”的能力。简单类型中不允许使用引用,避免了如果所有特性类型都通过引用实现可

能带来的潜在复杂性。

7.3.2抽象类

抽象类简述

建议将概念模型中的抽象类清晰的标识出来,这样实现者可明确这些类型不能有其他要

素。

抽象类规则

抽象类根据默认规则和以下要求编码:

图3--抽象类的实例UML

要求:/req/abstract/XCT-name

单词'Abstract'应作为相关XCT抽象类名称的前缀。

11

GB/TXXXXX—XXXX

要求:/req/abstract/XCT-abstract

应在XCT的(xs:complexType)要素中添加abstract属性,取值为"true"。

实例1:对应图3中的AbsClass1的XCT为:

<xs:complexTypename="AbstractAbsClass1_Type"abstract="true">

<xs:complexContent>

<xs:extensionbase="gco:AbstractObject_Type">

<xs:sequence>

<xs:elementname="attrX"type="ns1:typeAttrX_PropertyType"/>

<xs:elementname="attrY"type="ns1:typeAttrY_PropertyType"minOccurs="0"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

要求:/req/abstract/XCGE-name

单词'Abstract'应用作相关XCGE抽象类名称的前缀。

要求:/req/abstract/XCGE-abstract

应在XCGE的(xs:element)要素中添加(abstract)属性,取值为"true"。

实例2:对应图3中的AbsClass1的XCGE为:

<xs:elementname="AbstractAbsClass1"type="ns1:AbstractAbsClass1_Type"abstract="true"/>

要求:/req/abstract/XCPT-ref

相应XCPT中(xs:element)的(ref)属性中,应使用带有前缀的类名称(注意XCPT

的name属性不使用‘Abstract’作为前缀,因为XML模式中特性类型不能为抽象)。

实例3:对应图3中的AbsClass1的XCPT为:

<xs:complexTypename="AbsClass1_PropertyType">

<xs:sequenceminOccurs="0">

<xs:elementref="ns1:AbstractAbsClass1"/>

</xs:sequence>

<xs:attributeGroupref="gco:ObjectReference"/>

<xs:attributeref="gco:nilReason"/>

</xs:complexType>

抽象类实例

针对下面的UML实例(源自ISO19115-1)应用上述规则,得到以下XML结果:

图4--ISO19115-1中抽象类EX_GeographicExtent的UML

对应EX_GeographicExtent的XCT:

<xs:complexTypename="AbstractEX_GeographicExtent_Type"abstract="true">

<xs:complexContent>

12

GB/TXXXXX—XXXX

<xs:extensionbase="gco:AbstractObject_Type">

<xs:sequence>

<xs:elementname="extentTypeCode"type="gco:Boolean_PropertyType"minOccurs="0"/>

</xs:sequence>

</xs:extension>

</xs:complexContent>

</xs:complexType>

对应EX_GeographicExtent的XCGE:

<xs:elementname="AbstractEX_GeographicExtent"type="gex:AbstractEX_GeographicExtent_Type"

abstract="true"/>

对应EX_GeographicExtent的XCPT:

<xs:comple

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论