<!-- ************************************************************* -->
<!-- Common Data Types                                             -->
<!-- Version: 1.0                                                  -->
<!-- Date: 14 September 1999                                       -->
<!-- Author: Meta Data Coalition (MDC)                             -->
<!-- Reference: http://www.mdcinfo.com                             -->
<!-- ************************************************************* -->
<!-- Provides data type definitions to standardize and unify data  -->
<!-- types                                                         -->
<!-- ************************************************************* -->

<!-- ************************************************************* -->
<!-- Class: Alias                                                  -->
<!-- Specializes: ObjectType                                       -->
<!-- ************************************************************* -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: isAbstract : Boolean                               -->
<!-- Attribute: isLeaf : Boolean                                   -->
<!-- Attribute: isRoot : Boolean                                   -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: visibility : Enumeration                           -->
<!-- ************************************************************* -->
<!ELEMENT Alias
	( ANY
	| AliasType
	)*
	>
<!ATTLIST Alias
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	isAbstract                    	CDATA	#IMPLIED
	isLeaf                        	CDATA	#IMPLIED
	isRoot                        	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	visibility                    	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: Enumeration                                            -->
<!-- Specializes: ObjectType                                       -->
<!-- ************************************************************* -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: isAbstract : Boolean                               -->
<!-- Attribute: isLeaf : Boolean                                   -->
<!-- Attribute: isRoot : Boolean                                   -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: visibility : Enumeration                           -->
<!-- ************************************************************* -->
<!ELEMENT Enumeration
	( ANY
	| EnumerationLiterals
	| EnumerationType
	)*
	>
<!ATTLIST Enumeration
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	isAbstract                    	CDATA	#IMPLIED
	isLeaf                        	CDATA	#IMPLIED
	isRoot                        	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	visibility                    	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: EnumerationLiteral                                     -->
<!-- Specializes: Attribute                                        -->
<!-- ************************************************************* -->
<!-- Attribute: changeability : Enumeration                        -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: initialValueLanguage : String                      -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: multiplicity : String                              -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: ownerScope : Enumeration                           -->
<!-- Attribute: targetScope : Enumeration                          -->
<!-- Attribute: TypeExpression : String                            -->
<!-- Attribute: TypeExpressionLanguage : String                    -->
<!-- Attribute: value : String                                     -->
<!-- Attribute: valueLanguage : String                             -->
<!-- Attribute: Feature.visibility : Enumeration                   -->
<!-- Attribute: ElementOwnership.visibility : Enumeration          -->
<!-- ************************************************************* -->
<!ELEMENT EnumerationLiteral
	( ANY
	)*
	>
<!ATTLIST EnumerationLiteral
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	changeability                 	CDATA	#IMPLIED
	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	initialValueLanguage          	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	multiplicity                  	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	ownerScope                    	CDATA	#IMPLIED
	targetScope                   	CDATA	#IMPLIED
	TypeExpression                	CDATA	#IMPLIED
	TypeExpressionLanguage        	CDATA	#IMPLIED
	value                         	CDATA	#IMPLIED
	valueLanguage                 	CDATA	#IMPLIED
	Feature.visibility            	CDATA	#IMPLIED
	ElementOwnership.visibility   	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: MemberVariable                                         -->
