<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<schema xmlns:oio="urn:oio:definitions:1.0.0" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:oio:definitions:1.0.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<!-- ************************ -->
	<!-- ***** Definitions  ***** -->
	<!-- ************************ -->
	<element name="Definitions" type="oio:DefinitionsType"/>
	<complexType name="DefinitionsType">
		<sequence>
			<element ref="oio:IncludeDefinitions" minOccurs="0" maxOccurs="unbounded"/>
			<choice minOccurs="0" maxOccurs="unbounded">
				<element ref="oio:MessageDefinition"/>
				<element ref="oio:DocumentDefinition"/>
				<element ref="oio:AggregateDataDefinition"/>
				<element ref="oio:DataType"/>
				<element ref="oio:SemanticDefinition"/>
				<element ref="oio:Ontology"/>
				<element ref="oio:Taxonomy"/>
				<element ref="oio:MappingDefinition"/>
			</choice>
		</sequence>
	</complexType>
	<!-- *********** -->
	<element name="IncludeDefinitions" type="oio:IncludeDefinitionsType"/>
	<complexType name="IncludeDefinitionsType">
		<attribute name="locationReference" type="string"/>
	</complexType>
	<!-- ****************************************************************************************************************************** -->
	<!-- *  Definitions                                                                                                                                                                     * -->
	<!-- ****************************************************************************************************************************** -->
	<complexType name="DefinitionType" abstract="true">
		<attribute name="definitionIdentifier" type="string"/>
		<attribute name="versionIdentifier" type="string"/>
	</complexType>
	<!-- ****************************************************************************************************************************** -->
	<!-- *  Data Definitions                                                                                                                                                            * -->
	<!-- ****************************************************************************************************************************** -->
	<complexType name="DataDefinitionType" abstract="true">
		<complexContent>
			<extension base="oio:DefinitionType">
				<sequence>
					<choice>
						<sequence>
							<element name="ModelName" type="string"/>
							<element name="ModelDescriptionText" type="string" minOccurs="0"/>
							<sequence minOccurs="0">
								<element name="AlternativeModelName" type="string"/>
								<element name="AlternativeModelDescriptionText" type="string" minOccurs="0"/>
							</sequence>
						</sequence>
						<element name="ModelReference" type="string"/>
					</choice>
				</sequence>
				<attribute name="semanticReference" type="string"/>
				<attribute name="baseReference" type="string" use="optional"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ****************************************************************************************************************************** -->
	<!-- * Simple Data Definition                                                                                                                                                  * -->
	<!-- ****************************************************************************************************************************** -->
	<complexType name="SimpleDataDefinitionType" abstract="true">
		<complexContent>
			<extension base="oio:DataDefinitionType">
				<attribute name="occurrenceCode" type="oio:OccurrenceCodeType" use="required"/>
				<attribute name="minimumCount" type="nonNegativeInteger" use="optional"/>
				<!-- default = 1 -->
				<attribute name="maximumCount" type="integer" use="optional"/>
				<!-- default = 1 ;  -1 = unbounded -->
				<attribute name="contentIdentifier" type="string" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<simpleType name="OccurrenceCodeType">
		<restriction base="string">
			<enumeration value="Mandatory"/>
			<enumeration value="Optional"/>
			<enumeration value="OneOrMore"/>
			<enumeration value="ZeroOrMore"/>
			<enumeration value="MinMax"/>
		</restriction>
	</simpleType>
	<!-- ****************************************************************************************************************************************** -->
	<!-- ***** Data Type Definition                                                                                                                                                            ***** -->
	<!-- ****************************************************************************************************************************************** -->
	<element name="DataType" type="oio:DataTypeDefinitionType"/>
	<complexType name="DataTypeDefinitionType">
		<complexContent>
			<extension base="oio:DataDefinitionType">
				<sequence>
					<choice maxOccurs="unbounded">
						<sequence>
							<element name="MasterDataTypeCode" type="oio:MasterDataTypeCodeType"/>
							<element name="Facet" type="oio:FacetType" minOccurs="0" maxOccurs="unbounded"/>
						</sequence>
						<element name="TaxonomyReference" type="string"/>
						<!-- Reference to a taxonomy (or maybe a GeneriCode spec) to be used as a code list -->
						<element name="CodeList" type="oio:CodeListType"/>
					</choice>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- *********** -->
	<simpleType name="MasterDataTypeCodeType">
		<!-- See also http://www.w3.org/TR/xmlschema-2/#built-in-datatypes -->
		<restriction base="string">
			<enumeration value="string"/>
			<enumeration value="boolean"/>
			<enumeration value="binary"/> <!-- binary is fundament for  base64Binary and hexBinary -->
			<enumeration value="float"/>
			<enumeration value="decimal"/> <!-- decimal is fundament for integer -->
			<enumeration value="integer"/> <!-- integer is fundament for all decimals without a decimal part -->
			<enumeration value="double"/>
			<enumeration value="duration"/>
			<enumeration value="dateTime"/>
			<enumeration value="time"/>
			<enumeration value="date"/>
			<enumeration value="gYearMonth"/>
			<enumeration value="gYear"/>
			<enumeration value="gMonthDay"/>
			<enumeration value="gDay"/>
			<enumeration value="gMonth"/>
		</restriction>
	</simpleType>
	<!-- *********** -->
	<complexType name="FacetType">
		<choice minOccurs="0">
			<sequence>
				<element name="ModelName" type="string"/>
				<element name="ModelDescriptionText" type="string" minOccurs="0"/>
				<sequence minOccurs="0">
					<element name="AlternativeModelName" type="string"/>
					<element name="AlternativeModelDescriptionText" type="string" minOccurs="0"/>
				</sequence>
			</sequence>
			<element name="ModelReference" type="string"/>
		</choice>
		<attribute name="facetTypeCode" type="oio:FacetTypeCodeType" use="required"/>
		<attribute name="facetValue" type="string" use="required"/>
		<attribute name="semanticReference" type="string"/>
	</complexType>
	<!-- *********** -->
	<simpleType name="FacetTypeCodeType">
		<restriction base="string">
			<enumeration value="Length"/>
			<enumeration value="MinimumLength"/>
			<enumeration value="MaximumLength"/>
			<enumeration value="Expression"/>
			<enumeration value="Enumeration"/>
			<enumeration value="Whitespace"/>
			<enumeration value="MaximumInclusive"/>
			<enumeration value="MaximumExclusive"/>
			<enumeration value="MinimumInclusive"/>
			<enumeration value="MinimumExclusive"/>
			<enumeration value="TotalDigits"/>
			<enumeration value="FractionDigits"/>
		</restriction>
	</simpleType>
	<!-- *********** -->
	<complexType name="CodeListType">
		<sequence>
			<element name="Enumeration" type="oio:EnumerationType" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="taxonomyReference" type="string"/>
	</complexType>
	<!-- *********** -->
	<complexType name="EnumerationType">
		<choice>
			<sequence>
				<element name="ModelName" type="string"/>
				<element name="ModelDescriptionText" type="string" minOccurs="0"/>
				<sequence minOccurs="0">
					<element name="AlternativeModelName" type="string"/>
					<element name="AlternativeModelDescriptionText" type="string" minOccurs="0"/>
				</sequence>
			</sequence>
			<element name="ModelReference" type="string"/>
		</choice>
		<attribute name="semanticReference" type="string"/>
	</complexType>
	<!-- ***************************************************************************************************************************** -->
	<!-- ***** Aggregated Data Definition                                                                                                                          ****** -->
	<!-- ***************************************************************************************************************************** -->
	<element name="AggregateDataDefinition" type="oio:AggregateDataDefinitionType"/>
	<complexType name="AggregateDataDefinitionType">
		<complexContent>
			<extension base="oio:DataDefinitionType">
				<sequence>
					<element name="Content" type="oio:ADDContentType" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- *********** -->
	<complexType name="ADDContentType">
		<sequence>
			<choice maxOccurs="unbounded">
				<element name="BasicDataDefinition" type="oio:BasicDataDefinitionType"/>
				<element name="AssociationDataDefinition" type="oio:AssociationDataDefinitionType"/>
				<!-- element name="AnyDefinition" type="oio:AnyDefinitionType" -->
			</choice>
		</sequence>
		<attribute name="compositionCode" type="oio:CompositionCodeType"/>
	</complexType>
	<simpleType name="CompositionCodeType">
		<restriction base="string">
			<enumeration value="ordered"/>
			<enumeration value="alternate"/>
		</restriction>
	</simpleType>
	<!-- ****************************************************************************************************************************************** -->
	<!-- * Basic Data Definition                                                                                                                                                                      * -->
	<!-- ****************************************************************************************************************************************** -->
	<complexType name="BasicDataDefinitionType">
		<complexContent>
			<extension base="oio:SimpleDataDefinitionType">
				<sequence>
					<element name="ModelType" type="string" minOccurs="0"/>
					<choice>
						<element name="MasterDataTypeCode" type="oio:MasterDataTypeCodeType"/>
						<!-- Indicates primitive data type -->
						<element name="DataTypeReference" type="string"/>
						<!-- Reference to a datatype definition -->
					</choice>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ****************************************************************************************************************************************** -->
	<!-- * Association Data Definition                                                                                                                                                           * -->
	<!-- ****************************************************************************************************************************************** -->
	<complexType name="AssociationDataDefinitionType">
		<complexContent>
			<extension base="oio:SimpleDataDefinitionType">
				<sequence>
					<element name="AggregateDataDefinitionReference" type="string"/>
					<!-- Reference to an aggregate data definition -->
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ******************************************************************************************************************************************** -->
	<!-- *  Section: Semantic Definition                                                                                                                                                           * -->
	<!-- ******************************************************************************************************************************************** -->
	<element name="SemanticDefinition" type="oio:SemanticDefinitionType"/>
	<complexType name="SemanticDefinitionType">
		<complexContent>
			<extension base="oio:DefinitionType">
				<sequence>
					<element ref="oio:Localization" minOccurs="1" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- *********** -->
	<element name="Localization" type="oio:LocalizationType"/>
	<complexType name="LocalizationType">
		<sequence>
			<element ref="oio:Term" maxOccurs="unbounded"/>
			<element ref="oio:Description" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="languageCode" type="string" use="required"/>
	</complexType>
	<!-- ********************************************************************************* -->
	<!-- ***** Terms (Preferred, Admitted, Deprecated, Obsoleted)             ****** -->
	<!-- ********************************************************************************* -->
	<element name="Term" type="oio:TermType"/>
	<!-- *********** -->
	<complexType name="TermType">
		<simpleContent>
			<extension base="string">
				<attribute name="roleCode" type="oio:TermRoleCodeType" use="required"/>
				<attribute name="formatCode" type="oio:TermFormatCodeType" use="optional"/>
				<attribute name="definitionIdentifier" type="string" use="optional"/>
				<attribute name="versionIdentifier" type="string" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- *********** -->
	<simpleType name="TermRoleCodeType">
		<restriction base="string">
			<enumeration value="preferred"/>
			<enumeration value="admitted"/>
			<enumeration value="deprecated"/>
			<enumeration value="obsolete"/>
		</restriction>
	</simpleType>
	<!-- *********** -->
	<simpleType name="TermFormatCodeType">
		<restriction base="string">
			<enumeration value="text"/>
			<enumeration value="symbolic"/>
		</restriction>
	</simpleType>
	<!-- *********** -->
	<!-- ************************************************************************************** -->
	<!-- ***** Descriptions (Definition, Explanation, Rationale, Examples)         ****** -->
	<!-- ************************************************************************************** -->
	<element name="Description" type="oio:DescriptionType"/>
	<!-- *********** -->
	<complexType name="DescriptionType">
		<simpleContent>
			<extension base="string">
				<attribute name="roleCode" type="oio:DescriptionRoleCodeType" use="required"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- *********** -->
	<simpleType name="DescriptionRoleCodeType">
		<restriction base="string">
			<enumeration value="definition"/>
			<enumeration value="explanation"/>
			<enumeration value="rationale"/>
			<enumeration value="example"/>
		</restriction>
	</simpleType>
	<!-- ****************************************************************************************************************************************** -->
	<!-- *  Section: Ontology                                                                                                                                                                           * -->
	<!-- ****************************************************************************************************************************************** -->
	<element name="Ontology" type="oio:OntologyType"/>
	<complexType name="OntologyType">
		<complexContent>
			<extension base="oio:DefinitionType">
				<sequence>
					<element name="OntologyTitleText" type="string"/>
					<element name="OntologyDescriptionText" type="string" minOccurs="0"/>
					<element name="Content" type="oio:OntologyContentType"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- *********** -->
	<complexType name="OntologyContentType">
		<sequence>
			<element ref="oio:Concept" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<!-- *********** -->
	<element name="Concept" type="oio:ConceptType"/>
	<complexType name="ConceptType">
		<sequence>
			<!-- Dimensions are used for KindOf relations -->
			<element ref="oio:Dimension" minOccurs="0" maxOccurs="unbounded"/>
			<choice minOccurs="0" maxOccurs="unbounded">
				<element ref="oio:KindOfRelation"/>
				<element ref="oio:PartOfRelation"/>
				<element ref="oio:PhaseRelation"/>
				<element ref="oio:AssociativeRelation"/>
			</choice>
		</sequence>
		<attribute name="conceptIdentifier" type="string"/>
		<attribute name="semanticReference" type="string"/>
	</complexType>
	<element name="Dimension" type="oio:DimensionType"/>
	<complexType name="DimensionType">
		<sequence>
			<element name="FeatureName" type="string" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="dimensionName" type="string"/>
	</complexType>
	<element name="KindOfRelation" type="oio:KindOfRelationType"/>
	<element name="PartOfRelation" type="oio:RelationType"/>
	<element name="PhaseRelation" type="oio:RelationType"/>
	<element name="AssociativeRelation" type="oio:AssociativeRelationType"/>
	<!-- *********** -->
	<complexType name="RelationType">
		<attribute name="conceptReference" type="string" use="required"/>
	</complexType>
	<complexType name="KindOfRelationType">
		<complexContent>
			<extension base="oio:RelationType">
				<sequence>
					<element ref="oio:FeatureReference" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="AssociativeRelationType">
		<complexContent>
			<extension base="oio:RelationType">
				<sequence>
					<element name="AssociationKindText" type="string"/>
					<element name="AssociationDescriptionText" type="string" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- *********** -->
	<element name="FeatureReference" type="oio:FeatureReferenceType"/>
	<!-- Krakteristisk træk = characteristic feature -->
	<complexType name="FeatureReferenceType">
		<simpleContent>
			<extension base="string">
				<attribute name="dimensionReference" type="string" use="required"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ****************************************************************************************************************************************** -->
	<!-- *  Section: Taxonomy                                                                                                                                                                         * -->
	<!-- ****************************************************************************************************************************************** -->
	<element name="Taxonomy" type="oio:TaxonomyType"/>
	<complexType name="TaxonomyType">
		<complexContent>
			<extension base="oio:DefinitionType">
				<sequence>
					<element name="TaxonomyTitleText" type="string"/>
					<element name="TaxonomyDescriptionText" type="string" minOccurs="0"/>
					<element name="Content" type="oio:TaxonomyContentType"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- *********** -->
	<complexType name="TaxonomyContentType">
		<sequence>
			<element ref="oio:Category" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<!-- *********** -->
	<element name="Category" type="oio:CategoryType"/>
	<complexType name="CategoryType">
		<sequence>
			<element ref="oio:Category" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="categoryName" type="string" use="optional"/>
		<!-- When no semantic definition og concept element is avaliable, use categoryName to identify this node -->
		<attribute name="semanticReference" type="string" use="optional"/>
		<!-- Reference to a semantic definition -->
		<attribute name="conceptReference" type="string" use="optional"/>
		<!-- reference to a concept element in an ontology -->
	</complexType>
	<!-- ************************************************************************************************************************************** -->
	<!-- * Section: Document definition                                                                                                                                                   * -->
	<!-- ************************************************************************************************************************************** -->
	<element name="DocumentDefinition" type="oio:DocumentDefinitionType"/>
	<complexType name="DocumentDefinitionType">
		<complexContent>
			<extension base="oio:DefinitionType">
				<sequence>
					<element name="AggregateDataDefinitionReference" type="string"/>
					<!-- Reference to an aggregated data definition that forms the root data definition of a document definition -->
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ************************************************************************************************************************************** -->
	<!-- * Section: Message definition                                                                                                                                                     * -->
	<!-- ************************************************************************************************************************************** -->
	<element name="MessageDefinition" type="oio:MessageDefinitionType"/>
	<complexType name="MessageDefinitionType">
		<complexContent>
			<extension base="oio:DefinitionType">
				<sequence>
					<element name="MessageTitleText" type="string"/>
					<element name="MessageActionCode" type="oio:MessageActionCodeType"/>
					<element name="DocumentDefinitionReference" type="string"/>
					<!-- Reference to a document definition that contains the data definitions of a message definition -->
					<!-- 
						<element name="Constraints" ...    List of constraints to the DocumentDefinition that relates to this specific message,
						e.g. leave out this datadefinition, or make it optional, even if it is required in the documentdefinition.
						Actual, it could be named a partial documentdefinition.
					 -->
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<simpleType name="MessageActionCodeType">
		<restriction base="string">
			<!-- The message actions below are copied from the Core Components Message Assembly Working Draft 1.10 -->
			<!-- Create: The Business Entity is to be created in the information system of the recipient. The entity must not already exist. -->
			<enumeration value="create"/>
			<!-- Change: The information on the Business Entity is to be changed at the recipient. The Business Entity must exist there. -->
			<enumeration value="change"/>
			<!-- Delete: The Business Entity is to be deleted from the information system of the recipient. The Business Entity must exist there. -->
			<enumeration value="delete"/>
			<!-- Save: The information on the Business Entity is to be saved at the recipient. If the Business Entity already exists there, it is changed. It if does not exist there, it is created. -->
			<enumeration value="save"/>
			<!--Remove: The Business Entity is to be deleted from the recipients information system. The Business Entity does not need to exist there. If it exists, it is deleted. If it does not exists, no action is taken. -->
			<enumeration value="remove"/>
			<!-- Request: The recipient is requested to supply information on the Business Entity that is identified by the Business Information Entity. -->
			<enumeration value="request"/>
			<!-- Refer: The Business Information Entity is included for reference purposes, to identify or to give information on another Business Entity. E.g. while creating an Order, reference is made to a Contract. The Business Entity that is referred to must already exist in the recipients information system. Usually only attributes to identify the referred Business Entity are included. -->
			<enumeration value="refer"/>
			<!-- Repeat: The Business Information Entity contains information that is already known by the recipient and is unchanged. It is included for regulatory purposes, convenience or technical reasons. -->
			<enumeration value="repeat"/>
			<!-- None: The recipient is allowed to take any action on receiving the business information. This is the default action that is implied if the action code is not present. -->
			<enumeration value="none"/>
		</restriction>
	</simpleType>
	<!-- ************************************************************************************************************************************** -->
	<!-- * Section: Assembly  & Specification                                                                                                                                        * -->
	<!-- ************************************************************************************************************************************** -->
	<element name="Assembly" type="oio:AssemblyType"/>
	<complexType name="AssemblyType">
		<sequence>
			<element name="AssemblyTitleText" type="string"/>
			<choice minOccurs="0" maxOccurs="unbounded">
				<element name="SemanticDefinitionReference" type="string"/>
				<element name="AggregatedDataDefinitionReference" type="string"/>
				<element name="DataTypeDefinitionReference" type="string"/>
				<element name="MessageDefinitionReference" type="string"/>
				<element name="ServiceDefinitionReference" type="string"/>
				<element name="ResourceReference" type="string"/>
				<element name="AssemblyReference" type="string"/>
			</choice>
		</sequence>
		<attribute name="assemblyIdentifier" type="string" use="required"/>
		<attribute name="versionIdentifier" type="string" use="required"/>
	</complexType>
	<!-- *********** -->
	<element name="Specification" type="oio:AssemblyType"/>
	<!-- ************************************************************************************************************************************** -->
	<!-- * Section: Mapping definitions                                                                                                                                                    * -->
	<!-- ************************************************************************************************************************************** -->
	<element name="MappingDefinition" type="oio:MappingDefinitionType"/>
	<!-- 
		An mapping definition specifies the transformation from data definitions to XML Schema components, i.e.
		to element & attribute declarations and complex and simple type definitions.
		Furthermore it specifies the transformation fra schema components to schema files.
	-->
	<complexType name="MappingDefinitionType">
		<complexContent>
			<extension base="oio:DefinitionType">
				<sequence>
					<element name="MappingTitleText" type="string"/>
					<choice>
						<element name="DocumentDefinitionReference" type="string"/>
						<element name="MessageDefinitionReference" type="string"/>
					</choice>
					<element name="NDRComplianceCode" type="oio:NDRComplianceCodeType"/>
					<element name="ComponentMapping" type="oio:ComponentMappingType" minOccurs="0"/>
					<element name="FileGenerationCode" type="oio:FileGenerationCodeType" default="OneFilePerNamespace" minOccurs="0"/>
					<element name="FileNamingSchemeCode" type="oio:FileNamingSchemeCodeType" default="FirstElementNameInFile" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<simpleType name="NDRComplianceCodeType">
		<restriction base="string">
			<enumeration value="OIO NDR 3.2"/>
			<enumeration value="OIO NDR 4.0"/>
		</restriction>
	</simpleType>
	<complexType name="ComponentMappingType">
		<sequence>
			<choice minOccurs="0" maxOccurs="unbounded">
				<element ref="oio:DataTypeMapping"/>
				<element ref="oio:AggregateDataMapping"/>
				<element ref="oio:BasicDataMapping"/>
				<element ref="oio:AssociationDataMapping"/>
				<element ref="oio:MessageMapping"/>
				<element name="MappingGroup" type="oio:ComponentMappingType"/>
			</choice>
		</sequence>
		<attribute name="oioNamespaceReference" type="string"/>
		<attribute name="documentationIndicator" type="boolean"/>
	</complexType>
	<simpleType name="FileGenerationCodeType">
		<restriction base="string">
			<enumeration value="OneFilePerMapping"/>
			<!-- one schema file for the whole the top level group, if possible -->
			<enumeration value="OneFilePerNamespace"/>
			<!-- In contrast to several schema files for one namespace -->
			<enumeration value="OneFilePerGroup"/>
			<enumeration value="OneFilePerDeclaration"/>
			<!-- one schema file per element or attribute declaration  -->
		</restriction>
	</simpleType>
	<simpleType name="FileNamingSchemeCodeType">
		<restriction base="string">
			<enumeration value="FirstElementNameInFile"/>
		</restriction>
	</simpleType>
	<!-- ****************************************************************************************************************************** -->
	<!-- * Mapping Type                                                                                                                                                                * -->
	<!-- ****************************************************************************************************************************** -->
	<complexType name="MappingType" abstract="true">
		<sequence>
			<element ref="oio:Naming" minOccurs="0"/>
		</sequence>
		<attribute name="oioNamespaceReference" type="string"/>
	</complexType>
	<!-- *********** -->
	<element name="Naming" type="oio:NamingType"/>
	<complexType name="NamingType">
		<sequence>
			<element ref="oio:ISOName" minOccurs="0"/>
			<element name="AlternativeName" type="string" minOccurs="0"/>
		</sequence>
		<attribute name="languageCode" type="string" use="required"/>
	</complexType>
	<!-- *********** -->
	<element name="ISOName" type="oio:ISONameType"/>
	<complexType name="ISONameType">
		<sequence>
			<element name="ObjectClassTermName" type="string"/>
			<element name="PropertyTermName" type="string" minOccurs="0"/>
			<element name="RepresentationTermName" type="oio:RepresentationTermCodeType" minOccurs="0"/>
		</sequence>
	</complexType>
	<!-- *********** -->
	<simpleType name="RepresentationTermCodeType">
		<restriction base="string">
			<!-- Engelsk -->
			<enumeration value="Amount"/>
			<enumeration value="Code"/>
			<enumeration value="Data"/>
			<enumeration value="Date"/>
			<enumeration value="DateTime"/>
			<enumeration value="Identifier"/>
			<enumeration value="Indicator"/>
			<enumeration value="Measure"/>
			<enumeration value="Name"/>
			<enumeration value="Percent"/>
			<enumeration value="Quantity"/>
			<enumeration value="Rate"/>
			<enumeration value="Reference"/>
			<enumeration value="Text"/>
			<enumeration value="Time"/>
			<!-- Dansk -->
			<enumeration value="Beloeb"/>
			<enumeration value="Kode"/>
			<!-- <enumeration value="Data"/>  samme som engelsk -->
			<enumeration value="Dato"/>
			<enumeration value="DatoTid"/>
			<enumeration value="Identifikator"/>
			<enumeration value="Indikator"/>
			<enumeration value="Maal"/>
			<enumeration value="Navn"/>
			<enumeration value="Procent"/>
			<enumeration value="Kvantitet"/>
			<!-- <enumeration value="Rate"/> samme som engelsk -->
			<!-- <enumeration value="Reference"/> samme som engelsk -->
			<enumeration value="Tekst"/>
			<enumeration value="Tid"/>
		</restriction>
	</simpleType>
	<!-- ******************************************* -->
	<!-- ***** Data Type Mapping              ***** -->
	<!-- ******************************************* -->
	<element name="DataTypeMapping" type="oio:DataTypeMappingType"/>
	<complexType name="DataTypeMappingType">
		<complexContent>
			<extension base="oio:MappingType">
				<attribute name="dataDefinitionReference" type="string"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ********************************************* -->
	<!-- ***** Aggregate Data Mapping     ****** -->
	<!-- ********************************************* -->
	<element name="AggregateDataMapping" type="oio:AggregateDataMappingType"/>
	<complexType name="AggregateDataMappingType">
		<complexContent>
			<extension base="oio:MappingType">
				<sequence>
					<element name="Content" type="oio:ADMContentType" minOccurs="0"/>
				</sequence>
				<attribute name="dataDefinitionReference" type="string"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="ADMContentType">
		<choice minOccurs="0" maxOccurs="unbounded">
			<element ref="oio:BasicDataMapping"/>
			<element ref="oio:AssociationDataMapping"/>
			<element name="CommentText" type="string"/>
		</choice>
	</complexType>
	<!-- ******************************************* -->
	<!-- ***** Basic Data Mapping             ***** -->
	<!-- ******************************************* -->
	<element name="BasicDataMapping" type="oio:BasicDataMappingType"/>
	<complexType name="BasicDataMappingType">
		<complexContent>
			<extension base="oio:MappingType">
				<sequence>
				</sequence>
				<attribute name="attributeIndicator" type="boolean"/>
				<!-- default: false -->
				<attribute name="aggregationCode" type="oio:AggregationCodeType"/>
				<!-- default: composition -->
				<attribute name="contentReference" type="string" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<simpleType name="AggregationCodeType">
		<restriction base="string">
			<enumeration value="composition"/>
			<enumeration value="shared"/>
		</restriction>
	</simpleType>
	<!-- ******************************************* -->
	<!-- ***** Association Data Mapping  ***** -->
	<!-- ******************************************* -->
	<element name="AssociationDataMapping" type="oio:AssociationDataMappingType"/>
	<complexType name="AssociationDataMappingType">
		<complexContent>
			<extension base="oio:MappingType">
				<sequence>
				</sequence>
				<attribute name="embeddedIndicator" type="boolean"/>
				<!-- default: false -->
				<attribute name="aggregationCode" type="oio:AggregationCodeType"/>
				<!-- default: composition -->
				<attribute name="contentReference" type="string" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ************************************ -->
	<!-- ***** Message Mapping     ***** -->
	<!-- ************************************ -->
	<element name="MessageMapping" type="oio:MessageMappingType"/>
	<complexType name="MessageMappingType">
		<complexContent>
			<extension base="oio:MappingType">
				<sequence>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
</schema>