<!-- Specializes: Attribute                                        -->
<!-- ************************************************************* -->
<!-- Attribute: AverageLength : UnlimitedInteger                   -->
<!-- Attribute: changeability : Enumeration                        -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: initialValue : String                              -->
<!-- Attribute: initialValueLanguage : String                      -->
<!-- Attribute: IsConstant : Boolean                               -->
<!-- Attribute: IsNullable : Boolean                               -->
<!-- Attribute: IsReadOnly : Boolean                               -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: Length : UnlimitedInteger                          -->
<!-- Attribute: MinimumLength : UnlimitedInteger                   -->
<!-- Attribute: multiplicity : String                              -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: NumericPrecision : Integer                         -->
<!-- Attribute: NumericScale : Integer                             -->
<!-- Attribute: OctetLength : UnlimitedInteger                     -->
<!-- Attribute: Offset : UnlimitedInteger                          -->
<!-- Attribute: ownerScope : Enumeration                           -->
<!-- Attribute: targetScope : Enumeration                          -->
<!-- Attribute: TimePrecision : UnlimitedInteger                   -->
<!-- Attribute: TypeExpression : String                            -->
<!-- Attribute: TypeExpressionLanguage : String                    -->
<!-- Attribute: Feature.visibility : Enumeration                   -->
<!-- Attribute: ElementOwnership.visibility : Enumeration          -->
<!-- ************************************************************* -->
<!ELEMENT MemberVariable
	( ANY
	)*
	>
<!ATTLIST MemberVariable
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	AverageLength                 	CDATA	#IMPLIED
	changeability                 	CDATA	#IMPLIED
	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	initialValue                  	CDATA	#IMPLIED
	initialValueLanguage          	CDATA	#IMPLIED
	IsConstant                    	CDATA	#IMPLIED
	IsNullable                    	CDATA	#IMPLIED
	IsReadOnly                    	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	Length                        	CDATA	#IMPLIED
	MinimumLength                 	CDATA	#IMPLIED
	multiplicity                  	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	NumericPrecision              	CDATA	#IMPLIED
	NumericScale                  	CDATA	#IMPLIED
	OctetLength                   	CDATA	#IMPLIED
	Offset                        	CDATA	#IMPLIED
	ownerScope                    	CDATA	#IMPLIED
	targetScope                   	CDATA	#IMPLIED
	TimePrecision                 	CDATA	#IMPLIED
	TypeExpression                	CDATA	#IMPLIED
	TypeExpressionLanguage        	CDATA	#IMPLIED
	Feature.visibility            	CDATA	#IMPLIED
	ElementOwnership.visibility   	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: ObjectType                                             -->
<!-- Specializes: DataType                                         -->
<!-- ************************************************************* -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: isAbstract : Boolean                               -->
<!-- Attribute: isLeaf : Boolean                                   -->
<!-- Attribute: isRoot : Boolean                                   -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: visibility : Enumeration                           -->
<!-- ************************************************************* -->
<!ELEMENT ObjectType
	( ANY
	| ObjectTypeExposedMappings
	| ObjectTypeUnderlyingMappings
	| ObjectTypeTypeSet
	| ObjectTypeUnionsForWhichSwitchType
	)*
	>
<!ATTLIST ObjectType
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	isAbstract                    	CDATA	#IMPLIED
	isLeaf                        	CDATA	#IMPLIED
	isRoot                        	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	visibility                    	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: ObjectTypeMapping                                      -->
<!-- Specializes: ModelElement                                     -->
<!-- ************************************************************* -->
<!-- Attribute: BestMatch : Boolean                                -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: visibility : Enumeration                           -->
<!-- ************************************************************* -->
<!ELEMENT ObjectTypeMapping
	( ANY
	)*
	>
<!ATTLIST ObjectTypeMapping
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	BestMatch                     	CDATA	#IMPLIED
	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	visibility                    	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: Primitive                                              -->
<!-- Specializes: ObjectType                                       -->
<!-- ************************************************************* -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: isAbstract : Boolean                               -->
<!-- Attribute: isLeaf : Boolean                                   -->
<!-- Attribute: isRoot : Boolean                                   -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: visibility : Enumeration                           -->
<!-- ************************************************************* -->
<!ELEMENT Primitive
	( ANY
	)*
	>
<!ATTLIST Primitive
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	isAbstract                    	CDATA	#IMPLIED
	isLeaf                        	CDATA	#IMPLIED
	isRoot                        	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	visibility                    	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: Structure                                              -->
<!-- Specializes: ObjectType                                       -->
<!-- ************************************************************* -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: isAbstract : Boolean                               -->
<!-- Attribute: isLeaf : Boolean                                   -->
<!-- Attribute: isRoot : Boolean                                   -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: visibility : Enumeration                           -->
<!-- ************************************************************* -->
<!ELEMENT Structure
	( ANY
	)*
	>
<!ATTLIST Structure
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	isAbstract                    	CDATA	#IMPLIED
	isLeaf                        	CDATA	#IMPLIED
	isRoot                        	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	visibility                    	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: TypeSet                                                -->
<!-- Specializes: ModelElement                                     -->
<!-- ************************************************************* -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: Version : String                                   -->
<!-- Attribute: visibility : Enumeration                           -->
<!-- ************************************************************* -->
<!ELEMENT TypeSet
	( ANY
	)*
	>
<!ATTLIST TypeSet
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	Version                       	CDATA	#IMPLIED
	visibility                    	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: Union                                                  -->
<!-- Specializes: ObjectType                                       -->
<!-- ************************************************************* -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: isAbstract : Boolean                               -->
<!-- Attribute: isLeaf : Boolean                                   -->
<!-- Attribute: isRoot : Boolean                                   -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: visibility : Enumeration                           -->
<!-- ************************************************************* -->
<!ELEMENT Union
	( ANY
	| UnionMembers
	)*
	>
<!ATTLIST Union
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	isAbstract                    	CDATA	#IMPLIED
	isLeaf                        	CDATA	#IMPLIED
	isRoot                        	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	visibility                    	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Class: UnionMember                                            -->
<!-- Specializes: MemberVariable                                   -->
<!-- ************************************************************* -->
<!-- Attribute: AverageLength : UnlimitedInteger                   -->
<!-- Attribute: changeability : Enumeration                        -->
<!-- Attribute: comments : String                                  -->
<!-- Attribute: description : String                               -->
<!-- Attribute: initialValue : String                              -->
<!-- Attribute: initialValueLanguage : String                      -->
<!-- Attribute: IsConstant : Boolean                               -->
<!-- Attribute: IsDefault : Boolean                                -->
<!-- Attribute: IsNullable : Boolean                               -->
<!-- Attribute: IsReadOnly : Boolean                               -->
<!-- Attribute: isSpecification : Boolean                          -->
<!-- Attribute: Length : UnlimitedInteger                          -->
<!-- Attribute: MemberCase : String                                -->
<!-- Attribute: MinimumLength : UnlimitedInteger                   -->
<!-- Attribute: multiplicity : String                              -->
<!-- Attribute: name : String                                      -->
<!-- Attribute: NumericPrecision : Integer                         -->
<!-- Attribute: NumericScale : Integer                             -->
<!-- Attribute: OctetLength : UnlimitedInteger                     -->
<!-- Attribute: Offset : UnlimitedInteger                          -->
<!-- Attribute: ownerScope : Enumeration                           -->
<!-- Attribute: targetScope : Enumeration                          -->
<!-- Attribute: TimePrecision : UnlimitedInteger                   -->
<!-- Attribute: TypeExpression : String                            -->
<!-- Attribute: TypeExpressionLanguage : String                    -->
<!-- Attribute: Feature.visibility : Enumeration                   -->
<!-- Attribute: ElementOwnership.visibility : Enumeration          -->
<!-- ************************************************************* -->
<!ELEMENT UnionMember
	( ANY
	)*
	>
<!ATTLIST UnionMember
	id                           	ID	#IMPLIED
	objid                        	CDATA	#IMPLIED
	href                         	IDREF	#IMPLIED
	supertype                    	CDATA	#IMPLIED
	seqno                        	CDATA	#IMPLIED
	label                        	CDATA	#IMPLIED

	AverageLength                 	CDATA	#IMPLIED
	changeability                 	CDATA	#IMPLIED
	comments                      	CDATA	#IMPLIED
	description                   	CDATA	#IMPLIED
	initialValue                  	CDATA	#IMPLIED
	initialValueLanguage          	CDATA	#IMPLIED
	IsConstant                    	CDATA	#IMPLIED
	IsDefault                     	CDATA	#IMPLIED
	IsNullable                    	CDATA	#IMPLIED
	IsReadOnly                    	CDATA	#IMPLIED
	isSpecification               	CDATA	#IMPLIED
	Length                        	CDATA	#IMPLIED
	MemberCase                    	CDATA	#IMPLIED
	MinimumLength                 	CDATA	#IMPLIED
	multiplicity                  	CDATA	#IMPLIED
	name                          	CDATA	#IMPLIED
	NumericPrecision              	CDATA	#IMPLIED
	NumericScale                  	CDATA	#IMPLIED
	OctetLength                   	CDATA	#IMPLIED
	Offset                        	CDATA	#IMPLIED
	ownerScope                    	CDATA	#IMPLIED
	targetScope                   	CDATA	#IMPLIED
	TimePrecision                 	CDATA	#IMPLIED
	TypeExpression                	CDATA	#IMPLIED
	TypeExpressionLanguage        	CDATA	#IMPLIED
	Feature.visibility            	CDATA	#IMPLIED
	ElementOwnership.visibility   	CDATA	#IMPLIED
	>

<!-- ************************************************************* -->
<!-- Association: AliasType                                        -->
<!-- ************************************************************* -->
<!ELEMENT AliasType
	( ANY
	| Alias
	| ObjectType
	)*
	>
<!ATTLIST AliasType
	id	ID	#REQUIRED
>

<!-- ************************************************************* -->
<!-- Association: EnumerationLiterals                              -->
<!-- ************************************************************* -->
<!ELEMENT EnumerationLiterals
	( ANY
	| EnumerationLiteral
	| Enumeration
	)*
	>
<!ATTLIST EnumerationLiterals
	id	ID	#REQUIRED
>

<!-- ************************************************************* -->
<!-- Association: EnumerationType                                  -->
<!-- ************************************************************* -->
<!ELEMENT EnumerationType
	( ANY
	| Enumeration
	| ObjectType
	)*
	>
<!ATTLIST EnumerationType
	id	ID	#REQUIRED
>

<!-- ************************************************************* -->
<!-- Association: ObjectTypeExposedMappings                        -->
<!-- ************************************************************* -->
<!ELEMENT ObjectTypeExposedMappings
	( ANY
	| ObjectType
	| ObjectTypeMapping
	)*
	>
<!ATTLIST ObjectTypeExposedMappings
	id	ID	#REQUIRED
>

<!-- ************************************************************* -->
<!-- Association: ObjectTypeTypeSet                                -->
<!-- ************************************************************* -->
<!ELEMENT ObjectTypeTypeSet
	( ANY
	| TypeSet
	| ObjectType
	)*
	>
<!ATTLIST ObjectTypeTypeSet
	id	ID	#REQUIRED
>

<!-- ************************************************************* -->
<!-- Association: ObjectTypeUnderlyingMappings                     -->
<!-- ************************************************************* -->
<!ELEMENT ObjectTypeUnderlyingMappings
	( ANY
	| ObjectType
	| ObjectTypeMapping
	)*
	>
<!ATTLIST ObjectTypeUnderlyingMappings
	id	ID	#REQUIRED
>

<!-- ************************************************************* -->
<!-- Association: ObjectTypeUnionsForWhichSwitchType               -->
<!-- ************************************************************* -->
<!ELEMENT ObjectTypeUnionsForWhichSwitchType
	( ANY
	| ObjectType
	| Union
	)*
	>
<!ATTLIST ObjectTypeUnionsForWhichSwitchType
	id	ID	#REQUIRED
>

<!-- ************************************************************* -->
<!-- Association: UnionMembers                                     -->
<!-- ************************************************************* -->
<!ELEMENT UnionMembers
	( ANY
	| UnionMember
	| Union
	)*
	>
<!ATTLIST UnionMembers
	id	ID	#REQUIRED
>

