[sdmxdotnet] r16 committed - [No log message]

1 view
Skip to first unread message

codesite...@google.com

unread,
Aug 12, 2009, 3:56:01 PM8/12/09
to sdmxd...@googlegroups.com
Revision: 16
Author: duraid
Date: Wed Aug 12 12:55:05 2009
Log: [No log message]
http://code.google.com/p/sdmxdotnet/source/detail?r=16

Added:
/trunk/SDMX
/trunk/lib
/trunk/lib/SDMXCommon.xsd
/trunk/lib/SDMXCompactData.xsd
/trunk/lib/SDMXCrossSectionalData.xsd
/trunk/lib/SDMXGenericData.xsd
/trunk/lib/SDMXGenericMetadata.xsd
/trunk/lib/SDMXMessage.xsd
/trunk/lib/SDMXMetadataReport.xsd
/trunk/lib/SDMXQuery.xsd
/trunk/lib/SDMXRegistry.xsd
/trunk/lib/SDMXStructure.xsd
/trunk/lib/SDMXUtilityData.xsd
/trunk/lib/nunit.framework.dll
/trunk/lib/xml.xsd
Deleted:
/trunk/model
/trunk/model.tests
Modified:
/trunk/SDMX_ML.Framework.sln

=======================================
--- /dev/null
+++ /trunk/lib/SDMXCommon.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright SDMX 2005 - www.sdmx.org -->
+<xs:schema
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
elementFormDefault="qualified"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <!-- Note: The following import statement sometimes causes problems with
IE 6.* If you have this problem, comment it out. -->
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="xml.xsd"/>
+
+ <xs:complexType name="ConstraintType">
+ <xs:annotation><xs:documentation>Constraint specifies the object to
which constraints are attached. Note that if the constraint is that for a
Data Provider, then only ReleaseCalendar information is relevant, as there
is no reliable way of determining which key family is being used to frame
constraints in terms of cube regions or key sets. ReferencePeriod is used
to report start date and end date constraints. MetadataConceptSet allows
for conten t constraints to be described for metadata
sets.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="ConstraintID" type="IDType"/>
+ <xs:element name="CubeRegion" type="CubeRegionType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataConceptSet" type="MetadataConceptSetType"
minOccurs="0"/>
+ <xs:element name="KeySet" type="KeySetType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="ReleaseCalendar" type="ReleaseCalendarType"
minOccurs="0"/>
+ <xs:element name="ReferencePeriod" type="ReferencePeriodType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="ConstraintType" type="ConstraintTypeType"
use="required"/>
+ </xs:complexType>
+
+
+ <xs:complexType name="CubeRegionType">
+ <xs:annotation><xs:documentation>CubeRegion describes the portion(s) of
the possible combinations of all components within a key family or metadata
structure definition by providing valid values on a per-component basis.
This does not guarantee that data will be available for all possible
combinations, but describes the portion of the cube in which it is useful
to query for data. The isIncluded attribute, if true, indicates that the
described area is the one in which it is useful to search/expect to find
data. If false, this means that the portions of the cube outside the
described region are useful to search/where you may expect to find
data.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="Member" type="MemberType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="isIncluded" type="xs:boolean" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="MetadataConceptSetType">
+ <xs:annotation><xs:documentation> The isIncluded attribute, if true,
indicates that the described concepts - of those described as possibilities
in the relevant metadata structure definition - are reported. If the value
is false, then the specified concepts are not
reported.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="Member" type="MemberType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="isIncluded" type="xs:boolean" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="MemberType">
+ <xs:annotation><xs:documentation>Member describes the constrained
component - which can be a dimension, an attribute, a metadata attribute,
or a measure. This must agree with the metadata structure definition or key
family referenced by the Provision Agreement's Dataflow or Metadataflow.
The isIncluded attribute indicates whether the Member is listing included
or excluded values for each component, as seen against the full valid set
described in the key family. When used to describe reported metadata, the
MemberValue may be omitted in cases where no specification is made
regarding the representation of the concept (as is the case with un-coded
metadata attributes). Otherwise, MemberValue must be
included.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="ComponentRef" type="IDType"/>
+ <xs:element name="MemberValue" type="MemberValueType" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="isIncluded" type="xs:boolean" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="MemberValueType">
+ <xs:annotation><xs:documentation>MemberValue specifies the value of the
specified component, which must be a valid value as described in the
appropriate structure definition (key
family).</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="Value" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="KeySetType">
+ <xs:annotation><xs:documentation>KeySet describes a set of keys. The
isIncluded attribute, if true, indicates that the specified keys are valid
keys within the constraint. If false, the set of keys described are not
valid - all other possible keys are the valid
ones.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="Key" type="KeyType"/>
+ </xs:sequence>
+ <xs:attribute name="isIncluded" type="xs:boolean" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="KeyType">
+ <xs:annotation><xs:documentation>Key allows for sets of component
references - holding the name of the component's concept - and a permitted
value for that component. This conctruct can be repeated as many times as
dessired, but must describe complete keys according to teh relevant
structure definition (key family).</xs:documentation></xs:annotation>
+ <xs:sequence maxOccurs="unbounded">
+ <xs:element name="ComponentRef" type="IDType"/>
+ <xs:element name="Value" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ReleaseCalendarType">
+ <xs:annotation><xs:documentation>The ReleaseCalendar holds information
about the timing of releases of the constrained data. Periodicity is the
period between releases of the data set. Offset is the interval between
January first and the first release of data within the year. Tolerance is
the period after which the release of data may be deemed late. All of these
values use the standard "P7D"-style
format.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="Periodicity" type="xs:string"/>
+ <xs:element name="Offset" type="xs:string"/>
+ <xs:element name="Tolerance" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReferencePeriodType">
+ <xs:annotation><xs:documentation>Specifies the inclusive start and end
times for a registry query.</xs:documentation></xs:annotation>
+ <xs:attribute name="startTime" type="xs:dateTime" use="required"/>
+ <xs:attribute name="endTime" type="xs:dateTime" use="required"/>
+ </xs:complexType>
+
+ <xs:simpleType name="ConstraintTypeType">
+ <xs:annotation>
+ <xs:documentation>ConstraintType provides an enumeration of values of
the types of constraints.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Content">
+ <xs:annotation>
+ <xs:documentation>Content constraint.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Attachment">
+ <xs:annotation>
+ <xs:documentation>Attachment constraint.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+
+
+ <xs:complexType name="TextType">
+ <xs:annotation>
+ <xs:documentation>TextType provides for a set of language-specific
alternates to be provided for any human-readable construct in the
instance.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute ref="xml:lang" default="en"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="AnnotationType">
+ <xs:annotation>
+ <xs:documentation>AnnotationType provides for non-documentation notes
and annotations to be embedded in data and structure messages. It provides
optional fields for providing a title, a type description, a URI, and the
text of the annotation.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="AnnotationTitle" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>AnnotationTitle provides a title for the
annotation.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AnnotationType" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>AnnotationType is used to distinguish between
annotations designed to support various uses. The types are not enumerated,
as these can be specified by the user or creator of the annotations. The
definitions and use of annotation types should be documented by their
creator.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AnnotationURL" type="xs:anyURI" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>This is a URI - typically a URL - which points to
an external resource which may contain or supplement the annotation. If a
specific behavior is desired, an annotation type should be defined which
specifies the use of this field more exactly.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="AnnotationText" type="TextType" minOccurs="0"
maxOccurs="unbounded"><!-- Put back to TextType when you debug!-->
+ <xs:annotation>
+ <xs:documentation>This is a language-specific string which holds the
text oif the annotation.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AnnotationsType">
+ <xs:annotation>
+ <xs:documentation>AnnotationsType provides for a list of annotations to
be attached to data and structure messages.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Annotation" type="AnnotationType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:simpleType name="PeriodType">
+ <xs:annotation>
+ <xs:documentation>PeriodType provides a list of tokens for specifying
common periods: Quarterly: Q1, Q2, Q3, Q4; Weekly: W1 - W52; Triannual: T1,
T2, T3; Biannual: B1, B2. These values appear after a four-digit year
indicator, followed by a dash (ie, 2005-Q1).</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="(\d\d\d\d\-Q1|\d\d\d\d\-Q2|\d\d\d\d\-Q3|
\d\d\d\d\-Q4|\d\d\d\d\-T1|\d\d\d\d\-T2|\d\d\d\d\-T3|\d\d\d\d\-B1|
\d\d\d\d\-B2|\d\d\d\d\-W1|\d\d\d\d\-W2|\d\d\d\d\-W3|\d\d\d\d\-W4|
\d\d\d\d\-W5|\d\d\d\d\-W6|\d\d\d\d\-W7|\d\d\d\d\-W8|\d\d\d\d\-W9|
\d\d\d\d\-W10|\d\d\d\d\-W11|\d\d\d\d\-W12|\d\d\d\d\-W13|\d\d\d\d\-W14|
\d\d\d\d\-W15|\d\d\d\d\-W16|\d\d\d\d\-W17|\d\d\d\d\-W18|\d\d\d\d\-W19|
\d\d\d\d\-W20|\d\d\d\d\-W21|\d\d\d\d\-W22|\d\d\d\d\-W23|\d\d\d\d\-W24|
\d\d\d\d\-W25|\d\d\d\d\-W26|\d\d\d\d\-W27|\d\d\d\d\-W28|\d\d\d\d\-W29|
\d\d\d\d\-W30|\d\d\d\d\-W31|\d\d\d\d\-W32|\d\d\d\d\-W33|\d\d\d\d\-W34|
\d\d\d\d\-W35|\d\d\d\d\-W36|\d\d\d\d\-W37|\d\d\d\d\-W38|\d\d\d\d\-W39|
\d\d\d\d\-W40|\d\d\d\d\-W41|\d\d\d\d\-W42|\d\d\d\d\-W43|\d\d\d\d\-W44|
\d\d\d\d\-W45|\d\d\d\d\-W46|\d\d\d\d\-W47|\d\d\d\d\-W48|\d\d\d\d\-W49|
\d\d\d\d\-W50|\d\d\d\d\-W51|\d\d\d\d\-W52)"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="TimePeriodType">
+ <xs:annotation>
+ <xs:documentation>TIME_PERIOD is not completely expressable in XML
Schema's date type: instead we use the union of dateTime, date, gYearMonth,
and gYear. The default name for the concept is TIME_PERIOD. Bi-annual,
tri-annual, quarterly, and weekly periods have special formats (see
PeriodType, above), but other periods would be described in terms of their
beginning date or time (eg, a period of a decade is identified with a
four-digit year corresponding to the decades' first
year).</xs:documentation>
+ </xs:annotation>
+ <xs:union memberTypes="xs:dateTime xs:date xs:gYearMonth xs:gYear
PeriodType"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="ActionType">
+ <xs:annotation>
+ <xs:documentation>ActionType provides a list of actions, describing the
intention of the data transmission from the sender's side. Each action
provided at the dataset or metadataset level applies to the entire dataset
for which it is given. Note that the actions indicated in the Message
Header are optional, and used to summarize specific actions indicated with
this data type for all registry interactions. The "Informational" value is
used when the message contains information in response to a query, rather
than being used to invoke a maintenance activity.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Append">
+ <xs:annotation>
+ <xs:documentation>Data or metadata is an incremental update for an
existing data/metadata set or the provision of new data or documentation
(attribute values) formerly absent. If any of the supplied data or metadata
is already present, it will not replace that data or metadata. This
corresponds to the "Update" value found in version 1.0 of the SDMX
Technical Standards.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Replace">
+ <xs:annotation>
+ <xs:documentation>Data/metadata is to be replaced, and may also
include additional data/metadata to be appended.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Delete">
+ <xs:annotation>
+ <xs:documentation>Data/Metadata is to be deleted.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Information">
+ <xs:annotation>
+ <xs:documentation>Informational</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="IDType">
+ <xs:annotation>
+ <xs:documentation>IDType provides a type which is used for restricting
the characters in codes and IDs throughout all SDMX-ML messages. Valid
characters include A-Z, a-z, @, 0-9, _, -, $.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string">
+ <xs:pattern value="([A-Z]|[a-z]|\*|@|[0-9]|_|$|\-)*"/>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/SDMXCompactData.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright SDMX 2005 - www.sdmx.org -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/compact"
xmlns:compact="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/compact"
+xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/compact">
+
+<xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+
+
+
+<xs:element name="DataSet" type="DataSetType">
+ <xs:annotation>
+ <xs:documentation>The DataSet element contains the data
set.</xs:documentation>
+ </xs:annotation>
+
+
+</xs:element>
+
+<xs:complexType name="DataSetType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>DataSetType acts as a structural base, which is
extended through the addition of attributes to reflect the particular needs
of a specific key family using the xs:extends element. Attributes are
provided for describing the contents of a data or metadata set, which are
particularly important for interactions with the SDMX Registry: datasetID,
dataProviderSchemeAgencyID, dataProviderSchemeID, dataflowAgencyID, and
dataflowID all take the IDs specified by the attribute names. The action
attribute indicates whether the file is appending, replacing, or deleting.
Attributes reportingBeginDate, reportingEndDate, validFromDate, and
validToDate are inclusive. publicationYear holds the ISO 8601 four-digit
year, and publicationPeriod specifies the period of publication of the data
in terms of whatever provisioning agreements might be in force (ie, "Q1
2005" if that is the time of publication for a data set published on a
quarterly basis).</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="keyFamilyURI" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="datasetID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataProviderSchemeAgencyId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderSchemeId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataflowAgencyID" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataflowID" type="common:IDType" use="optional"/>
+ <xs:attribute name="action" type="common:ActionType" use="optional"/>
+ <xs:attribute name="reportingBeginDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="reportingEndDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validFromDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validToDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="publicationYear" type="xs:gYear" use="optional"/>
+ <xs:attribute name="publicationPeriod" type="common:TimePeriodType"
use="optional"/>
+</xs:complexType>
+
+<xs:element name="Group" type="GroupType">
+ <xs:annotation>
+ <xs:documentation>The Group element contains the
group.</xs:documentation>
+ </xs:annotation>
+</xs:element>
+
+<xs:complexType name="GroupType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>GroupType acts as a structural base, which is
extended through the addition of attributes to reflect the particular needs
of a specific key family using the xs:extends element.</xs:documentation>
+ </xs:annotation>
+
+
+</xs:complexType>
+
+<xs:element name="Series" type="SeriesType">
+ <xs:annotation>
+ <xs:documentation>The Series element contains the
series.</xs:documentation>
+ </xs:annotation>
+</xs:element>
+
+
+<xs:complexType name="SeriesType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>SeriesType acts as a structural base, which is
extended through the addition of attributes to reflect the particular needs
of a specific key family using the xs:extends element.</xs:documentation>
+ </xs:annotation>
+
+
+</xs:complexType>
+
+<xs:element name="Obs" type="ObsType">
+ <xs:annotation>
+ <xs:documentation>The Obs element contains the
observations.</xs:documentation>
+ </xs:annotation>
+</xs:element>
+
+
+<xs:complexType name="ObsType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>ObsType acts as a structural base, which is extended
through the addition of attributes to reflect the particular needs of a
specific key family using the xs:extends element.</xs:documentation>
+ </xs:annotation>
+
+</xs:complexType>
+
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/SDMXCrossSectionalData.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright SDMX 2005 - www.sdmx.org -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/cross"
xmlns:cross="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/cross"
+xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/cross">
+
+<xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+
+
+
+<xs:element name="DataSet" type="DataSetType">
+ <xs:annotation>
+ <xs:documentation>DataSet contains the data set.</xs:documentation>
+ </xs:annotation>
+
+
+</xs:element>
+
+<xs:complexType name="DataSetType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>DataSetType acts as a structural base, which is
extended through the addition of attributes to reflect the particular needs
of a specific key family using the xs:extends element. Attributes are
provided for describing the contents of a data or metadata set, which are
particularly important for interactions with the SDMX Registry: datasetID,
dataProviderSchemeAgencyID, dataProviderSchemeID, dataflowAgencyID, and
dataflowID all take the IDs specified by the attribute names. The action
attribute indicates whether the file is appending, replacing, or deleting.
Attributes reportingBeginDate, reportingEndDate, validFromDate, and
validToDate are inclusive. publicationYear holds the ISO 8601 four-digit
year, and publicationPeriod specifies the period of publication of the data
in terms of whatever provisioning agreements might be in force (ie, "Q1
2005" if that is the time of publication for a data set published on a
quarterly basis).</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="keyFamilyURI" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="datasetID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataProviderSchemeAgencyId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderSchemeId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataflowAgencyID" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataflowID" type="common:IDType" use="optional"/>
+ <xs:attribute name="action" type="common:ActionType" use="optional"/>
+ <xs:attribute name="reportingBeginDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="reportingEndDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validFromDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validToDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="publicationYear" type="xs:gYear" use="optional"/>
+ <xs:attribute name="publicationPeriod" type="common:TimePeriodType"
use="optional"/>
+</xs:complexType>
+
+<xs:element name="Group" type="GroupType">
+ <xs:annotation>
+ <xs:documentation>Group contains the group.</xs:documentation>
+ </xs:annotation>
+
+
+</xs:element>
+
+
+<xs:complexType name="GroupType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>GroupType acts as a structural base, which is
extended through the addition of attributes to reflect the particular needs
of a specific key family using the xs:extends element. </xs:documentation>
+ </xs:annotation>
+</xs:complexType>
+
+<xs:element name="Section" type="SectionType">
+ <xs:annotation>
+ <xs:documentation>Section contains the data section.</xs:documentation>
+ </xs:annotation>
+
+
+</xs:element>
+
+
+<xs:complexType name="SectionType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>SectionType acts as a structural base, which is
extended through the addition of attributes to reflect the particular needs
of a specific key family using the xs:extends element.</xs:documentation>
+ </xs:annotation>
+</xs:complexType>
+
+<xs:element name="Obs" type="ObsType">
+ <xs:annotation>
+ <xs:documentation>Obs contains the observation, with one or more
measures.</xs:documentation>
+ </xs:annotation>
+
+
+</xs:element>
+
+
+<xs:complexType name="ObsType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>ObsType acts as a structural base, which is extended
through the addition of attributes to reflect the particular needs of a
specific key family using the xs:extends element. It is capable of
expressing the value and attributes of any single available cross-sectional
measure (when extended).</xs:documentation>
+ </xs:annotation>
+
+</xs:complexType>
+
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/SDMXGenericData.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright SDMX 2005 - www.sdmx.org -->
+<xs:schema
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/generic"
xmlns:generic="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/generic"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/generic"
xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:annotation>
+ <xs:documentation/>
+ </xs:annotation>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+ <xs:element name="DataSet" type="DataSetType">
+ <xs:annotation>
+ <xs:documentation>The DataSet element contains one or more groups that
comprise the data set.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="DataSetType">
+ <xs:annotation>
+ <xs:documentation>DataSetType defines the structure of a data set. This
consists of a key family reference which contains the ID of the key family,
and the attribute values attached at the data set level. A DataSet may be
used to transmit documentation (that is, only attribute values), data, or a
combination of both. If providing only documentation, you need not send the
complete set of attributes. If transmitting only data, the Group may be
omitted if desired. Uniqueness constraints are defined for the attributes
of the data set. If dataset-level attributes are sent in a delete message,
then any valid attribute value will indicate that the current attribute
value should be deleted. The keyFamilyURI attribute is provided to allow a
URI (typically a URL) to be provided, pointing to an SDMX-ML Structure
message describing the key family. Attributes are provided for describing
the contents of a data or metadata set, which are particularly important
for interactions with the SDMX Registry: datasetID,
dataProviderSchemeAgencyID, dataProviderSchemeID, dataflowAgencyID, and
dataflowID all take the IDs specified by the attribute names. The action
attribute indicates whether the file is appending, replacing, or deleting.
Attributes reportingBeginDate, reportingEndDate, validFromDate, and
validToDate are inclusive. publicationYear holds the ISO 8601 four-digit
year, and publicationPeriod specifies the period of publication of the data
in terms of whatever provisioning agreements might be in force (ie, "Q1
2005" if that is the time of publication for a data set published on a
quarterly basis).
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="KeyFamilyRef" type="common:IDType" />
+ <xs:element name="Attributes" type="ValuesType" minOccurs="0">
+ <xs:unique name="SDMX_GenericDataSetAttributeUniqueness">
+ <xs:selector xpath="generic:Value"/>
+ <xs:field xpath="@concept"/>
+ </xs:unique>
+ </xs:element>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Group" type="GroupType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Series" type="SeriesType" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:choice>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="keyFamilyURI" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="datasetID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataProviderSchemeAgencyId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderSchemeId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataflowAgencyID" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataflowID" type="common:IDType" use="optional"/>
+ <xs:attribute name="action" type="common:ActionType" use="optional"/>
+ <xs:attribute name="reportingBeginDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="reportingEndDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validFromDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validToDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="publicationYear" type="xs:gYear" use="optional"/>
+ <xs:attribute name="publicationPeriod" type="common:TimePeriodType"
use="optional"/>
+
+ </xs:complexType>
+ <xs:complexType name="GroupType">
+ <xs:annotation>
+ <xs:documentation>The key values at the group level may be stated
explicitly, and all which are not wildcarded listed in GroupKey - they must
also all be given a value at the series level. It is not necessary to
specify the group key, however, as this may be inferred from the values
repeated at the series level. If only documentation (group-level
attributes) are being transmitted, however, the GroupKey cannot be omitted.
The type attribute contains the name of the declared group in the key
family. If any group-level attributes are specified in a delete message,
then any valid value supplied for the attribute indicates that the current
attribute value should be deleted for the specified attribute.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="GroupKey" type="ValuesType" minOccurs="0">
+ <xs:unique name="SDMX_GenericGroupKeyUniqueness">
+ <xs:selector xpath="generic:Value"/>
+ <xs:field xpath="@concept"/>
+ </xs:unique>
+ </xs:element>
+
+ <xs:element name="Attributes" type="ValuesType" minOccurs="0">
+ <xs:unique name="SDMX_GenericGroupAttributeUniqueness">
+ <xs:selector xpath="generic:Value"/>
+ <xs:field xpath="@concept"/>
+ </xs:unique>
+ </xs:element>
+ <xs:element name="Series" type="SeriesType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+
+ <xs:attribute name="type" type="xs:NMTOKEN" use="required"/>
+ </xs:complexType>
+ <xs:complexType name="SeriesType">
+ <xs:annotation>
+ <xs:documentation>SeriesType specifies the structure of a series. This
includes all of the key values, values for all the attributes, and the set
of observations making up the series content. Messages may transmit only
attributes, only data, or both. Regardless, the series key is always
required. Key values appear at the Series level in an ordered sequence
which corresponds to the key sequence in the key family. A series in a
delete message need not supply more than the key, indicating that the
entire series identified by that key should be deleted. If series
attributes are sent in a delete message, any valid value specified for an
attribute indicates that the attribute should be deleted.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="SeriesKey" type="SeriesKeyType">
+
+ <xs:unique name="SDMX_GenericSeriesKeyUniqueness">
+ <xs:selector xpath="generic:Value"/>
+ <xs:field xpath="@concept"/>
+ </xs:unique>
+ </xs:element>
+ <xs:element name="Attributes" type="ValuesType" minOccurs="0">
+ <xs:unique name="SDMX_GenericSeriesAttributeUniqueness">
+ <xs:selector xpath="generic:Value"/>
+ <xs:field xpath="@concept"/>
+ </xs:unique>
+ </xs:element>
+ <xs:element name="Obs" type="ObsType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SeriesKeyType">
+ <xs:annotation>
+ <xs:documentation>SeriesKeyType defines the contents of a series key.
Each non-time dimension must have a value supplied for it, in the order in
which the dimensions are specified in the key family. </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Value" type="ValueType" maxOccurs="unbounded"/>
+ </xs:sequence>
+
+ </xs:complexType>
+ <xs:complexType name="ObsType">
+ <xs:annotation>
+ <xs:documentation>ObsType defines the structure of an observation. This
includes a time and observation value, as well as values for each of the
attributes assigned at the observation level by the key family. In a delete
message, only the time need be given, indicating that the observation
identified by the key and time should be deleted. For an update message,
both time and observation value are required. If any attributes appear in a
delete message, any valid value supplied for an attribute indicates that
the current value should be deleted.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Time" type="common:TimePeriodType"/>
+ <xs:element name="ObsValue" type="ObsValueType" minOccurs="0"/>
+ <xs:element name="Attributes" type="ValuesType" minOccurs="0">
+ <xs:unique name="SDMX_GenericObsAttributeUniqueness">
+ <xs:selector xpath="generic:Value"/>
+ <xs:field xpath="@concept"/>
+ </xs:unique>
+ </xs:element>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ValuesType">
+ <xs:sequence>
+ <xs:element name="Value" type="ValueType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ValueType">
+ <xs:annotation>
+ <xs:documentation>ValueType is used to assign a single value to a
concept, as for attribute values and key values. It has no element content.
The startTime attribute is only used if the textFormat of the attribute is
of the Timespan type in the key family (in which case the value field takes
a duration).
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="concept" type="common:IDType"/>
+ <xs:attribute name="value" type="xs:string"/>
+ <xs:attribute name="startTime" type="xs:dateTime" use="optional"/>
+ </xs:complexType>
+
+
+ <xs:complexType name="ObsValueType">
+ <xs:annotation>
+ <xs:documentation>ObsValueType describes the information set for an
observation value. This is associated with the primary measure concept
declared in the key family. The startTime attribute is only used if the
textFormat of the observation is of the Timespan type in the key family (in
which case the value field takes a duration).
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="value" type="xs:double"/>
+ <xs:attribute name="startTime" type="xs:dateTime" use="optional"/>
+
+ </xs:complexType>
+
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/SDMXGenericMetadata.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,325 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) SDMX 2005
+All rights reserved.
+http://www.sdmx.org
+-->
+<xs:schema
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/genericmetadata"
elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/genericmetadata"
xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common">
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+
+<!-- Note that this schema would be carried inside the SDMX Message like
any other SDMX document type. The Message namespace is omitted here so that
it is easier to see the MetadaReport element and its contents. -->
+
+<xs:element name="MetadataSet" type="MetadataSetType"/>
+
+<xs:complexType name="MetadataSetType">
+ <xs:annotation>
+ <xs:documentation>The Metadata Set is a set of reported metadata against
a set of values for a given full or partial target identifier, as described
in a metadata structure definition. Child elements include identification
of the relevant metadata structure definition using the
MetadataStructureRef and MetadataStructureAgencyRef elements. The ReportRef
element includes the ID of the report structure as described in the
metadata structure definition. AttributeValueSet is a repeatable child
element which allows target identifier keys and their associated metadata
attribute values to be reported (this functions like a series element does
for data sets). An optional name and annotations may also be supplied. The
metadataStructureURI allows for a URI to be provided, pointing to the
SDMX-ML Structure Message representation of the referenced metadata
structure definition. Attributes are provided for describing the contents
of a data or metadata set, which are particularly important for
interactions with the SDMX Registry: datasetID, dataProviderSchemeAgencyID,
dataProviderSchemeID, dataflowAgencyID, and dataflowID all take the IDs
specified by the attribute names. The action attribute indicates whether
the file is appending, replacing, or deleting. Attributes
reportingBeginDate, reportingEndDate, validFromDate, and validToDate are
inclusive. publicationYear holds the ISO 8601 four-digit year, and
publicationPeriod specifies the period of publication of the data in terms
of whatever provisioning agreements might be in force (ie, "Q1 2005" if
that is the time of publication for a data set published on a quarterly
basis).</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataStructureRef" type="common:IDType"/>
+ <xs:element name="MetadataStructureAgencyRef" type="common:IDType"/>
+ <xs:element name="ReportRef" type="common:IDType" />
+ <xs:element name="AttributeValueSet" type="AttributeValueSetType"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="metadataStructureURI" type="xs:anyURI"
use="optional"/>
+ <xs:attribute name="datasetID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataProviderSchemeAgencyId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderSchemeId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataflowAgencyID" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataflowID" type="common:IDType" use="optional"/>
+ <xs:attribute name="action" type="common:ActionType" use="optional"/>
+ <xs:attribute name="reportingBeginDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="reportingEndDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validFromDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validToDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="publicationYear" type="xs:gYear" use="optional"/>
+ <xs:attribute name="publicationPeriod" type="common:TimePeriodType"
use="optional"/>
+</xs:complexType>
+
+<xs:complexType name="AttributeValueSetType">
+ <xs:annotation>
+ <xs:documentation>The attribute value set provides the values for a set
of metadata attributes reported against a target identifier key. The
TargetRef element contains the value of the metadata attribute's target
attribute in the metadata structure definition (that is, the ID of the full
or partial target identifier which is the target of the metadata report).
TargetValues is an element substructure which provides the specific full or
partial target identifier component values, and the ReportedAttribute
sub-element allows for values to be reported against the metadata
attributes as described in the referenced metadata structure definition for
the referenced full or partial targets.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="TargetRef" type="common:IDType" />
+ <xs:element name="TargetValues" type="TargetValuesType" />
+ <xs:element name="ReportedAttribute" type="ReportedAttributeType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="TargetValuesType">
+ <xs:annotation>
+ <xs:documentation>Target values contains the specific values for each
concept in the full or partial target identifier as described in a metadata
structure definition. These values typically come from codelists or other
item schemes. Each such value should be presented in the order given in the
metadata structure definition, and must use a valid representation for that
concept. Concepts are those referenced by the identifier components of the
target identifiers.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ComponentValue" type="ComponentValueType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+</xs:complexType>
+
+<xs:complexType name="ComponentValueType">
+ <xs:annotation>
+ <xs:documentation>Component values have an object attribute with an
object type value as provided in the metadata structure definition, a
component attribute which takes the ID of the identifier component in the
metadata structure definition's full target identifier, and a value, which
must be a valid value for that concept's representation as described in the
metadata structure definition.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:NMTOKEN">
+ <xs:attribute name="object" type="ObjectIDType" use="required"/>
+ <xs:attribute name="component" type="common:IDType" use="optional"/>
+
+
+ </xs:extension>
+ </xs:simpleContent>
+</xs:complexType>
+
+<xs:complexType name="ReportedAttributeType">
+ <xs:annotation>
+ <xs:documentation>Reported attributes hold the values which are to be
reported against the target specified in the metadata structure definition,
and according to the metadata attributes specified for the target
referenced in the TargetRef element. Each reported attribute may have Value
sub-elements (one per language) if it takes a text or numeric value. The
StartTime element is only used if the attribute being represented is of the
Timespan type (as described in the corresponding TextFormat element in the
metadata structure definition). In this case, the Value takes a duration.
Only one such value is allowed in the ReportedAttribute in this case. The
types of these values must conform to the limitations described in the
metadata structure definition. Also - if permitted by the metadata
structure definition - there may be one or more child ReportedAttribute
elements. These must be arranged in the nesting hierarchy given in the
metadat structure definition. The conceptID attribute provides the id of
the concept given in the metadata structure definition to which the
reported attribute corresponds.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Value" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="StartTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="ReportedAttribute" type="ReportedAttributeType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="conceptID" type="common:IDType" use="required"/>
+</xs:complexType>
+ <xs:simpleType name="ObjectIDType">
+ <xs:annotation>
+ <xs:documentation>The Object ID is used to reference a particular
Object within the SDMX Information Model's formalization of statistical
exchanges.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Agency">
+ <xs:annotation>
+ <xs:documentation>Agency</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ConceptScheme">
+ <xs:annotation>
+ <xs:documentation>Concept scheme</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Concept">
+ <xs:annotation>
+ <xs:documentation>Concept</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Codelist">
+ <xs:annotation>
+ <xs:documentation>Codelist</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Code">
+ <xs:annotation>
+ <xs:documentation>Code</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KeyFamily">
+ <xs:annotation>
+ <xs:documentation>Key family</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Component">
+ <xs:annotation>
+ <xs:documentation>Component</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KeyDescriptor">
+ <xs:annotation>
+ <xs:documentation>Key descriptor</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MeasureDescriptor">
+ <xs:annotation>
+ <xs:documentation>Measure descriptor</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AttributeDescriptor">
+ <xs:annotation>
+ <xs:documentation>Attribute descriptor</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GroupKeyDescriptor">
+ <xs:annotation>
+ <xs:documentation>Group key descriptor</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Dimension">
+ <xs:annotation>
+ <xs:documentation>Dimension</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Measure">
+ <xs:annotation>
+ <xs:documentation>Measure</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Attribute">
+ <xs:annotation>
+ <xs:documentation>Attribute</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CategoryScheme">
+ <xs:annotation>
+ <xs:documentation>Category scheme</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ReportingTaxonomy">
+ <xs:annotation>
+ <xs:documentation>Reporting taxonomy</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Category">
+ <xs:annotation>
+ <xs:documentation>Category</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="OrganisationScheme">
+ <xs:annotation>
+ <xs:documentation>Organisation scheme</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DataProvider">
+ <xs:annotation>
+ <xs:documentation>Data or metadata provioder</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MetadataStructure">
+ <xs:annotation>
+ <xs:documentation>Metadata structure definition</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="FullTargetIdentifier">
+ <xs:annotation>
+ <xs:documentation>Full target identifier</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PartialTargetIdentifier">
+ <xs:annotation>
+ <xs:documentation>Partial target identifier</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MetadataAttribute">
+ <xs:annotation>
+ <xs:documentation>Metadata attribute</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DataFlow">
+ <xs:annotation>
+ <xs:documentation>Data flow</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ProvisionAgreement">
+ <xs:annotation>
+ <xs:documentation>Data or metadata provision
agreement</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MetadataFlow">
+ <xs:annotation>
+ <xs:documentation>Metadata flow</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ContentConstraint">
+ <xs:annotation>
+ <xs:documentation>Content constraint</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AttachmentConstraint">
+ <xs:annotation>
+ <xs:documentation>Attachment constraint</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DataSet">
+ <xs:annotation>
+ <xs:documentation>Data set</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="XSDataSet">
+ <xs:annotation>
+ <xs:documentation>Cross-sectional data set</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MetadataSet">
+ <xs:annotation>
+ <xs:documentation>Metadata set</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="HierarchicalCodelist">
+ <xs:annotation>
+ <xs:documentation>Hierarchical codelist</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Hierarchy">
+ <xs:annotation>
+ <xs:documentation>Hierarchy</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="StructureSet">
+ <xs:annotation>
+ <xs:documentation>Structure set</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="StructureMap">
+ <xs:annotation>
+ <xs:documentation>Structure map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ComponentMap">
+ <xs:annotation>
+ <xs:documentation>Component map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CodelistMap">
+ <xs:annotation>
+ <xs:documentation>Codelist map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CodeMap">
+ <xs:annotation>
+ <xs:documentation>Code map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CategorySchemeMap">
+ <xs:annotation>
+ <xs:documentation>Category scheme map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CategoryMap">
+ <xs:annotation>
+ <xs:documentation>Category map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="OrganisationSchemeMap">
+ <xs:annotation>
+ <xs:documentation>Organisation scheme map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="OrganisationRoleMap">
+ <xs:annotation>
+ <xs:documentation>Organisation role map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ConceptSchemeMap">
+ <xs:annotation>
+ <xs:documentation>Concept scheme map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ConceptMap">
+ <xs:annotation>
+ <xs:documentation>Concept map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Process">
+ <xs:annotation>
+ <xs:documentation>Process</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ProcessStep">
+ <xs:annotation>
+ <xs:documentation>Process step</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/SDMXMessage.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright SDMX 2005 - www.sdmx.org -->
+<xs:schema
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/message"
elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/message"
xmlns:message="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/message"
xmlns:structure="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/structure"
xmlns:generic="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/generic"
xmlns:utility="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/utility"
xmlns:compact="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/compact"
xmlns:cross="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/cross"
xmlns:query="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/query"
xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
+xmlns:registry="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/registry"
+xmlns:genericmetadata="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/genericmetadata"
+xmlns:metadatareport="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/metadatareport">
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/structure"
schemaLocation="SDMXStructure.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/generic"
schemaLocation="SDMXGenericData.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/utility"
schemaLocation="SDMXUtilityData.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/compact"
schemaLocation="SDMXCompactData.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/cross"
schemaLocation="SDMXCrossSectionalData.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/query"
schemaLocation="SDMXQuery.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/registry"
schemaLocation="SDMXRegistry.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/genericmetadata"
schemaLocation="SDMXGenericMetadata.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/metadatareport"
schemaLocation="SDMXMetadataReport.xsd"/>
+ <xs:element name="Structure" type="StructureType">
+ <xs:annotation>
+ <xs:documentation>The Structure is a message that contains all the
structural metadata about a data set. This can be key families, concepts,
or codelists.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="GenericData" type="GenericDataType">
+ <xs:annotation>
+ <xs:documentation>The GenericDataType is used to convey data in a
cross-key-family form.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="UtilityData" type="UtilityDataType">
+ <xs:annotation>
+ <xs:documentation>The UtilityData contains data in an XML form which is
specific to each key family, according to standard mappings, and which is
optimized to support guided editing tools and other applications which
expect a "typical" XML schema. This format can be used to validate data in
a key-family-specific fashion as is typically expected of XML schemas, and
requires the entire data set. It cannot be used for incremental
updates.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CompactData" type="CompactDataType">
+ <xs:annotation>
+ <xs:documentation>CompactData contains data in an XML format which is
optimized for incremental updating, and the transfer of large data sets
bilaterally. It is specific to each key family, according to standard
mappings. It allows for key values to be expressed at a Group
level.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="CrossSectionalData" type="CrossSectionalDataType">
+ <xs:annotation>
+ <xs:documentation>CrossSectionalData contains data in an XML format
which is optimized for describing many observations at a single point in
time, and for the transfer of large data sets bilaterally. It is specific
to each key family, according to standard mappings. It allows for key
values to be expressed from the Group level down to the Observation level,
and permits multiple observation values with
different "measures".</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="GenericMetadata" type="GenericMetadataType">
+ <xs:annotation>
+ <xs:documentation>GenericMetadata contains reported metadata in an XML
format which supports any metadata structure definition.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="MetadataReport" type="MetadataReportType">
+ <xs:annotation>
+ <xs:documentation>MetadataReport contains a metadata report which is
specific to a particular metadata structure definition. This format allows
for the validation of the constraints described in the metadata structure
definition with a generic XML parser.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="RegistryInterface" type="RegistryInterfaceType">
+ <xs:annotation>
+ <xs:documentation>The RegistryInterfaceMessage is used to conduct all
interactions with the SDMX Registry Services.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="QueryMessage" type="QueryMessageType">
+ <xs:annotation>
+ <xs:documentation>The QueryMessageType is used to query databases
published on the web, and to invoke web services. It allows for queries to
be made regarding both data and structural metadata.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="MessageGroup" type="MessageGroupType">
+ <xs:annotation>
+ <xs:documentation>The MessageGroupType is used to allow for more than
one data or metadata message of a single type to be included in a single
transmission. This element arises from the requirement for some services to
be able to exchange data or metadata which may come from more than one
source, and be structured according to more than one key family or metadata
structure definition.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="MessageType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>The Message is an abstract type which is used by all
of the messages, to allow inheritance of common features. It also provides
uniqueness constraints for the header fields.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Header" type="HeaderType">
+ <xs:unique name="SDMX_HeaderNameLanguageUniqueness">
+ <xs:selector xpath="message:Name"/>
+ <xs:field xpath="@xml:lang"/>
+ </xs:unique>
+ <xs:unique name="SDMX_HeaderSenderIDUniqueness">
+ <xs:selector xpath="message:Sender"/>
+ <xs:field xpath="@id"/>
+ </xs:unique>
+ <xs:unique name="SDMX_HeaderReceiverIDUniqueness">
+ <xs:selector xpath="message:Receiver"/>
+ <xs:field xpath="@id"/>
+ </xs:unique>
+ <xs:unique name="SDMX_HeaderDataSetIDUniqueness">
+ <xs:selector xpath="message:DataSetID"/>
+ <xs:field xpath="."/>
+ </xs:unique>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="StructureType">
+ <xs:annotation>
+ <xs:documentation>StructureType defines the contents of a structure
message.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:sequence>
+ <xs:element name="OrganisationSchemes"
type="structure:OrganisationSchemesType" minOccurs="0"/>
+ <xs:element name="Dataflows" type="structure:DataflowsType"
minOccurs="0"/>
+ <xs:element name="Metadataflows" type="structure:MetadataflowsType"
minOccurs="0"/>
+ <xs:element name="CategorySchemes"
type="structure:CategorySchemesType" minOccurs="0"/>
+ <xs:element name="CodeLists" type="structure:CodeListsType"
minOccurs="0"/>
+ <xs:element name="HierarchicalCodelists"
type="structure:HierarchicalCodelistsType" minOccurs="0"/>
+ <xs:element name="Concepts" type="structure:ConceptsType"
minOccurs="0"/>
+ <xs:element name="MetadataStructureDefinitions"
type="structure:MetadataStructureDefinitionsType" minOccurs="0"/>
+ <xs:element name="KeyFamilies" type="structure:KeyFamiliesType"
minOccurs="0"/>
+ <xs:element name="StructureSets" type="structure:StructureSetsType"
minOccurs="0"/>
+ <xs:element name="ReportingTaxonomies"
type="structure:ReportingTaxonomiesType" minOccurs="0"/>
+ <xs:element name="Processes" type="structure:ProcessesType"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="GenericDataType">
+ <xs:annotation>
+ <xs:documentation>GenericDataType defines the contents of a GenericData
message.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:sequence>
+ <xs:element name="DataSet" type="generic:DataSetType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="UtilityDataType">
+ <xs:annotation>
+ <xs:documentation>UtilityDataType defines the contents of a UtilityData
message.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:sequence>
+ <xs:element ref="utility:DataSet"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="CompactDataType">
+ <xs:annotation>
+ <xs:documentation>CompactDataType defines the contents of a CompactData
message.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:sequence>
+ <xs:element ref="compact:DataSet"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="CrossSectionalDataType">
+ <xs:annotation>
+ <xs:documentation>CrossSectionalDataType defines the contents of a
CrossSectionalData message.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:sequence>
+ <xs:element ref="cross:DataSet"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="GenericMetadataType">
+ <xs:annotation>
+ <xs:documentation>GenericMetadataType defines the contents of a
Generic Metadata message.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:sequence>
+ <xs:element ref="genericmetadata:MetadataSet"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="MetadataReportType">
+ <xs:annotation>
+ <xs:documentation>MetadataReportType defines the contents of a
metadata structure definition-specific Metadata Report
message.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:sequence>
+ <xs:element ref="metadatareport:MetadataSet"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="QueryMessageType">
+ <xs:annotation>
+ <xs:documentation>QueryMessageType defines the contents of a
QueryMessage.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:sequence>
+ <xs:element name="Query" type="query:QueryType"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="RegistryInterfaceType">
+ <xs:annotation>
+ <xs:documentation>This is a type which describes a structure for
holding all of the various dedicated registry interface message
types.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:choice>
+ <xs:element name="SubmitSubscriptionRequest"
type="registry:SubmitSubscriptionRequestType"/>
+ <xs:element name="SubmitSubscriptionResponse"
type="registry:SubmitSubscriptionResponseType"/>
+ <xs:element name="NotifyRegistryEvent"
type="registry:NotifyRegistryEventType"/>
+ <xs:element name="SubmitRegistrationRequest"
type="registry:SubmitRegistrationRequestType"/>
+ <xs:element name="SubmitRegistrationResponse"
type="registry:SubmitRegistrationResponseType"/>
+ <xs:element name="QueryRegistrationRequest"
type="registry:QueryRegistrationRequestType"/>
+ <xs:element name="QueryRegistrationResponse"
type="registry:QueryRegistrationResponseType"/>
+ <xs:element name="SubmitStructureRequest"
type="registry:SubmitStructureRequestType"/>
+ <xs:element name="SubmitStructureResponse"
type="registry:SubmitStructureResponseType"/>
+ <xs:element name="QueryStructureRequest"
type="registry:QueryStructureRequestType"/>
+ <xs:element name="QueryStructureResponse"
type="registry:QueryStructureResponseType"/>
+ <xs:element name="SubmitProvisioningRequest"
type="registry:SubmitProvisioningRequestType"/>
+ <xs:element name="SubmitProvisioningResponse"
type="registry:SubmitProvisioningResponseType"/>
+ <xs:element name="QueryProvisioningRequest"
type="registry:QueryProvisioningRequestType"/>
+ <xs:element name="QueryProvisioningResponse"
type="registry:QueryProvisioningResponseType"/>
+ </xs:choice>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:complexType name="MessageGroupType">
+ <xs:annotation>
+ <xs:documentation>MessageGroupType defines the contents of a
MessageGroup message.</xs:documentation>
+ </xs:annotation>
+ <xs:complexContent>
+ <xs:extension base="MessageType">
+ <xs:choice>
+ <xs:element ref="generic:DataSet" maxOccurs="unbounded"/>
+ <xs:element ref="utility:DataSet" maxOccurs="unbounded"/>
+ <xs:element ref="compact:DataSet" maxOccurs="unbounded"/>
+ <xs:element ref="cross:DataSet" maxOccurs="unbounded"/>
+ <xs:element ref="genericmetadata:MetadataSet" maxOccurs="unbounded"/>
+ <xs:element ref="metadatareport:MetadataSet" maxOccurs="unbounded"/>
+ </xs:choice>
+ <xs:attribute name="id" type="xs:NMTOKEN" use="optional"/>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ <xs:element name="Header" type="HeaderType">
+ <xs:annotation>
+ <xs:documentation>Header type is declared globally so that it can
function as the head of a substitution group for schemas which are used
internally. While this is an exception to the overall design of SDMX-ML,
many users feel this construct is useful. Note that when SDMX-ML messages
are exchanged outside an organization, the standard header should be used -
no assumptions about additional fields in substituted types should be made
unless explicitly agreed-to by counterparties.</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="HeaderType">
+ <xs:annotation>
+ <xs:documentation>HeaderType defines the header fields used for all
messages. ID identifies a data flow definition, which, when combined with
time, uniquely identifies the data set. Test indicates whather the message
is for test purposes or not. Truncated is used in data messages which are
responding to Query messages, and is set to true only if the response has
been truncated to meet size limits suggested by the defaultLimit attribute
in the Query mesage. Name provides a name for the transmission. Prepared
is the date prepared. Sender is information about the sender, and Receiver
is information about the receiver. Agency provides the code
identifier/abbreviation for the maintenance agency of a data set. Data set
id provides an identifier for a contained data set. Action code provides a
code for determining whether the enclosed message is an Update or Delete
message (not to be used with the UtilityData message). KeyFamilyRef is used
to reference a key family for a contained data set, using its id. (This
information is required at the DataSet level for some messages, but is
provided here as a convenience for those messages which do not require it.)
KeyFamilyAgency specifies the agency of the key family using its coded id.
Fields which refer to a contained data set need not be used if the message
contains a query or structural information - these messages provide
specific fields for holding this information. The ones here are not to be
used as defaults. Extracted is a time-stamp from the system rendering the
data; ReportingBegin and ReportingEnd provide the time period covered by
the message (in the case of data). Source provides human-readable
information about the source of the data.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ID" type="common:IDType"/>
+ <xs:element name="Test" type="xs:boolean" default="false"/>
+ <xs:element name="Truncated" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="Name" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Prepared" type="HeaderTimeType"/>
+ <xs:element name="Sender" type="PartyType" maxOccurs="unbounded">
+ <xs:unique name="SDMX_SenderNameLanguageUniqueness">
+ <xs:selector xpath="message:Name"/>
+ <xs:field xpath="@xml:lang"/>
+ </xs:unique>
+ </xs:element>
+ <xs:element name="Receiver" type="PartyType" minOccurs="0"
maxOccurs="unbounded">
+ <xs:unique name="SDMX_ReceiverNameLanguageUniqueness">
+ <xs:selector xpath="message:Name"/>
+ <xs:field xpath="@xml:lang"/>
+ </xs:unique>
+ </xs:element>
+ <xs:element name="KeyFamilyRef" type="xs:NMTOKEN" minOccurs="0"/>
+ <xs:element name="KeyFamilyAgency" type="xs:NMTOKEN" minOccurs="0"/>
+ <xs:element name="DataSetAgency" type="xs:NMTOKEN" minOccurs="0"/>
+ <xs:element name="DataSetID" type="xs:NMTOKEN" minOccurs="0"/>
+ <xs:element name="DataSetAction" type="common:ActionType"
minOccurs="0"/>
+ <xs:element name="Extracted" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="ReportingBegin" type="HeaderTimeType" minOccurs="0"/>
+ <xs:element name="ReportingEnd" type="HeaderTimeType" minOccurs="0"/>
+ <xs:element name="Source" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="PartyType">
+ <xs:annotation>
+ <xs:documentation>PartyType defines the information which is sent about
various parties such as senders and receivers of messages. The Name is the
ID of the party, and Contact provides contact details.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <!-- This is for the organization name, not the contact name -->
+ <xs:element name="Contact" type="ContactType" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="xs:NMTOKEN" use="required"/>
+ <!-- From organization codelist or agency codelist, depending on where
used-->
+ </xs:complexType>
+ <xs:complexType name="ContactType">
+ <xs:annotation>
+ <xs:documentation>ContactType provides defines the contact information
about a party. The Name provides a human-readable name.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Department" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Role" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Telephone" type="xs:string"/>
+ <xs:element name="Fax" type="xs:string"/>
+ <xs:element name="X400" type="xs:string"/>
+ <xs:element name="URI" type="xs:anyURI"/>
+ <xs:element name="Email" type="xs:string"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:simpleType name="HeaderTimeType">
+ <xs:annotation>
+ <xs:documentation>Provides a union type of xs:date and xs:dateTime for
the header fields in the message.</xs:documentation>
+ </xs:annotation>
+ <xs:union memberTypes="xs:dateTime xs:date"/>
+ </xs:simpleType>
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/SDMXMetadataReport.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright SDMX 2005 - www.sdmx.org -->
+<xs:schema
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/metadatareport"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/metadatareport"
xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+ <xs:element name="MetadataSet" type="MetadataSetType">
+ <xs:annotation>
+ <xs:documentation>The MetadataSet element contains
metadata-structure-specific report(s)described in a single metadata
structure definition. Attributes are provided for describing the contents
of a data or metadata set, which are particularly important for
interactions with the SDMX Registry: datasetID, dataProviderSchemeAgencyID,
dataProviderSchemeID, dataflowAgencyID, and dataflowID all take the IDs
specified by the attribute names. The action attribute indicates whether
the file is appending, replacing, or deleting. Attributes
reportingBeginDate, reportingEndDate, validFromDate, and validToDate are
inclusive. publicationYear holds the ISO 8601 four-digit year, and
publicationPeriod specifies the period of publication of the data in terms
of whatever provisioning agreements might be in force (ie, "Q1 2005" if
that is the time of publication for a data set published on a quarterly
basis).</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="MetadataSetType">
+ <xs:annotation>
+ <xs:documentation>MetadataReportType defines the structure of a
metadata structure definition-specific Metadata Report. This consists of a
MetadataStructureRef which holds the ID fo the metadata structure, and
MetadataStructureAgencyRef, which holds the ID of the maintraenance agency
of the metadata structure, and Version, which provides the version number
of the referenced metadata structure definition. If not provided, version
is assumed to be "1.0". This type is designed to be extended to hold the
metadata-structure-sepcific fields needed to validate a specific metadata
report.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MetadataStructureRef" type="common:IDType"/>
+ <xs:element name="MetadataStructureAgencyRef" type="common:IDType"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="MetadataStructureURI" type="xs:anyURI"
use="optional"/>
+ <xs:attribute name="datasetID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataProviderSchemeAgencyId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderSchemeId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataflowAgencyID" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataflowID" type="common:IDType" use="optional"/>
+ <xs:attribute name="action" type="common:ActionType" use="optional"/>
+ <xs:attribute name="reportingBeginDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="reportingEndDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validFromDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validToDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="publicationYear" type="xs:gYear" use="optional"/>
+ <xs:attribute name="publicationPeriod" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+
+
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/SDMXQuery.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,441 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright SDMX 2005 - www.sdmx.org -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/query"
xmlns:query="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/query"
xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/query">
+
+<xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+
+ <xs:element name="Query" type="QueryType">
+ <xs:annotation>
+ <xs:documentation>The Query message allows standard querying of
SDMX-compliant databases and web services. It is intended to be used in
non-registry exchanges, and is focused on data sets and metadata sets. It
allows queries to retrieve data, metadata, key families, metadata structure
definitions, codelists, concepts, and other structural metadata. Note that
date and time formats are structured according to the
common:TimePeriodType, rather than being specified in the query. The
response documents for this query mesage are data formats (for data
queries), metadata formats (for metadata queries), and the SDMX Structure
MEssage (for all other queries).</xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:complexType name="QueryType">
+ <xs:annotation>
+ <xs:documentation>The Query element is a top-level element for this
namespace, which is referenced by the SDMX message envelope, or could be
put inside another envelope, such as SOAP. It contains a query. The
defaultLimit attribute is the suggested maximum response size in
kilobytes.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="DataWhere" type="DataWhereType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataWhere" type="MetadataWhereType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="KeyFamilyWhere" type="KeyFamilyWhereType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="MetadataStructureWhere"
type="MetadataStructureWhereType" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="CodelistWhere" type="CodelistWhereType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="ConceptWhere" type="ConceptWhereType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="AgencyWhere" type="AgencyWhereType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataProviderWhere" type="DataProviderWhereType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="HierarchicalCodelistWhere"
type="HierarchicalCodelistWhereType" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="ReportingTaxonomyWhere"
type="ReportingTaxonomyWhereType" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="DataflowWhere" type="DataflowWhereType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataflowWhere" type="MetadataflowWhereType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="StructureSetWhere" type="StructureSetWhereType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="ProcessWhere" type="ProcessWhereType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="OrganisationSchemeWhere"
type="OrganisationSchemeWhereType" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="ConceptSchemeWhere" type="ConceptSchemeWhereType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="CategorySchemeWhere" type="CategorySchemeWhereType"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ <xs:attribute name="defaultLimit" type="xs:integer" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="DataWhereType">
+ <xs:annotation>
+ <xs:documentation>The DataWhere element representes a query for data.
It contains all of the clauses in that query, represented by its child
elements. Values are the IDs of the referenced object.</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element name="DataSet" type="xs:string"/>
+ <xs:element name="KeyFamily" type="xs:string"/>
+ <xs:element name="Dimension" type="DimensionType"/>
+ <xs:element name="Attribute" type="AttributeType"/>
+ <xs:element name="Codelist" type="CodelistType"/>
+ <xs:element name="Time" type="TimeType"/>
+ <xs:element name="Category" type="CategoryType"/>
+ <xs:element name="Concept" type="xs:string"/>
+ <xs:element name="DataProvider" type="xs:string"/>
+ <xs:element name="Dataflow" type="xs:string"/>
+ <xs:element name="Version" type="xs:string"/>
+ <xs:element name="Or" type="OrType"/>
+ <xs:element name="And" type="AndType"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="MetadataWhereType">
+ <xs:annotation>
+ <xs:documentation>The MetadataWhere element representes a query for
metadata. It contains all of the clauses in that query, represented by its
child elements. Values are the IDs of the referenced
object.</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element name="MetadataSet" type="xs:string"/>
+ <xs:element name="MetadataStructure" type="xs:string"/>
+ <xs:element name="StructureComponent" type="StructureComponentType"/>
+ <xs:element name="Attribute" type="AttributeType"/>
+ <xs:element name="Codelist" type="CodelistType"/>
+ <xs:element name="Time" type="TimeType"/>
+ <xs:element name="Category" type="CategoryType"/>
+ <xs:element name="Concept" type="xs:string"/>
+ <xs:element name="DataProvider" type="xs:string"/>
+ <xs:element name="Metadataflow" type="xs:string"/>
+ <xs:element name="Version" type="xs:string"/>
+ <xs:element name="Or" type="OrType"/>
+ <xs:element name="And" type="AndType"/>
+ </xs:choice>
+
+
+ </xs:complexType>
+
+ <xs:complexType name="AndType">
+ <xs:annotation>
+ <xs:documentation> For the And element, each of its immediate child
elements represent clauses all of which represent conditions which must be
satisfied. If children are A, B, and C, then any legitimate response will
meet conditions A, B, and C. Values are the IDs of the referenced
object.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="DataSet" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataSet" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="KeyFamily" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataStructure" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Dimension" type="DimensionType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="StructureComponent" type="StructureComponentType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="Attribute" type="AttributeType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Codelist" type="CodelistType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Time" type="TimeType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Category" type="CategoryType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Concept" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataProvider" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Dataflow" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Metadataflow" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Or" type="OrType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="And" type="AndType" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OrType">
+ <xs:annotation>
+ <xs:documentation>The Or element's immediate children represent clauses
in the query any one of which is sufficient to satisfy the query. If these
children are A, B, and C, then any result which meets condition A, or
condition B, or condition C is a match for that query. Values are the IDs
of the referenced object.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="DataSet" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataSet" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="KeyFamily" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataStructure" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Dimension" type="DimensionType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="StructureComponent" type="StructureComponentType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="Attribute" type="AttributeType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Codelist" type="CodelistType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Time" type="TimeType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Category" type="CategoryType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Concept" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataProvider" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Dataflow" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Metadataflow" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Or" type="OrType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="And" type="AndType" minOccurs="0"
maxOccurs="unbounded"/> </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DimensionType">
+ <xs:annotation>
+ <xs:documentation>Dimension elements contain the (single) value being
searched on within the key of the data set. The id attribute holds the ID
of the dimension. If the content is empty, then the query is for any
dimension with the given name. If the name attribute is not supplied, then
the query is for the given key value within any
dimension.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="id" type="xs:string" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="StructureComponentType">
+ <xs:annotation>
+ <xs:documentation>StructureComponent elements contain the (single)
value being searched on within the key of data set, but this value can be
either a code value or the alias assigned to a set of equivalent code
values. The id attribute holds the ID of the dimension, attribute, or alias
assigned to a component in a structure set. If the content is empty, then
the query is for any component with the given name or alias. If the name
attribute is not supplied, then the query is for the given code value or
alias within any component or component alias.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="id" type="xs:string" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="AttributeType">
+ <xs:annotation>
+ <xs:documentation>Attribute elements contain the (single) value of an
attribute being queried for. The id attribute contains the id of the
attribute. The attachmentLevel attribute specifies the attachment level of
the attribute. If the content of Attribute is empty, then the search is for
the specified attribute (and attachment level). If the name attribute is
not specified, then the search is on any attribute. If the attachmentLevel
attribute is not specified, then the query is for an attribute at any
attachment level, as the value defaults to "Any".</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="id" type="xs:string" use="optional"/>
+ <xs:attribute name="attachmentLevel" type="AttachmentLevelType"
default="Any"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:simpleType name="AttachmentLevelType">
+ <xs:annotation>
+ <xs:documentation>This type supplies an enumeration of attachment
levels corresponding to those in the SDMX Information Model, plus a value
of "Any" where the search is wildcarded.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="DataSet">
+ <xs:annotation>
+ <xs:documentation>Attached at the Data Set level</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Group">
+ <xs:annotation>
+ <xs:documentation>Attached at the Group level</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Series">
+ <xs:annotation>
+ <xs:documentation>Attached at the Series level</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Observation">
+ <xs:annotation>
+ <xs:documentation>Attached at the Observation level</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Any">
+ <xs:annotation>
+ <xs:documentation>Attached at any attachment level</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:complexType name="CodelistType">
+ <xs:annotation>
+ <xs:documentation>The Codelist element allows queries to specify a
(single) value found within a codelist as the element content, and the
agency-qualified name of the codelist being queried for in the name
attribute. If no content is supplied, then the query is for the named
codelist. If the id attribute is left empty, then the value is searched for
in any codelist.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="id" type="xs:string" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="CategoryType">
+ <xs:annotation>
+ <xs:documentation>The Category element allows for a search to be made
on the values within a specific category, which is specified (in
agency-qualified form) with the name attribute. If there is no element
content, then the search is for the named Category; if the name is not
supplied, then the category value supplied as content should be sought-for
in all available categories.</xs:documentation>
+ </xs:annotation>
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute name="ID" type="common:IDType" use="optional"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="optional"/>
+ <xs:attribute name="CategoryScheme" type="common:IDType"
use="optional"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="KeyFamilyWhereType">
+ <xs:annotation>
+ <xs:documentation>The KeyFamilyWhere element representes a query for a
key family or key families. It contains all of the clauses in that query,
represented by its child elements. Values are the IDs of the referenced
object.</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element name="KeyFamily" type="xs:string"/>
+ <xs:element name="Dimension" type="DimensionType"/>
+ <xs:element name="Attribute" type="AttributeType"/>
+ <xs:element name="Codelist" type="CodelistType"/>
+ <xs:element name="Category" type="CategoryType"/>
+ <xs:element name="Concept" type="xs:string"/>
+ <xs:element name="AgencyID" type="xs:string"/>
+ <xs:element name="Version" type="xs:string"/>
+ <xs:element name="Or" type="OrType"/>
+ <xs:element name="And" type="AndType"/>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="MetadataStructureWhereType">
+ <xs:annotation>
+ <xs:documentation>The MetadataStructureWhere element representes a
query for a metadata structure or structures. It contains all of the
clauses in that query, represented by its child elements. Values are the
IDs of the referenced object.</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element name="KeyFamily" type="xs:string"/>
+ <xs:element name="MetadataStructure" type="xs:string"/>
+ <xs:element name="StructureSet" type="xs:string"/>
+ <xs:element name="Dimension" type="DimensionType"/>
+ <xs:element name="StructureComponent" type="StructureComponentType"/>
+ <xs:element name="Attribute" type="AttributeType"/>
+ <xs:element name="Codelist" type="CodelistType"/>
+ <xs:element name="Category" type="CategoryType"/>
+ <xs:element name="Concept" type="xs:string"/>
+ <xs:element name="AgencyID" type="xs:string"/>
+ <xs:element name="Version" type="xs:string"/>
+ <xs:element name="Or" type="OrType"/>
+ <xs:element name="And" type="AndType"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="CodelistWhereType">
+ <xs:annotation>
+ <xs:documentation>The CodelistWhere element representes a query for a
codelist or codelists. It contains all of the clauses in that query,
represented by its child elements. Values are the IDs of the referenced
object.</xs:documentation>
+ </xs:annotation>
+
+ <xs:choice>
+ <xs:element name="Codelist" type="CodelistType"/>
+ <xs:element name="AgencyID" type="xs:string"/>
+ <xs:element name="Version" type="xs:string"/>
+ <xs:element name="Or" type="OrType"/>
+ <xs:element name="And" type="AndType"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="ConceptWhereType">
+ <xs:annotation>
+ <xs:documentation>The ConceptWhere element representes a query for a
concept or concepts. It contains all of the clauses in that query,
represented by its child elements. Values are the IDs of the referenced
object.</xs:documentation>
+ </xs:annotation>
+
+ <xs:choice>
+ <xs:element name="Concept" type="xs:string"/>
+ <xs:element name="AgencyID" type="xs:string"/>
+ <xs:element name="Version" type="xs:string"/>
+ <xs:element name="Or" type="OrType"/>
+ <xs:element name="And" type="AndType"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="AgencyWhereType">
+ <xs:annotation>
+ <xs:documentation>The AgencyWhere element representes a query for
details for an Agency. It contains all of the clauses in that query,
represented by its child elements. Values are the IDs of the referenced
object.</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element name="KeyFamily" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataStructure" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="StructureSet" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Codelist" type="CodelistType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Category" type="CategoryType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Concept" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Or" type="OrType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="And" type="AndType" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:choice>
+ </xs:complexType>
+ <xs:complexType name="DataProviderWhereType">
+ <xs:annotation>
+ <xs:documentation>The DataProviderWhere element representes a query for
details for a provider of data or metadata sets. It contains all of the
clauses in that query, represented by its child elements. Values are the
IDs of the referenced object.</xs:documentation>
+ </xs:annotation>
+ <xs:choice>
+ <xs:element name="DataSet" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataSet" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="KeyFamily" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataStructure" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="StructureSet" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Codelist" type="CodelistType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Category" type="CategoryType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Concept" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Or" type="OrType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="And" type="AndType" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:choice>
+ </xs:complexType>
+
+
+ <xs:complexType name="TimeType">
+ <xs:annotation>
+ <xs:documentation>TimeType contains the time point or period for which
results should be supplied. When StartTime and EndTime are used, these must
be understood as inclusive.</xs:documentation>
+ </xs:annotation>
+
+ <xs:choice>
+ <xs:sequence>
+ <xs:element name="StartTime" type="common:TimePeriodType"/>
+ <xs:element name="EndTime" type="common:TimePeriodType" minOccurs="0"/>
+ </xs:sequence>
+ <xs:element name="Time" type="common:TimePeriodType"/>
+ </xs:choice>
+ </xs:complexType>
+
+
+ <xs:complexType name="StructureSetWhereType">
+ <xs:annotation>
+ <xs:documentation>The StructureSetWhere element represents a query for
a structure set or structure sets. Like other maintainable objects, it must
be queried for using information about its agency, ID, and/or version. Any
field not supplied will be taken as matching all of that
type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"/>
+ <xs:element name="ID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="HierarchicalCodelistWhereType">
+ <xs:annotation>
+ <xs:documentation>The HierarchicalCodelistWhere element represents a
query for a hierarchical codelist or codelists. Like other maintainable
objects, it must be queried for using information about its agency, ID,
and/or version. Any field not supplied will be taken as matching all of
that type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"/>
+ <xs:element name="ID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ReportingTaxonomyWhereType">
+ <xs:annotation>
+ <xs:documentation>The ReportingTaxonomyWhere element represents a query
for a reporting taxonomy or taxonomies. Like other maintainable objects, it
must be queried for using information about its agency, ID, and/or version.
Any field not supplied will be taken as matching all of that
type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"/>
+ <xs:element name="ID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="DataflowWhereType">
+ <xs:annotation>
+ <xs:documentation>The DataflowWhereType element represents a query for
a dataflow or dataflows. Like other maintainable objects, it must be
queried for using information about its agency, ID, and/or version. Any
field not supplied will be taken as matching all of that
type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"/>
+ <xs:element name="ID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="MetadataflowWhereType">
+ <xs:annotation>
+ <xs:documentation>The MetadataflowWhereType element represents a query
for a metadataflow or metadataflows. Like other maintainable objects, it
must be queried for using information about its agency, ID, and/or version.
Any field not supplied will be taken as matching all of that
type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"/>
+ <xs:element name="ID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProcessWhereType">
+ <xs:annotation>
+ <xs:documentation>The ProcessWhere element represents a query for a
process or processes. Like other maintainable objects, it must be queried
for using information about its agency, ID, and/or version. Any field not
supplied will be taken as matching all of that type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"/>
+ <xs:element name="ID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="OrganisationSchemeWhereType">
+ <xs:annotation>
+ <xs:documentation>The OrganisationSchemeWhere element represents a
query for an organisation scheme or schemes. Like other maintainable
objects, it must be queried for using information about its agency, ID,
and/or version. Any field not supplied will be taken as matching all of
that type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"/>
+ <xs:element name="ID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ConceptSchemeWhereType">
+ <xs:annotation>
+ <xs:documentation>The ConceptSchemeWhere element represents a query for
a concept scheme or schemes. Like other maintainable objects, it must be
queried for using information about its agency, ID, and/or version. Any
field not supplied will be taken as matching all of that
type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"/>
+ <xs:element name="ID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CategorySchemeWhereType">
+ <xs:annotation>
+ <xs:documentation>The CategorySchemeWhere element represents a query
for a category scheme or schemes. Like other maintainable objects, it must
be queried for using information about its agency, ID, and/or version. Any
field not supplied will be taken as matching all of that
type.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="AgencyID" type="xs:string" minOccurs="0"/>
+ <xs:element name="ID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+
+ </xs:sequence>
+ </xs:complexType>
+
+
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/SDMXRegistry.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,797 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Copyright (c) SDMX 2005
+All rights reserved.
+http://www.sdmx.org
+
+
+
+-->
+
+<xs:schema
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/registry"
elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/registry"
xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
xmlns:structure="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/structure"
>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/structure"
schemaLocation="SDMXStructure.xsd"/>
+
+ <xs:complexType name="SubmitSubscriptionRequestType">
+ <xs:annotation>
+ <xs:documentation>The SubmitSubscriptionRequest element is submitted to
the registry to subscribe to registration and change events for specific
registry resources.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Subscription" type="SubscriptionType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SubmitSubscriptionResponseType">
+ <xs:annotation>
+ <xs:documentation>The SubmitSubscriptionResponse element contains
information which describes the success or failure of a Subscription,
providing any error messages in the event of failure. It also returns the
registry URN of the subscription, and the subscriber-assigned
ID.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="SubscriptionURN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="SubscriberAssignedID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="SubscriptionStatus" type="StatusMessageType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="NotifyRegistryEventType">
+ <xs:annotation>
+ <xs:documentation>The NotifyRegistryEvent element is sent by the
registry services to subscribers, to notify them of specific registration
and change events. EventTime specifies the time of the triggering event.
ObjectURN provides the URN of the object on which the event occurred.
SubscriptionURN provides the registry/repository URN of the subscription.
EventAction indicates the nature of the event - whether the action was an
addition, a modification, or a deletion.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="EventTime" type="xs:dateTime"/>
+ <xs:element name="ObjectURN" type="xs:anyURI"/>
+ <xs:element name="SubscriptionURN" type="xs:anyURI"/>
+ <xs:element name="EventAction" type="common:ActionType"/>
+ <xs:choice>
+ <xs:element name="StructuralEvent" type="StructuralEventType"/>
+ <xs:element name="ProvisioningEvent" type="ProvisioningEventType"/>
+ <xs:element name="RegistrationEvent" type="RegistrationEventType"/>
+ </xs:choice>
+
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SubmitRegistrationRequestType">
+ <xs:annotation>
+ <xs:documentation>SubmitRegistrationRequest is sent to the registry by
an agency or data/metadata provider to request registration for a data set
or metadata set. The resource to be registered must be accessible to the
registry services at an indicated URL, so that it can be processed by those
services. This is the datasource, which may also have been specified for
the data provider or provision agreement, in which case it need not appear
here. Constraints describing the content and release calendar of the
registered dataset (and, for metadata sets, the release calendar) may also
be included.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Registration" type="RegistrationType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SubmitRegistrationResponseType">
+ <xs:annotation>
+ <xs:documentation>This document is sent to the agency or data/metadata
provider in response to a registration request. It indicates the success or
failure of the registration request, and contains any error messages
generated by the registration service.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="RegistrationStatus" type="RegistrationStatusType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="QueryRegistrationRequestType">
+ <xs:annotation>
+ <xs:documentation>The QueryRegistrationRequest is used to query the
contents of a registry for data sets and metadata sets. The
QueryRegistrationRequest specifies whether the result set should include
metadata sets, data sets, or both with the QueryType element. The
constraints which characterize the search - including reference period, are
contained in teh Constraints within the child object
references.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="QueryType" type="QueryTypeType"/>
+ <xs:choice>
+ <xs:element name="ProvisionAgreementRef"
type="ProvisionAgreementRefType"/>
+ <xs:element name="DataflowRef" type="DataflowRefType"/>
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType"/>
+ <xs:element name="DataProviderRef" type="DataProviderRefType"/>
+ </xs:choice>
+
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="QueryRegistrationResponseType">
+ <xs:annotation>
+ <xs:documentation>The QueryRegistrationResponse is sent as a response
document to anyone querying the contents of a registry. The results set
contains a set of links to data and/or metadata If the result set is null,
or there is some other problem with the query, then appropriate error
messages and statuses will be returned.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="QueryResult" type="QueryResultType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SubmitStructureRequestType">
+ <xs:annotation>
+ <xs:documentation>SubmitStructureRequest is used to submit structure
definitions - key families, metadata structures - to the repository. The
structure resources (key families, agencies, concepts and concept schemes,
codelists,etc.) to be submitted must be available as valid SDMX-ML
Structure messages external to the registry, so that they can be retrieved
by the repository submission service. A SubmitStructureResponse will be
sent in response, and will indicate status and contain anyt relevant error
information. StructureLocation holds the URL of the valid Structure
Message. Alternately, the Structure element can contain the structural
descriptions. The SubmittedStructureType contains a reference to one of the
structural maintainable artefacts detailed in the Structure Message, which
is to be submitted to the repository. It does not need to be used when the
structures being submitted are included in the request message, or when all
objects in the referenced SDMX-ML Structure message are to
submitted.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="StructureLocation" type="xs:anyURI"/>
+ <xs:element name="Structure" type="StructureType"/>
+ </xs:choice>
+ <xs:element name="SubmittedStructure" type="SubmittedStructureType"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SubmitStructureResponseType">
+ <xs:annotation>
+ <xs:documentation>SubmitStructureResponse is returned by the registry
when a SubmitStructure is received. It indicates the status of the
submission, and carries any error messages which are generated, if
relevant. For each submitted structure, a SubmissionResult will be
returned.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="SubmissionResult" type="SubmissionResultType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="QueryStructureRequestType">
+ <xs:annotation>
+ <xs:documentation>QueryStructureRequest is used to query the registry
for any maintainable object within the repository. The response is a
Structure message. In the reference elements to the queryable registry
objects, a valid registry URN or a complete set of other child elements may
be used to identify the objects desired in the result set. Any part of an
element-based (that is, non-URN) identification of an object which is not
provided will be understood as a wild-card value, referring to "all"
possible values. The resolveReferences attribute is set to true if all
dependent objects should also be returned as part of the result set. (For
example, if you query for a key family and want to also have all codelists,
concepts, and agencies, returned as well, resolveReferences should be set
to true.)</xs:documentation>
+ </xs:annotation>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="AgencyRef" type="AgencyRefType"/>
+ <xs:element name="DataProviderRef" type="DataProviderRefType"/>
+ <xs:element name="DataflowRef" type="DataflowRefType"/>
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType"/>
+ <xs:element name="CodelistRef" type="CodelistRefType"/>
+ <xs:element name="CategorySchemeRef" type="CategorySchemeRefType"/>
+ <xs:element name="ConceptSchemeRef" type="ConceptSchemeRefType"/>
+ <xs:element name="OrganisationSchemeRef"
type="OrganisationSchemeRefType"/>
+ <xs:element name="KeyFamilyRef" type="KeyFamilyRefType"/>
+ <xs:element name="MetadataStructureRef"
type="MetadataStructureRefType"/>
+ <xs:element name="HierarchicalCodelistRef"
type="HierarchicalCodelistRefType"/>
+ <xs:element name="StructureSetRef" type="StructureSetRefType"/>
+ <xs:element name="ProcessRef" type="ProcessRefType"/>
+ <xs:element name="ReportingTaxonomyRef"
type="ReportingTaxonomyRefType"/>
+
+ </xs:choice>
+ <xs:attribute name="resolveReferences" type="xs:boolean" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="QueryStructureResponseType">
+ <xs:annotation>
+ <xs:documentation>QueryStructureResponse is sent in response to a
QueryStructureRequest. It carries the status of the response, with any
relevant error messages, and then also carries all information found in the
rersult set.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="StatusMessage" type="StatusMessageType"/>
+ <xs:element name="OrganisationSchemes"
type="structure:OrganisationSchemesType" minOccurs="0"/>
+ <xs:element name="Dataflows" type="structure:DataflowsType"
minOccurs="0"/>
+ <xs:element name="Metadataflows" type="structure:MetadataflowsType"
minOccurs="0"/>
+ <xs:element name="CategorySchemes" type="structure:CategorySchemesType"
minOccurs="0"/>
+ <xs:element name="CodeLists" type="structure:CodeListsType"
minOccurs="0"/>
+ <xs:element name="HierarchicalCodelists"
type="structure:HierarchicalCodelistsType" minOccurs="0"/>
+ <xs:element name="Concepts" type="structure:ConceptsType"
minOccurs="0"/>
+ <xs:element name="MetadataStructureDefinitions"
type="structure:MetadataStructureDefinitionsType" minOccurs="0"/>
+ <xs:element name="KeyFamilies" type="structure:KeyFamiliesType"
minOccurs="0"/>
+ <xs:element name="StructureSets" type="structure:StructureSetsType"
minOccurs="0"/>
+ <xs:element name="ReportingTaxonomies"
type="structure:ReportingTaxonomiesType" minOccurs="0"/>
+ <xs:element name="Processes" type="structure:ProcessesType"
minOccurs="0"/>
+ </xs:sequence>
+
+
+ </xs:complexType>
+
+ <xs:complexType name="SubmitProvisioningRequestType">
+ <xs:annotation>
+ <xs:documentation>This document is sent to the registry services to
submit provisioning information. A provision agreement is typically sent,
wghich has internal references to existing data rpvodiers and
dataflows/metadataflows. These elements are also included as possible
separate submissions, because it may be necessary to provide datasource and
constraint information independent of the establishment of a provision
agreement. </xs:documentation>
+ </xs:annotation>
+ <xs:choice maxOccurs="unbounded">
+ <xs:element name="ProvisionAgreement" type="ProvisionAgreementType"/>
+ <xs:element name="DataProviderRef" type="DataProviderRefType"/>
+ <xs:element name="DataflowRef" type="DataflowRefType" />
+ <xs:element name="MetadatataflowRef" type="MetadataflowRefType" />
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:complexType name="SubmitProvisioningResponseType">
+ <xs:annotation>
+ <xs:documentation>The ProvisioningResponse element is returned by the
registry services in response to a provisioning request. It contains
information about the status of the submitted provisioning information, and
any relevant error messages in case of failure.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ProvisioningStatus" type="ProvisioningStatusType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="QueryProvisioningRequestType">
+ <xs:annotation>
+ <xs:documentation>QueryProvisioningRequest is used to query the
repository for provisioning metadata. The response is a
QueryProvisioningResponse document, carrying either the result set of the
query or relevant error messages. Note that whatever information is
presented here, regarding provision agreements, data flow, metadataflow, or
data providers, is taken to be the search criteria - the query is for all
provision agreements which match the supplied criteria. If any of provision
agreement, metadataflow, dataflow, or data provider are omitted, the search
will apply to all values for those objects in the
repository.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ProvisionAgreementRef"
type="ProvisionAgreementRefType" minOccurs="0"/>
+ <xs:element name="DataflowRef" type="DataflowRefType" minOccurs="0"/>
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType"
minOccurs="0"/>
+ <xs:element name="DataProviderRef" type="DataProviderRefType"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="QueryProvisioningResponseType">
+ <xs:annotation>
+ <xs:documentation>The QueryProvisioningResponse element is returned in
response to queries regarding provisioning information. It carries either
the provisioning information making up the result set, or relevant status
messages containing errors or warnings, or both. The references to
Dataflow, Metadataflow, and Data Provider are included in those cases where
the result set has these objects, but not associated with any Provisioning
Agreement.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ProvisionAgreement" type="ProvisionAgreementType"
maxOccurs="unbounded" minOccurs="0"/>
+ <xs:element name="DataflowRef" type="DataflowRefType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="DataProviderRef" type="DataProviderRefType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="StatusMessage" type="StatusMessageType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+<!-- Subscription/Notification Types -->
+
+
+ <xs:complexType name="SubscriptionType">
+ <xs:annotation><xs:documentation>Subscriptions submit a subscription for
a registry or repository object.Action indicates what action is being taken
by sending the request. RegistryURN is used to identify the subscription in
the case of deletion or modification. NotificationMAilTo holds an e-mail
address (the "mailto:" protocol); NotificationHTTP holds an http address to
which notifications can be addressed as POSTs. SubscriberAssignedID allows
the subscriber to specify an ID which will be returned as part of the
notification for the subscribed events. Validity period sets a start and
end date for the subscription, EventSelector indicates an event or events
for the subscription.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="Action" type="common:ActionType" />
+ <xs:element name="RegistryURN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="NotificationMailTo" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="NotificationHTTP" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="SubscriberAssignedID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="ValidityPeriod" type="ValidityPeriodType"/>
+ <xs:element name="EventSelector" type="EventSelectorType" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="ValidityPeriodType">
+ <xs:annotation><xs:documentation>Specifies inclusive start and end-dates
for the subscription period.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="StartDate" type="xs:date"/>
+ <xs:element name="EndDate" type="xs:date"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="EventSelectorType">
+ <xs:annotation><xs:documentation>Allows subscribers to specify registry
and repository events for which they wish to receive
notifications.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="StructuralRepositoryEvents"
type="StructuralRepositoryEventsType" minOccurs="0"/>
+ <xs:element name="ProvisioningRepositoryEvents"
type="ProvisioningRepositoryEventsType" minOccurs="0"/>
+ <xs:element name="DataRegistrationEvents"
type="DataRegistrationEventsType" minOccurs="0" />
+ <xs:element name="MetadataRegistrationEvents"
type="MetadataRegistrationEventsType" minOccurs="0" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="StructuralRepositoryEventsType">
+ <xs:annotation><xs:documentation>Contains details of the subscribed
structural repository events. AgencyID specifies an agency for the object
or objects indicated in the other ID fields. Note that the ID fields
(including AgencyID) may hold a complete ID or Repository URN, but may also
insert the "%" wildcard character, which represents 0 or more characters,
in the ID string. If left empty, all objects will be matched within the
other constraints (agency, object type)
provided.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="AllEventsID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="KeyFamilyID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="ConceptSchemeID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="CodeListID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataStructureID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="CategorySchemeID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataflowID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataflowID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="OrganisationSchemeID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="HierarchicalCodelistID" type="xs:string"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="StructureSetID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="ReportingTaxonomyID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="ProcessID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="ProvisioningRepositoryEventsType">
+ <xs:annotation><xs:documentation>Contains details of the subscribed
provisioning repository events. Note that the ID fields may hold a complete
ID or Repository URN, but may also insert the "%" wildcard character, which
represents 0 or more characters, in the ID string. If left empty, all
objects will be matched within the other constraints (agency, object type)
provided.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="ProvisionAgreementID" type="common:IDType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="DataProviderID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataflowID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataflowID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="AllEventsID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DataRegistrationEventsType">
+ <xs:annotation><xs:documentation>Contains details of the subscribed data
registry events. Note that the ID fields may hold a complete ID or Registry
URN, but may also insert the "%" wildcard character, which represents 0 or
more characters, in the ID string. If left empty, all objects will be
matched within the other constraints (agency, object type)
provided.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="AllEventsID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataProviderID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/> <xs:element name="ProvisionAgreementID"
type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="DataflowID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="KeyFamilyID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="CategoryID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="CategorySchemeID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="CategorySchemeAgencyID" type="xs:string"
minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="MetadataRegistrationEventsType">
+ <xs:annotation><xs:documentation>Contains details of the subscribed
metadadata registry events. Note that the ID fields may hold a complete ID
or Registry URN, but may also insert the "%" wildcard character, which
represents 0 or more characters, in the ID string. If left empty, all
objects will be matched within the other constraints (agency, object type)
provided.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="AllEventsID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataProviderID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="ProvisionAgreementID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataflowID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadatastructureID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="CategoryID" type="xs:string" minOccurs="0"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="StructuralEventType">
+ <xs:annotation><xs:documentation>This provides the details of a
structural repository event for the purposes of
notification.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="OrganisationSchemes"
type="structure:OrganisationSchemesType" minOccurs="0"/>
+ <xs:element name="Dataflows" type="structure:DataflowsType"
minOccurs="0"/>
+ <xs:element name="Metadataflows" type="structure:MetadataflowsType"
minOccurs="0"/>
+ <xs:element name="CategorySchemes" type="structure:CategorySchemesType"
minOccurs="0"/>
+ <xs:element name="CodeLists" type="structure:CodeListsType"
minOccurs="0"/>
+ <xs:element name="HierarchicalCodelists"
type="structure:HierarchicalCodelistsType" minOccurs="0"/>
+ <xs:element name="Concepts" type="structure:ConceptsType"
minOccurs="0"/>
+ <xs:element name="MetadataStructureDefinitions"
type="structure:MetadataStructureDefinitionsType" minOccurs="0"/>
+ <xs:element name="KeyFamilies" type="structure:KeyFamiliesType"
minOccurs="0"/>
+ <xs:element name="StructureSets" type="structure:StructureSetsType"
minOccurs="0"/>
+ <xs:element name="Processes" type="structure:ProcessesType"
minOccurs="0"/>
+ <xs:element name="ReportingTaxonomies"
type="structure:ReportingTaxonomiesType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="ProvisioningEventType">
+ <xs:annotation><xs:documentation>This provides the details of a
provisioning event for the purposes of
notification.</xs:documentation></xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="DataProviderRef" type="DataProviderRefType"
minOccurs="0"/>
+ <xs:element name="DataflowRef" type="DataflowRefType" minOccurs="0"/>
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType"
minOccurs="0"/>
+ <xs:element name="ProvisionAgreement" type="ProvisionAgreementType"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="RegistrationEventType">
+ <xs:annotation><xs:documentation>This provides the details of a data or
metadata registration event for the purposes of
notification.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="Registration" type="RegistrationType" />
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+<!-- ProvisionRequest Types -->
+
+ <xs:complexType name="ProvisionAgreementType">
+
+
+ <xs:annotation>
+ <xs:documentation>Provision agreements contain a reference to a
pre-existing data flow or metadata flow definition and a pre-existing data
(or metadata) provider in the registry. They also must have the action
attribute set, indicating whether this is an addition, a modification, or a
deletion of a provision agreement. They may also supply boolean values
which describe how the registry must behave: if indexTimeSeries is true,
then the registry must index all time series when a data set is registered
against this provision agreement; if indexDataSet is true, then the
registry must index the range of actual (present) values for each dimension
of the Dataset (as indicated in the dataset's key family); if
indexReportingPeriod is true, then the registry must index the time period
ranges for which data are present in the dataset(s) registered against the
provision agreement. Note that the values for these attributes are not
needed when a Delete action is indicated. As for all identifiable objects,
provision agreements have Name and Description elements, which are
repeatable to provide language-specific forms. These may be ommitted if the
provision agreement already exists (as is the case for modification and
deletion); descriptions are always optional. The id attribute holds the
unique id of the provision agreement as derived (according to teh logical
registry specifcation.) If specified, the uri attribute points to a
location (typically a URL) where the provision agreement is described in a
valid QueryProvisioningResponse message. The urn attribute holds the
reserved registry URN assigned to the provision agreement - this must be
included when the ProvisionAgreement structure is used in a response
document of any type. The action attribute must be specified when the
provisionAgreement is used in a request document of any type.. Datasource
is used to describe the data source associated with the provider agreement.
Annotations may be provided in the Annotations element. The validFrom and
validTo attributes provide inclusive dates for providing supplemental
validity information about the version.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:choice>
+ <xs:element name="DataflowRef" type="DataflowRefType"/>
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType"/>
+ </xs:choice>
+ <xs:element name="DataProviderRef" type="DataProviderRefType"/>
+ <xs:element name="Datasource" type="QueryableDatasourceType"
minOccurs="0"/>
+ <xs:element name="Constraint" type="common:ConstraintType"
minOccurs="0"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="action" type="common:ActionType" use="optional"/>
+ <xs:attribute name="indexTimeSeries" type="xs:boolean" use="optional"/>
+ <xs:attribute name="indexDataSet" type="xs:boolean" use="optional"/>
+ <xs:attribute name="indexReportingPeriod" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="DatasourceType">
+ <xs:annotation><xs:documentation>Datasource specifies the properties of
a data or metadata source. A SimpleDatasource requires only the URL of the
data. A QueryableDatasource must be able to accept an SDMX-ML Query
Message, and respond appropriately. Either or both may be
specified.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="SimpleDatasource" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="QueryableDatasource" type="QueryableDatasourceType"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="QueryableDatasourceType">
+ <xs:annotation><xs:documentation>If the data provider uses a single,
queryable data source for all provision agreements contained in the
ProvisionRequest element, then this element should be used to describe the
queryable datasource. DataUrl contains the URL of the datasource, with
WSDLUrl optionally providing the location of a WSDL instance on the
internet which deascribes the queryable datasource. The attributes
isRESTDatasource and isWebServiceDatasource indicate, if true, that the
queryable datasource is accessible via the REST protocol and/or Web
Services protocols, respectively.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="DataUrl" type="xs:anyURI" />
+ <xs:element name="WSDLUrl" type="xs:anyURI" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="isRESTDatasource" type="xs:boolean" use="required"/>
+ <xs:attribute name="isWebServiceDatasource" type="xs:boolean"
use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="ProvisioningStatusType">
+ <xs:annotation><xs:documentation>For each provision agreement, dataflow
reference, metadataflow reference, or data provider reference submitted in
a provisioning request, a provisioning status will be returned, providing a
status and any warnings or errors.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:choice>
+ <xs:element name="ProvisionAgreementRef"
type="ProvisionAgreementRefType" />
+ <xs:element name="DataProviderRef" type="DataProviderRefType" />
+ <xs:element name="DataflowRef" type="DataflowRefType" />
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType" />
+ </xs:choice>
+ <xs:element name="StatusMessage" type="StatusMessageType" />
+ </xs:sequence>
+ </xs:complexType>
+
+<!-- Registration Types -->
+
+ <xs:complexType name="RegistrationType">
+ <xs:annotation><xs:documentation>Registration provides the information
needed for data and reference metadata set registration. LastUpdated can
provide a time stamp; ValidFrom and ValidTo allow for effectivity, so that
data visibility from the registry can be controlled by the registrant. A
Datasource must be supplied here if not already provided in the provision
agreement. The data set or metadata set must be associated with a provision
agreement, a metadataflow, or a dataflow definition. If possible, the
provision agreement should be specified. Only in cases where this is not
possible should the dataflow or metadataflow be
used.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="LastUpdated" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="ValidFrom" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="ValidTo" type="xs:dateTime" minOccurs="0" />
+ <xs:element name="Action" type="common:ActionType" />
+ <xs:element name="Datasource" type="DatasourceType" minOccurs="0"/>
+ <xs:choice>
+ <xs:element name="DataflowRef" type="DataflowRefType"/>
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType"/>
+ <xs:element name="ProvisionAgreementRef"
type="ProvisionAgreementRefType" />
+
+ </xs:choice>
+
+
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="RegistrationStatusType">
+ <xs:annotation><xs:documentation>Each RegistrationStatus reports the
status of a submitted data set or metadata set registration, and carries
any error messages. If successful, the Datasource which has been registered
is returned, and a reference to the provision agreement, dataflow,
metadataflow, or data provider is
returned.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="StatusMessage" type="StatusMessageType"/>
+ <xs:element name="Datasource" type="DatasourceType" minOccurs="0"/>
+ <xs:element name="DataProviderRef" type="DataProviderRefType"
minOccurs="0"/>
+ <xs:element name="DataflowRef" type="DataflowRefType" minOccurs="0"/>
+ <xs:element name="MetadaflowRef" type="MetadataflowRefType"
minOccurs="0"/>
+ <xs:element name="ProvisionAgreementRef"
type="ProvisionAgreementRefType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+<!-- Registry Query Types -->
+
+
+
+<xs:complexType name="QueryResultType">
+ <xs:annotation><xs:documentation>QueryResult contains the results of a
specific registry query for a single datasource. If a successful result is
a registered dataset, the DataResult element is used. If a successful
result is a registered metadataset, the MetadataResult is used. If the
query failed, then StatusMessage is included. The timeSeriesMatch attribute
is true when the result is an exact match with the key found in the
registry - that is, when the registered datasource provides a matching key.
It is set to false when the datasource is registered with cube-region
constraints, or in any other circumstance when it cannot be established
that the sought-for keys have been exactly matched. This is always true
when the resulting datasource is the source of a metadata
set.</xs:documentation></xs:annotation>
+ <xs:choice>
+ <xs:element name="DataResult" type="ResultType"/>
+ <xs:element name="MetadataResult" type="ResultType"/>
+ <xs:element name="StatusMessage" type="StatusMessageType"/>
+ </xs:choice>
+ <xs:attribute name="timeSeriesMatch" type="xs:boolean" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="ResultType">
+ <xs:annotation><xs:documentation>Result contains the information about
either a data or metadata source, being returned as part of a QueryResult
element. If the </xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="Datasource" type="DatasourceType" minOccurs="0"/>
+ <xs:choice>
+ <xs:element name="ProvisionAgreementRef"
type="ProvisionAgreementRefType"/>
+ <xs:element name="DataflowRef" type="DataflowRefType"/>
+ <xs:element name="MetadataflowRef" type="DataflowRefType"/>
+ <xs:element name="DataProviderRef" type="DataProviderRefType"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+<!-- Structure Types -->
+
+ <xs:complexType name="StructureType">
+ <xs:annotation><xs:documentation>Holds the structure information for
submission to the structural repository.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="OrganisationSchemes"
type="structure:OrganisationSchemesType" minOccurs="0"/>
+ <xs:element name="Dataflows" type="structure:DataflowsType"
minOccurs="0"/>
+ <xs:element name="Metadataflows" type="structure:MetadataflowsType"
minOccurs="0"/>
+ <xs:element name="CategorySchemes" type="structure:CategorySchemesType"
minOccurs="0"/>
+ <xs:element name="CodeLists" type="structure:CodeListsType"
minOccurs="0"/>
+ <xs:element name="HierarchicalCodelists"
type="structure:HierarchicalCodelistsType" minOccurs="0"/>
+ <xs:element name="Concepts" type="structure:ConceptsType"
minOccurs="0"/>
+ <xs:element name="MetadataStructureDefinitions"
type="structure:MetadataStructureDefinitionsType" minOccurs="0"/>
+ <xs:element name="KeyFamilies" type="structure:KeyFamiliesType"
minOccurs="0"/>
+ <xs:element name="StructureSets" type="structure:StructureSetsType"
minOccurs="0"/>
+ <xs:element name="Processes" type="structure:ProcessesType"
minOccurs="0"/>
+ <xs:element name="ReportingTaxonomies"
type="structure:ReportingTaxonomiesType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="SubmittedStructureType">
+ <xs:annotation><xs:documentation>SubmittedStructure holds a reference to
a structural object to be stored in the repository. The
externalDependencies attribute should be set to true if the repository is
expected to use URLs in the structure Message to retrieve objects on which
the stored object has dependencies. (Thus, if a key family is being
submitted to the repository, and the structure message has URLKs which
point to the locations of the codelists it uses, then the
externalDependencies attribute should be set to true.) the action attribute
specifies whether the Structure being submitted is intended to be added or
deleted from the repository. The "modify" action is not applicable to final
structures in the repository, and will produce an error condition, as these
can be versioned but not modified.To submit a later version of a structure,
the structure message should include the incremented version number. The
externalDependencies and action attributes need not be specified in a
response document. The isFinal attribute indicates whether the structure
being submitted to the repository is final or not - this can also be
specified on the structures themselves.</xs:documentation></xs:annotation>
+ <xs:choice>
+ <xs:element name="DataflowRef" type="DataflowRefType"/>
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType"/>
+ <xs:element name="CodelistRef" type="CodelistRefType"/>
+ <xs:element name="HierarchicalCodelistRef"
type="HierarchicalCodelistRefType"/>
+ <xs:element name="CategorySchemeRef" type="CategorySchemeRefType"/>
+ <xs:element name="ConceptSchemeRef" type="ConceptSchemeRefType"/>
+ <xs:element name="OrganisationSchemeRef"
type="OrganisationSchemeRefType"/>
+ <xs:element name="KeyFamilyRef" type="KeyFamilyRefType"/>
+ <xs:element name="MetadataStructureRef"
type="MetadataStructureRefType"/>
+ <xs:element name="ProcessRef" type="ProcessRefType"/>
+ <xs:element name="StructureSetRef" type="StructureSetRefType"/>
+ <xs:element name="ReportingTaxonomyRef"
type="ReportingTaxonomyRefType"/>
+
+ </xs:choice>
+ <xs:attribute name="externalDependencies" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="action" type="common:ActionType" use="optional"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="SubmissionResultType">
+ <xs:annotation><xs:documentation>For each Structure object submitted to
the repository in a SubmitStructure, a SubmissionResult will be returned.
It will identify the object submitted, report back the action requested,
and convey the status and any error messages which are relevant to the
submission.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="SubmittedStructure" type="SubmittedStructureType"/>
+ <xs:element name="StatusMessage" type="StatusMessageType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+<!-- Reused types -->
+
+ <xs:complexType name="ProvisionAgreementRefType">
+ <xs:annotation><xs:documentation>ProvisionAgreementRef allows for the
identification of a provision agreement. At a minimum, either the URN
element - holding a valid registry URN - or the set of
OragnisationSchemeAgencyID, OrganisationSchemeID, DataProviderID,
DataflowAgencyID, and DataflowID must be specified. When used in a response
document of any type, the URN must always be provided. Datasource can be
used to specify a datasource for the provision agreement. Constraint can be
used to express constraints associated with the provision
agreement.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="OrganisationSchemeAgencyID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="OrganisationSchemeID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="DataProviderID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="DataProviderVersion" type="xs:string" minOccurs="0"/>
+ <xs:element name="DataflowAgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="DataflowID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="DataflowVersion" type="xs:string" minOccurs="0"/>
+ <xs:element name="Datasource" type="DatasourceType" minOccurs="0"/>
+ <xs:element name="Constraint" type="common:ConstraintType"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="MetadataflowRefType">
+ <xs:annotation>
+ <xs:documentation>The MetadataflowRef type structures a reference to a
metadataflow definition. This requires that ID are provided for a
pre-existing Agency and Metadataflow Definition in the registry. The
Version element may be used to specify the version of the indicated
dataflow. If absent, the most recent version is assumed. The URN element is
used to provide the registry-specific URN as an alternate means of
identification. When used in a response document of any type, the URN must
always be provided. At a minimum, either the URN element or AgencyID,
MetadataflowID, and (optionally) version must be supplied. Datasource may
be used to specify a datasource. Constraint can be used to provide
constraints associated with the metadataflow.</xs:documentation>
+ </xs:annotation>
+
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="MetadataflowID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ <xs:element name="Datasource" type="DatasourceType" minOccurs="0"/>
+ <xs:element name="Constraint" type="common:ConstraintType"
minOccurs="0"/>
+ </xs:sequence>
+
+ </xs:complexType>
+
+ <xs:complexType name="DataflowRefType">
+ <xs:annotation>
+ <xs:documentation>The DataflowRef type structures a reference to a
dataflow definition. This requires that ID are provided for a pre-existing
Agency and Dataflow Definition in the registry. The Version element may be
used to specify the version of the indicated dataflow. If absent, the most
recent version is assumed. The URN element is used to provide the
registry-specific URN as an alternate means of identification. At a
minimum, either the URN element or AgencyID, DataflowID, and (optionally)
version must be supplied. When used in a response document of any type, the
URN must always be provided. Datasource may be used to specify a
datasource. Constraints can be used to specify constraints associated with
the dataflow.</xs:documentation>
+ </xs:annotation>
+
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="DataflowID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ <xs:element name="Datasource" type="DatasourceType" minOccurs="0"/>
+ <xs:element name="Constraint" type="common:ConstraintType"
minOccurs="0"/>
+ </xs:sequence>
+
+ </xs:complexType>
+ <xs:complexType name="DataProviderRefType">
+ <xs:annotation>
+ <xs:documentation>The DataProviderRef type structures a reference to a
data provider. This requires that IDs be provided for an organisation
scheme, its maintenance agency, and the data prov ider as identified in the
referenced organisation scheme. The Version element may be used to specify
the version of the indicated data provider. If absent, the most recent
version is assumed. The URN element is used to provide the
registry-specific urn as an alternate means of identification. At a
minimum, either the URN element or OrgansisationSchemeID,
OrganisationSchemeAgencyID, DataProviderID, and (optionally) Version must
be supplied. When used in a response document of any type, the URN must
always be provided. Datasource may be used to specify a datasource.
Constraints can be used to specify constraints associated with the data
provider.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="OrganisationSchemeAgencyID" type="common:IDType"/>
+ <xs:element name="OrganisationSchemeID" type="common:IDType"/>
+ <xs:element name="DataProviderID" type="common:IDType"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ <xs:element name="Datasource" type="DatasourceType" minOccurs="0"/>
+ <xs:element name="Constraint" type="common:ConstraintType"
minOccurs="0"/>
+ </xs:sequence>
+
+ </xs:complexType>
+
+ <xs:complexType name="AgencyRefType">
+ <xs:annotation>
+ <xs:documentation>The AgencyRef type structures a reference to an
Agency. This requires that IDs be provided for an organisation scheme, its
maintenance agency, and the agency as identified in the referenced
organisation scheme. The Version element may be used to specify the version
of the indicated agency. If absent, the most recent version is assumed. The
URN element is used to provide the registry-specific urn as an alternate
means of identification. At a minimum, either the URN element or
OrgansisationSchemeID, OrganisationSchemeAgencyID, AgencyID, and
(optionally) Version must be supplied. When used in a response document of
any type, the URN must always be provided. </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="OrganisationSchemeAgencyID" type="common:IDType"/>
+ <xs:element name="OrganisationSchemeID" type="common:IDType"/>
+ <xs:element name="AgencyID" type="common:IDType"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+
+ </xs:complexType>
+
+ <xs:complexType name="CodelistRefType">
+ <xs:annotation>
+ <xs:documentation>KeyFamilyRef allows for references to specific
codelists. At a minimum, either the URN - which contains a valid
Registry/Repository URN - or the rest of the child elements must be
supplied. When used in a response document of any type, the URN must always
be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="CodelistID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CategorySchemeRefType">
+ <xs:annotation>
+ <xs:documentation>CategorySchemeRef allows for references to specific
category schemes. At a minimum, either the URN - which contains a valid
Registry/Repository URN - or the rest of the child elements must be
supplied. When used in a response document of any type, the URN must always
be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="CategorySchemeID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ConceptSchemeRefType">
+ <xs:annotation>
+ <xs:documentation>ConceptSchemeRef allows for references to specific
concept schemes. At a minimum, either the URN - which contains a valid
Registry/Repository URN - or the rest of the child elements must be
supplied. When used in a response document of any type, the URN must always
be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="ConceptSchemeID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="OrganisationSchemeRefType">
+ <xs:annotation>
+ <xs:documentation>OrganisationSchemeRef allows for references to
specific organisation schemes. At a minimum, either the URN - which
contains a valid Registry/Repository URN - or the rest of the child
elements must be supplied. When used in a response document of any type,
the URN must always be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="OrganisationSchemeID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="KeyFamilyRefType">
+ <xs:annotation>
+ <xs:documentation>KeyFamilyRef allows for references to specific key
families (data structure definitions). At a minimum, either the URN - which
contains a valid Registry/Repository URN - or the rest of the child
elements must be supplied. When used in a response document of any type,
the URN must always be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="KeyFamilyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MetadataStructureRefType">
+ <xs:annotation>
+ <xs:documentation>MetadataStructureRef allows for references to
specific metadata structure definitions. At a minimum, either the URN -
which contains a valid Registry/Repository URN - or the rest of the child
elements must be supplied. When used in a response document of any type,
the URN must always be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="MetadataStructureID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="HierarchicalCodelistRefType">
+ <xs:annotation>
+ <xs:documentation>HierarchicalCodelistRef allows for references to
specific hierarchical codelists. At a minimum, either the URN - which
contains a valid Registry/Repository URN - or the rest of the child
elements must be supplied. When used in a response document of any type,
the URN must always be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="HierarchicalCodelistID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="StructureSetRefType">
+ <xs:annotation>
+ <xs:documentation>StructureSetRef allows for references to specific
structure sets. At a minimum, either the URN - which contains a valid
Registry/Repository URN - or the rest of the child elements must be
supplied. When used in a response document of any type, the URN must always
be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="StructureSetID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ProcessRefType">
+ <xs:annotation>
+ <xs:documentation>ProcessRef allows for references to specific
processes. At a minimum, either the URN - which contains a valid
Registry/Repository URN - or the rest of the child elements must be
supplied. When used in a response document of any type, the URN must always
be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="ProcessID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="ReportingTaxonomyRefType">
+ <xs:annotation>
+ <xs:documentation>ReportingTaxonomyRef allows for references to
specific reporting taxonomies. At a minimum, either the URN - which
contains a valid Registry/Repository URN - or the rest of the child
elements must be supplied. When used in a response document of any type,
the URN must always be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="ReportingTaxonomyID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="StatusMessageType">
+ <xs:annotation><xs:documentation>This carries the text of error messages
and/or warnings in response to queries or requests. The Status attribute
carries the staus of the query or
request.</xs:documentation></xs:annotation>
+ <xs:sequence>
+ <xs:element name="MessageText" type="common:TextType"
maxOccurs="unbounded" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="status" type="StatusType" use="required"/>
+ </xs:complexType>
+
+
+<!-- Simple Types -->
+ <xs:simpleType name="ConstraintTypeType">
+ <xs:annotation>
+ <xs:documentation>ConstraintType provides an enumeration of values of
the types of constraints.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Content">
+ <xs:annotation>
+ <xs:documentation>Content constraint.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Attachment">
+ <xs:annotation>
+ <xs:documentation>Attachment constraint.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+
+
+
+ <xs:simpleType name="StatusType">
+ <xs:annotation>
+ <xs:documentation>StatusType provides an enumeration of values that
detail the status of queries or requests.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Success">
+ <xs:annotation>
+ <xs:documentation>Query or request successful.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Warning">
+ <xs:annotation>
+ <xs:documentation>Query or request successful, but with
warnings.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Failure">
+ <xs:annotation>
+ <xs:documentation>Query or request not successful.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="QueryTypeType">
+ <xs:annotation>
+ <xs:documentation>QueryType provides an enumeration of values which
specify the objects in the result-set for a registry
query.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="DataSets">
+ <xs:annotation>
+ <xs:documentation>Only references data sets should be
returned.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MetadataSets">
+ <xs:annotation>
+ <xs:documentation>Only references to metadata sets should be
returned.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AllSets">
+ <xs:annotation>
+ <xs:documentation>References to both data sets and metadata sets
should be returned.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ </xs:restriction>
+ </xs:simpleType>
+
+
+
+
+
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/SDMXStructure.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,1778 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright SDMX 2004 - www.sdmx.org -->
+<xs:schema
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/structure"
elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/structure"
xmlns:structure="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/structure"
xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common">
+ <xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+
+<!-- Organisation Schemes and Agencies -->
+
+
+
+ <xs:complexType name="OrganisationSchemesType">
+ <xs:annotation>
+ <xs:documentation>OrganisationSchemesType contains one or more
OrganisationSchemes.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="OrganisationScheme" type="OrganisationSchemeType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+ <xs:complexType name="OrganisationSchemeType">
+ <xs:annotation>
+ <xs:documentation>OrganisationSchemeType contains the details of an
OrganisationScheme. In OrganisationSchemes, the organisation roles of
agency, data provider, and data consumer may be specified. A single
organisation may play more than one role. Name is an element which provides
for a human-readable name for the organization. Description may be used to
provide a longer, human-readable description. the is attribute provides a
formal ID for the organisation scheme; the version attribute specifies a
particular version. If blank, it is assumed that the version is "1.0". The
uri attributre specifies the location of a valid SDMC Structure Message
containing the full details of the organisation sc`heme, and is required if
the isExternalReference attribute has a value of true. If
isExternalReference has a value of false, full details must be provided in
the current instance of the OrganisationScheme element. The urn attribute
provides a formal SDMX Registry URL - see the Logical Registry
Specification for specific requirements. An agencyID must be provided,
identifying the maintenance agency of the organisation scheme. Also, if the
organisation scheme is final, the isFinal attribute must have a value of
true - otherwise, it will be assumed to be non-final. (All production
schemes must be made final - that is, unchangeable without versioning.) The
validFrom and validTo attributes provide inclusive dates for providing
supplemental validity information about the version.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Agencies" type="AgenciesType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataProviders" type="DataProvidersType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataConsumers" type="DataConsumersType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="required"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+
+ </xs:complexType>
+
+
+ <xs:complexType name="DataProvidersType">
+ <xs:annotation>
+ <xs:documentation>DataProvidersType contains one or more data
providers. Data providers are those who report or disseminate data sets or
metadata sets.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="DataProvider" type="OrganisationType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="DataConsumersType">
+ <xs:annotation>
+ <xs:documentation>DataConsumersType contains one or more data
consumers. Data consumers collect or use disseminated data sets and
metadata sets.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="DataConsumer" type="OrganisationType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="AgenciesType">
+ <xs:annotation>
+ <xs:documentation>AgenciesType contains one or more Agencies. Agencies
are those organisations which act as the maintainers of structural
definitions of various types. Agencies are often supplied as part of an
organisation scheme, but may also be supplied independently using this
element.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Agency" type="OrganisationType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="OrganisationType">
+ <xs:annotation>
+ <xs:documentation>OrganisationType provides a structure for describing
agencies, data providers, and data consumers and their contact information.
The id attribute carries a code identifying the agency. The version
attribute indicates the version of the agency description. The uri
attribute provides a uri for an alternate way of identifying the agency
information (typically a URL resolving to an agency described in SDMX-ML).
Name is an element which provides for a human-readable name for the
organization. Description provides for a longer human-readable description
of the organisation, which may be provided in multiple, parallel
language-equivalent forms. MaintenanceContact provides contact information
for the agency when acting as a MaintenanceAgency; CollectorContact does
the same when the agency is acting as a statistics collector;
DisseminatorContact for when the agency functions as a statistics
disseminator; and ReporterContact for when the Agency is functioning as a
statistics reporter. OtherContact is used to describe any other role. Note
that the Role field in the contact information structure should only be
specified for OtherContact. It is allowable to reference full Agency
information by using (at a minimum) only the id, name, and uri fields, with
the uri pointing to an external description in a valid SDMX-ML Structure
message which provides more complete information. (This is termed
an "external reference".) If an external reference is being made, the
isExternalReference attribute must be set to "true". The urn attribute
holds a valid SDMX Registry URN (see SDMX Registry Specification). The
parentOrganisation attribute holds the id of a parent organisation of the
same type from the same scheme, indicating that the organisation in
question is a department or other sub-division of the parent organisation.
Annotations may be provided using the Annotations element, in multiple,
parallel-language form.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MaintenanceContact" type="ContactType" minOccurs="0"/>
+ <xs:element name="CollectorContact" type="ContactType" minOccurs="0"/>
+ <xs:element name="DisseminatorContact" type="ContactType"
minOccurs="0"/>
+ <xs:element name="ReporterContact" type="ContactType" minOccurs="0"/>
+ <xs:element name="OtherContact" type="ContactType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="parentOrganisation" type="common:IDType"
use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+
+
+ <xs:complexType name="ContactType">
+ <xs:annotation>
+ <xs:documentation>ContactType provides defines the contact information
about a party. The id element is used to carry user id information for the
contact, whereas Name provides a human-readable name.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="id" type="common:IDType" minOccurs="0"/>
+ <xs:element name="Department" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Role" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element name="Telephone" type="xs:string"/>
+ <xs:element name="Fax" type="xs:string"/>
+ <xs:element name="X400" type="xs:string"/>
+ <xs:element name="URI" type="xs:anyURI"/>
+ <xs:element name="Email" type="xs:string"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+<!-- Data flows and Metadata flows-->
+
+ <xs:complexType name="DataflowsType">
+ <xs:annotation>
+ <xs:documentation>DataflowsType contains one or more data
flows.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Dataflow" type="DataflowType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="DataflowType">
+ <xs:annotation>
+ <xs:documentation>DataflowType describes the structure of a data flow.
A human-readable name must be provided, and may be given in several
language-specific variations. A longer human-readable description (also in
multiple language-specific versions) may be provided. A reference must be
made to a key family, and to a category within a category scheme, using the
KeyFamilyRef and CategoryRef elements, unless the Dataflow is a reference
to an external data flow, in which case a url must be provided in the uri
attribute, and the isExternalReference attribute must be set to true..
Annotations may be provided in the Annotations element. An id unique to the
maintaining agency (identified in the agencyID attribute) must be supplied
in the "id" attribute; a version may be specified, and is assumed to
be "1.0" if not supplied. The urn attribute may contain a valid registry
URN (as per the SDMX Registry Specification). If the dataflow is final, the
isFinal attribute must have a value of true - any production dataflow must
be final (that is, it cannot be changed without versioning). The validFrom
and validTo attributes provide inclusive dates for providing supplemental
validity information about the version.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="KeyFamilyRef" type="KeyFamilyRefType" minOccurs="0"/>
+ <xs:element name="CategoryRef" type="CategoryRefType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="required"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="KeyFamilyRefType">
+ <xs:annotation>
+ <xs:documentation>KeyFamilyRefType provides a reference to a key-family
(data set structure definition). At a minimum, either (a) The key family ID
must be provided, as assigned to the key family by the agency whose ID is
the value of KeyFamilyAgencyID. A version must also be provided; OR (b) a
valid SDMX Registry URN must be provided in the URN element (see SDMX
Registry Specification)</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="KeyFamilyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="KeyFamilyAgencyID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CategoryRefType">
+ <xs:annotation>
+ <xs:documentation>CategoryRefType provides a reference to a category.
At a minimum, either a value for CategorySchemeAgencyID, CategorySchemeID,
and CategoryID must be provided, or a valid SDMX Registry URN must be
provided in the URN element (see SDMX Registry
Specification).</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="CategorySchemeID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="CategorySchemeAgencyID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="CategorySchemeVersion" type="xs:string"
minOccurs="0"/>
+ <xs:element name="CategoryID" type="CategoryIDType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CategoryIDType">
+ <xs:annotation>
+ <xs:documentation>CategoryIDType describes a structure which can
provide a path inside a hierarchical category scheme. Each node (category)
of the referenced scheme is represented by a CategoryID element, with
sub-categories represented by the child CategoryID element. Each CategoryID
element must be given a node identifier in the ID field, which corresponds
to the ID of the category. It is not necessary to represent the full
category path with the nesting structure if each node within the
hierarchical category scheme has a unique id.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="ID" type="common:IDType"/>
+ <xs:element name="CategoryVersion" type="xs:string" minOccurs="0"/>
+ <xs:element name="CategoryID" type="CategoryIDType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MetadataflowsType">
+ <xs:annotation>
+ <xs:documentation>MetadataflowsType contains one or more metadata
flows.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Metadataflow" type="MetadataflowType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MetadataflowType">
+ <xs:annotation>
+ <xs:documentation>MetadataflowType describes the structure of a
metadata flow. A human-readable name must be provided, and may be given in
several language-specific variations. A longer human-readable description
(also in multiple language-specific versions) may be provided. A reference
must be made to a metadata structure definition, and to a category within a
category scheme, using the MetadataStructureRef and CategoryRef elements.
If the Metadataflow is an external reference, this is indicated by setting
the isExternalReference attribute to true, and providing a url where the
full description can be found in the form of a valid SDMX-ML structure
message. In this case, only the id and name must be provided. Annotations
may be provided in the Annotations element. An id unique to the maintaining
agency (identified in the agencyID attribute) must be supplied in the "id"
attribute; a version may be specified, and is assumed to be "1.0" if not
supplied. The urn attribute may contain a valid registry URN (as per the
SDMX Registry Specification). If the metadata flow is final, the isFinal
attribute must have a value of true - any production metadata flow must be
final (that is, it cannot be changed without versioning). The validFrom and
validTo attributes provide inclusive dates for providing supplemental
validity information about the version.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataStructureRef" type="MetadataStructureRefType"
minOccurs="0" />
+ <xs:element name="CategoryRef" type="CategoryRefType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="required"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="MetadataStructureRefType">
+ <xs:annotation>
+ <xs:documentation>MetadataStructureRefType provides a reference to a
metadata structure definition. The ID must be provided, as assigned to the
metadata structure definition by the agency whose ID is the value of
MetadataStructureAgencyID. A version must also be
provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="MetadataStructureID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="MetadataStructureAgencyID" type="common:IDType"
minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+<!-- Category Schemes -->
+
+ <xs:complexType name="CategorySchemesType">
+ <xs:annotation>
+ <xs:documentation>CategorySchemesType contains one or more category
schemes.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CategoryScheme" type="CategorySchemeType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CategorySchemeType">
+ <xs:annotation>
+ <xs:documentation>CategorySchemeType describes the structure of a
category scheme. This is a simple, levelled hierarchy. The scheme itself is
given a human-readable name (which may be in multiple language-specific
versions), and may optionally have a human-readable description (also in
multiple, landuage-specific versions). Annotations may be provided in the
Annotations element. The Category element represents a set of nested
categories which describe a simple classification hierarchy. The
CategoryScheme must have an agency specified in teh agency attribute, and a
unique ID provided for all of the category schemes of that agency in the id
attribute. A version may also be supplied - if ommitted, the version is
understood to be "1.0". If the isFinal attribute has a value of true, the
category scheme is final and cannot be changed without versioning. All
production category schemes must be final. The urn attribute holds a valid
registry URN (see the SDMX Registry Specification). If the
isExternalReference attribute has a value of true, then the uri attribute
must have a value which provides the location of a valid SDMX Structure
message providing full details of the Category Scheme. Otherwise, all
details must be provided here. The validFrom and validTo attributes provide
inclusive dates for providing supplemental validity information about the
version.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Category" type="CategoryType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional" />
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="CategoryType">
+ <xs:annotation>
+ <xs:documentation> The category is given a human-readable name (which
may be in multiple language-specific versions), and may optionally have a
human-readable description (also in multiple, landuage-specific versions).
Annotations may be provided in the Annotations element. References to
dataflows and metadataflows may be provided. The Category element
represents a set of nested categories which are child categories. The
Category must have a unique ID within the Category Scheme provided in the
id attribute. A version may also be supplied - if ommitted, the version is
understood to be "1.0". The urn attribute holds a valid registry URN (see
the SDMX Registry Specification).</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="DataflowRef" type="DataflowRefType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="MetadataflowRef" type="MetadataflowRefType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="Category" type="CategoryType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional" />
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ </xs:complexType>
+
+<!-- Codelists -->
+
+ <xs:complexType name="CodeListsType">
+ <xs:annotation>
+ <xs:documentation>CodelistsType contains one or more codelists. It also
defines uniqueness constraints for codelist IDs.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="CodeList" type="CodeListType" minOccurs="0"
maxOccurs="unbounded">
+ <xs:unique name="SDMX_CodeUniqueness">
+ <xs:selector xpath="structure:Code"/>
+ <xs:field xpath="@value"/>
+ </xs:unique>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="CodeListType">
+ <xs:annotation>
+ <xs:documentation>CodeListType defines the contents of a codelist. This
includes an ID, the agency which maintains the codelist, its version, and a
URL where it is located. Elements are provided for supplying a name and the
codes. It is acceptable to provide only the id, name, and uri fields at a
minimum, with the uri pointing to an SDMX Structure message containing
complete details on the codelist. (This is termed an "external reference".)
If an external reference is being made, the isExternalReference attribute
must be set to "true". The urn attribute holds a valiud SDMX Registry URN
(see SDMX Registry Specification). The validFrom and validTo attributes
provide inclusive dates for providing supplemental validity information
about the version.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Code" type="CodeType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="CodeType">
+ <xs:annotation>
+ <xs:documentation>CodeType defines the structure of a code. This allows
for plain-text descriptions as element content, and the coded value as the
value attribute. (Short descriptions or other presentational information
may be added using Annotations with an indicative type field
[eg, "ShortDescription"]). The urn attribute supplies a valid SDMX Registry
URN (see the SDMX Registry Specification).The parentCode attribute provides
the ability to describe simple hierarchies within a single codelist, by
referenceing the id value of another code in the same
codelist.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Description" type="common:TextType"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="value" type="common:IDType" use="required"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="parentCode" type="common:IDType" use="optional"/>
+ </xs:complexType>
+
+<!-- Hierarchical Codelists -->
+
+ <xs:complexType name="HierarchicalCodelistsType">
+ <xs:annotation>
+ <xs:documentation>HierarchicalCodelistsType contains one or more sets
of structural information about the hierarchies within a codelist
(hierarchical codelists). This corresponds to complex hierarchical
codelists within the SDMX Information Model - very simple hierarchies can
be described within the regular Codelist, using the parentCode attribute.
</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="HierarchicalCodelist" type="HierarchicalCodelistType"
maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="HierarchicalCodelistType">
+ <xs:annotation>
+ <xs:documentation>A hierarchical codelist references a Codelist, and
supplies the extra structural metadata to assemble the codes into a
hierarchy. A human-readable name must be supplied, and multiple
language-specific variants may be provided. A longer human-readable
description may be provided, and may also be presented as a set of
language-specific variants. The CodelistRef element references a codelist,
and may indicate more than one. Annotations may be provided in the
Annotaions element. An ID unique for the agency specified in the agency
attribute must be assigned, using the id attribute. A version may be
provided using the version attribute - if no value is provided, it is
assumed to be "1.0". A valid SDMX Registry URN may be provided in the urn
attribute, as specified in the SDMX Registry Specification. If the
isExternalReference attribute has a value of true, the uri attribute must
specify the location of a valid SDMX Structure Message which provides the
full details of the hierarchical codelist; otherwise, all details must be
present. The validFrom and validTo attributes provide inclusive dates for
providing supplemental validity information about the
version.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="CodelistRef" type="CodelistRefType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Hierarchy" type="HierarchyType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="HierarchyType">
+ <xs:annotation>
+ <xs:documentation>The recursive CodeRef element is used to assemble the
codes in the codelist(s) referenced by the parent hierarchical codelist
into a hierarchy. The Level element is used to describe the levels of a
levelled hierarchy, which may be referenced from each of the CodeRefs in
the Hierarchy. A human-readable name must be assigned, which may be
provided in multiple, parallel-language versions. A longer, human-readable
Description may also be provided, which can also have multiple
parallel-language versions. Annotations may be provided with the
Annotations element. The id attribute provides a unique id for the
hierarchy. The urn attribute can be used to specify the hierarchy with a
valid SDMX Registry URN (see the SDMX Registry Specification). The version
attribute specifies a version (understood to be "1.0" if not specified),
and isFinal, once given a value of true, indicates that nothing may be
changed without also changing the version number. validFrom and validTo are
inclusive dates indicating the relevant period of the
hierarchy.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="CodeRef" type="CodeRefType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Level" type="LevelType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="LevelType">
+ <xs:annotation>
+ <xs:documentation>LevelType describes a level in a hierarchical
codelist. The Order element specifies where the level is in a levelled
hierarchy, starting with the value "1" for the top level, and going
sequentially from there using whole integers. CodingType specifies the text
formatting of the codes at that level. A human-readable name must be
assigned, which may be provided in multiple, parallel-language versions. A
longer, human-readable Description may also be provided, which can also
have multiple parallel-language versions. Annotations may be provided with
the Annotations element. The id attribute provides a unique id for the
hierarchy. The urn attribute can be used to specify the hierarchy with a
valid SDMX Registry URN (see the SDMX Registry
Specification).</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="Order" type="xs:integer"/>
+ <xs:element name="CodingType" type="TextFormatType" minOccurs="0"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="CodelistRefType">
+ <xs:annotation>
+ <xs:documentation>The CodelistRefType provides the structure for a
codelist reference. (Note that this is structured differently than a
similarly-named type in the Registry namespace.) At a minimum, either:
AgencyID has the ID of an agency as a value; CodelistID takes the ID of a
codelist maintained by that agency; and Version specifies the version of
the codelist; or URN supplies a valid SDMX Registry URN (see the SDMX
Registry Specification). Alias is used to carry the identifier for the
referenced codelist, so that codes from that list can be easily referenced
by the CodeRefs contained in the parent Hierarchy, without having to repeat
the agency and version for each reference. The Alias must be unique within
the parent Hierarchical Codelist.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="AgencyID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="CodelistID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ <xs:element name="Alias" type="common:IDType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="CodeRefType">
+ <xs:annotation>
+ <xs:documentation>The CodeRefType provides the structure for a codelist
reference. At a minimum, either a URN value (a valid SDMX Registry URN as
specified in teh SDMX Registry Specification) must be supplied, or a
ColdelistAliasRef and a CodeID must be specified. CodelistAliasRef
references an alias assigned in a CodelistRef element in the containing
hierarchical codelist.CodeRef references a code from the codelist
identified at the level of the parent hierarchical codelist. Codes are
arranged in a hierarchy by reference. Note that it is possible to reference
a single code such that it has multiple parents within the hierarchy.
Further, the hierarchy may or may not be a levelled one. CodeID holds the
ID of the code in the codelist referenced by the hierarchical codelist.
CodeRef references a code. LevelRef holds the id of a Level described in
the same parent Hierarchical Codelist. NodeAliasID allows for an ID to be
assigned to the use of the particular code at that specific point in the
hierarchy. This value is unique within the hierarchy being created, and is
used to map the hierarchy against external structures. Version holds the
version number of the referenced code, to support management of complex
hierarchies. Along with this field are the ValidFrom and ValidTo dates,
which are inclusive dates during which the code is valid within the parent
hierarchy.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="URN" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="CodelistAliasRef" type="common:IDType" minOccurs="0"/>
+ <xs:element name="CodeID" type="common:IDType" minOccurs="0"/>
+ <xs:element name="CodeRef" type="CodeRefType" minOccurs="0"
maxOccurs="unbounded"/>
+ <xs:element name="LevelRef" type="common:IDType" minOccurs="0"/>
+ <xs:element name="NodeAliasID" type="xs:string" minOccurs="0"/>
+ <xs:element name="Version" type="xs:string" minOccurs="0"/>
+ <xs:element name="ValidFrom" type="common:TimePeriodType"
minOccurs="0"/>
+ <xs:element name="ValidTo" type="common:TimePeriodType" minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+
+<!-- Concepts and Concept Schemes -->
+
+ <xs:complexType name="ConceptsType">
+ <xs:annotation>
+ <xs:documentation>The ConceptsType describes an XML type which contains
information about sets of concepts and their relationships, each of which
is described in a ConceptScheme element. This section replaces the section
of the version 1.0 SDMXStructure message which provides details about
concepts. As such, it is backward-compatible, and may be used to contain a
simple list of concepts as per the 1.0 SDMX-ML
specification.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+
+ <xs:element name="Concept" type="ConceptType" maxOccurs="unbounded"
minOccurs="0"/>
+ <xs:element name="ConceptScheme" type="ConceptSchemeType"
maxOccurs="unbounded" minOccurs="0"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+
+ </xs:sequence>
+
+ </xs:complexType>
+
+ <xs:complexType name="ConceptType">
+ <xs:annotation>
+ <xs:documentation>ConceptType specifies the information provided for a
single concept. This includes a name, as element content, and an ID. It is
possible to use the uri field to point to the location of an SDMX-ML
Structure message which contains a more detailed version of the concept.
(This is termed an "external reference".) If an external reference is being
made, the isExternalReference attribute must be set to "true". In this
case, all details of the concept are assumed to be found externally, and
inline characteristics provided through child elements and the
coreRepresentation and coreRepresentationAgency attributes are to be
ignored. The coreRepresentation and coreRepresentationAgency attributes can
identify a codelist which is a default representation of the concept.
Uncoded default representations (or information about the textual aspects
of coded default representations) can be provided with the TextFormat child
element of the concept. Semantic relationships between concepts which occur
within a single concept scheme can be captured with the parent and
parentAgency attributes - these identify the concept of which the current
concept is a qualification (in the ISO 11179 sense) or subclass. When used
outside of a containing ConceptScheme, these attributes may be ignored. If
a coreRepresentation and core RepresentationAgency are not provided, but
are provided in the indicated parent, then the default representation is
inherited from the specified parent concept. Note that all concepts within
a concept scheme must be uniquely identified by their id - each concept
scheme has only one agency for all its concepts. The agency attribute here
is provided for backward-compatibility with version 1.0 of the standards,
and it must not be used for concepts which are child elements of a concept
scheme.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType"
maxOccurs="unbounded" minOccurs="0"/>
+ <xs:element name="TextFormat" type="TextFormatType" minOccurs="0"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="optional"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="coreRepresentation" type="common:IDType"
use="optional"/>
+ <xs:attribute name="coreRepresentationAgency" type="common:IDType"
use="optional"/>
+ <xs:attribute name="parent" type="common:IDType" use="optional"/>
+ <xs:attribute name="parentAgency" type="common:IDType" use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="ConceptSchemeType">
+ <xs:annotation>
+ <xs:documentation>ConceptSchemeType describes the structure of a
ConceptScheme element, which is the preferred form (as of version 2.0) of
presenting the concepts used in other SDMX constructs. ConceptSchemes may
be included inline (that is, with all details provided in the instance or
may be referenced externally. It is possible to use the uri field to point
to the location of an SDMX-ML Structure message which contains a more
detailed version of the concept. (This is termed an "external reference".)
If an external reference is being made, the isExternalReference attribute
must be set to "true". A Name may be provided as a child element (in
multiple parallel language versions) and an ID and version and agency
information may be provided. ConceptSchemes represent a collection of
concepts which are used to describe a meaningful set of distinct concepts,
to be used in the reporting of data or metadata. The validFrom and validTo
attributes provide inclusive dates for providing supplemental validity
information about the version.</xs:documentation>
+
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType"
maxOccurs="unbounded" minOccurs="0"/>
+ <xs:element name="Concept" type="ConceptType" maxOccurs="unbounded"
minOccurs="0"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+
+
+<!-- Reference Metadata Structure Definitions -->
+
+ <xs:complexType name="MetadataStructureDefinitionsType">
+ <xs:annotation>
+ <xs:documentation>MetadataStructureDefinitionsType describes one or
more metadata structure definitions.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MetadataStructureDefinition"
type="MetadataStructureDefinitionType" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="MetadataStructureDefinitionType">
+
+ <xs:annotation>
+ <xs:documentation>A metadata structure definition performs several
functions: it groups sets of objects into "targets" against which reference
metadata may be reported. Targets define the structure of the reference
metadata "keys" which identify specific types of reported metadata, and
describe the valid values for populating the keys. Also, metadata structure
definitions provide a presentational organization of concepts for reporting
purposes. The structure of a reference metadata report is derived from this
presentational structure. Also, representations - unless defaults from the
concepts are used - must be indicated as part of this presentational
structure. Attributes allow the assignment of an ID, an agency, a version,
and a uri. It is possible to use the uri field to point to the location of
an SDMX-ML Structure message which contains a more detailed version of the
metadata structure definition. (This is termed an "external reference".) If
an external reference is being made, the isExternalReference attribute must
be set to "true". When an external reference is being made, none of the
child elements should be included. Otherwise, both TargetIdentifiers and at
least one ReportStructure must be included. The urn attribute holds a valid
SDMX registry URN (see the SDMX Registry Specification). The validFrom and
validTo attributes provide inclusive dates for providing supplemental
validity information about the version.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType"
maxOccurs="unbounded" minOccurs="0"/>
+ <xs:element name="TargetIdentifiers" type="TargetIdentifiersType"
minOccurs="0"/>
+ <xs:element name="ReportStructure" type="ReportStructureType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="agencyID" type="common:IDType" use="required"/>
+ <xs:attribute name="version" type="xs:string" use="optional"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="isExternalReference" type="xs:boolean"
use="optional"/>
+ <xs:attribute name="isFinal" type="xs:boolean" use="optional"/>
+ <xs:attribute name="validFrom" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validTo" type="common:TimePeriodType"
use="optional"/>
+ </xs:complexType>
+ <xs:complexType name="TargetIdentifiersType">
+ <xs:annotation>
+ <xs:documentation>TargetIdentifiers are the set of objects against
which reference metadata is reported (data providers, data flows, data or
metadata structures, etc.). There are two types of TargetIdentifiers:
the "full" target identifier, which lists every object used to attach
metadata to in the metadata structure definition, and the partial target
identifiers, which indicate sub-sets of those concepts against which
reference metadata may be reported. It is sometimes the case that metadata
will also be reported against the full target identifier.
+
+ An example of this is as follows: we might wish to collect some
metadata concepts such as contact information for some of the objects
described by the SDMX Information Model - for each instance of a metadata
flow or a data provider, for example. Our concepts would be the concepts
associated with contact information: CONTACT_NAME, CONTACT_PHONE_NUMBER,
etc. We would determine how these concepts are associated with the objects
in the model: do we want a contact for each data provider broken out by
data flow? Or do we want only a single contact reported for each data
provider (who might provide several data flows)? Each object or combination
of objects we need to have metadata reported for becomes a partial target
identifier, unless it happens to contain the full target identifier, in
which case we use that instead. Thus, our valid partial target identifiers
here would be "data flow" and "data provider", because "data flow by data
provider" is a full target identifier. For each target identifier, we could
have some set of our concepts reported.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="FullTargetIdentifier"
type="FullTargetIdentifierType"/>
+ <xs:element name="PartialTargetIdentifier"
type="PartialTargetIdentifierType" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="FullTargetIdentifierType">
+ <xs:annotation>
+ <xs:documentation>The full target identifier provides details on all of
the objects against which metadata can be reported. The full target
identifier is made up of a set of identifier components - each getting its
own child element - which are similar to the dimensions of a key family:
each one indicates that a value will be provided by the metadata reporter
to identify and describe the metadata being reported. A human-readable name
must be provided, which may be provided in multiple, parallel-language
versions. A longer, human-readable name may also be provided in multiple,
language-parallel versions. Annotations may be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType"
maxOccurs="unbounded" minOccurs="0"/>
+ <xs:element name="IdentifierComponent" type="IdentifierComponentType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="IdentifierComponentType">
+ <xs:annotation>
+ <xs:documentation>An identifier component describes the use of an
object within the full target identifier set. An identifier component must
be one of the formally-recognized object classes found in the SDMX
Information Model: the sub-element TargetObjectClass provides a way of
indicating which objects will be used in reporting metadata, and will
indicate how those objects are to be identified by the metadata reporters
(which value sets will be allowed for each identification field for each
object). The RepresentationScheme child element is used to indicate the
valid range of values for the providing taget identifiers in reported
metadata.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType"
maxOccurs="unbounded" minOccurs="0"/>
+ <xs:element name="TargetObjectClass" type="ObjectIDType"/>
+ <xs:element name="RepresentationScheme" type="RepresentationSchemeType"
minOccurs="0"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ </xs:complexType>
+
+ <xs:complexType name="PartialTargetIdentifierType">
+ <xs:annotation>
+ <xs:documentation>Partial target identifiers are subsets of the full
target identifier. They are themselves given an identifier, so that they
can be referenced by the metadata attributes of a report. A human-readable
name must be provided, which may be provided in multiple, parallel-language
versions. A longer, human-readable name may also be provided in multiple,
language-parallel versions. Annotations may be provided.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType"
maxOccurs="unbounded" minOccurs="0"/>
+ <xs:element name="IdentifierComponentRef" type="common:IDType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ </xs:complexType>
+
+ <xs:simpleType name="ObjectIDType">
+ <xs:annotation>
+ <xs:documentation>The Object ID is used to reference a particular
Object within the SDMX Information Model's formalization of statistical
exchanges.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="Agency">
+ <xs:annotation>
+ <xs:documentation>Agency</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ConceptScheme">
+ <xs:annotation>
+ <xs:documentation>Concept scheme</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Concept">
+ <xs:annotation>
+ <xs:documentation>Concept</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Codelist">
+ <xs:annotation>
+ <xs:documentation>Codelist</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Code">
+ <xs:annotation>
+ <xs:documentation>Code</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KeyFamily">
+ <xs:annotation>
+ <xs:documentation>Key family</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Component">
+ <xs:annotation>
+ <xs:documentation>Component</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="KeyDescriptor">
+ <xs:annotation>
+ <xs:documentation>Key descriptor</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MeasureDescriptor">
+ <xs:annotation>
+ <xs:documentation>Measure descriptor</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AttributeDescriptor">
+ <xs:annotation>
+ <xs:documentation>Attribute descriptor</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="GroupKeyDescriptor">
+ <xs:annotation>
+ <xs:documentation>Group key descriptor</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Dimension">
+ <xs:annotation>
+ <xs:documentation>Dimension</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Measure">
+ <xs:annotation>
+ <xs:documentation>Measure</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Attribute">
+ <xs:annotation>
+ <xs:documentation>Attribute</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CategoryScheme">
+ <xs:annotation>
+ <xs:documentation>Category scheme</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ReportingTaxonomy">
+ <xs:annotation>
+ <xs:documentation>Reporting taxonomy</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Category">
+ <xs:annotation>
+ <xs:documentation>Category</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="OrganisationScheme">
+ <xs:annotation>
+ <xs:documentation>Organisation scheme</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DataProvider">
+ <xs:annotation>
+ <xs:documentation>Data or metadata provioder</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MetadataStructure">
+ <xs:annotation>
+ <xs:documentation>Metadata structure definition</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="FullTargetIdentifier">
+ <xs:annotation>
+ <xs:documentation>Full target identifier</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="PartialTargetIdentifier">
+ <xs:annotation>
+ <xs:documentation>Partial target identifier</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MetadataAttribute">
+ <xs:annotation>
+ <xs:documentation>Metadata attribute</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DataFlow">
+ <xs:annotation>
+ <xs:documentation>Data flow</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ProvisionAgreement">
+ <xs:annotation>
+ <xs:documentation>Data or metadata provision
agreement</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MetadataFlow">
+ <xs:annotation>
+ <xs:documentation>Metadata flow</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ContentConstraint">
+ <xs:annotation>
+ <xs:documentation>Content constraint</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="AttachmentConstraint">
+ <xs:annotation>
+ <xs:documentation>Attachment constraint</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DataSet">
+ <xs:annotation>
+ <xs:documentation>Data set</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="XSDataSet">
+ <xs:annotation>
+ <xs:documentation>Cross-sectional data set</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MetadataSet">
+ <xs:annotation>
+ <xs:documentation>Metadata set</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="HierarchicalCodelist">
+ <xs:annotation>
+ <xs:documentation>Hierarchical codelist</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Hierarchy">
+ <xs:annotation>
+ <xs:documentation>Hierarchy</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="StructureSet">
+ <xs:annotation>
+ <xs:documentation>Structure set</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="StructureMap">
+ <xs:annotation>
+ <xs:documentation>Structure map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ComponentMap">
+ <xs:annotation>
+ <xs:documentation>Component map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CodelistMap">
+ <xs:annotation>
+ <xs:documentation>Codelist map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CodeMap">
+ <xs:annotation>
+ <xs:documentation>Code map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CategorySchemeMap">
+ <xs:annotation>
+ <xs:documentation>Category scheme map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="CategoryMap">
+ <xs:annotation>
+ <xs:documentation>Category map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="OrganisationSchemeMap">
+ <xs:annotation>
+ <xs:documentation>Organisation scheme map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="OrganisationRoleMap">
+ <xs:annotation>
+ <xs:documentation>Organisation role map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ConceptSchemeMap">
+ <xs:annotation>
+ <xs:documentation>Concept scheme map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ConceptMap">
+ <xs:annotation>
+ <xs:documentation>Concept map</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Process">
+ <xs:annotation>
+ <xs:documentation>Process</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ProcessStep">
+ <xs:annotation>
+ <xs:documentation>Process step</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+
+
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:complexType name="RepresentationSchemeType">
+ <xs:annotation>
+ <xs:documentation>Representation schemes indicated which values are
valid for identifying objects within each class. For any given
representation scheme, two IDs must be provided: the RepresentationScheme
must have an ID as assigned to it by it representationSchemeAgency, whose
ID must also be provided. The type of the representation scheme is
expressed in the representationSchemeType attribute.</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="representationScheme" type="common:IDType"
use="required"/>
+ <xs:attribute name="representationSchemeAgency" type="common:IDType"
use="required"/>
+ <xs:attribute name="representationSchemeType"
type="RepresentationSchemeTypeType" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="ReportStructureType">
+ <xs:annotation>
+ <xs:documentation>The report structure describes the presentation of
the reported concepts, and associates them with target identifiers, full or
partial. It can be given a name and/or annotations. It must be given an ID,
using the id attribute, which must be unique within the
MetadataStructureDefinition element. It contains one or more
MetadataAttribute elements, each of which may either hold a value, or may
have subordinate MetadataAttribute elements. The target attribute holds the
ID of a full or partial identifier, which is the identifier of the target
against which the metadata attributes are reported.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="Name" type="common:TextType" maxOccurs="unbounded"/>
+ <xs:element name="Description" type="common:TextType"
maxOccurs="unbounded" minOccurs="0"/>
+ <xs:element name="MetadataAttribute" type="MetadataAttributeType"
maxOccurs="unbounded" />
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="id" type="common:IDType" use="required"/>
+ <xs:attribute name="urn" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="uri" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="target" type="common:IDType" use="required"/>
+ </xs:complexType>
+
+
+
+ <xs:complexType name="MetadataAttributeType">
+ <xs:annotation>
+ <xs:documentation>Metadata attributes are those concepts - whether
taking a coded or uncoded value, or made up of child concepts, or both -
which are reported against a full or partial target identifier. If there
are nested metadata attributes, these concepts are subordinate to the
parent metadata attribute - that is, for the purposes of presentation, the
parent concept is made up of the child concepts. This hierarchy is strictly
presentational, for the purposes of structuring reports. If the metadata
attribute can have a coded or uncoded value, then the charateristics of the
value are indicated with the TextFormat child element. If the value is
coded, then the representationScheme and representationSchemeAgency
attributes must hold values: the representationScheme attribute takes the
ID of a representation scheme, and the representationSchemeAgency takes the
ID of the agency which maintains that scheme. The conceptRef attribute
holds the ID of the metadata attribute's concept. The conceptAgency
attribute takes the agency ID of the concept referenced in conceptRef. The
conceptSchemeRef attribute holds the ID value of the concept scheme from
which the concept is taken, and the conceptSchemeAgency holds the ID of the
agency that maintains the concept scheme referenced in the conceptSchemeRef
attribute. The useageStatus attribute indicates whether provision of the
metadata attribute is conditional or mandatory.</xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="MetadataAttribute" type="MetadataAttributeType"
minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="TextFormat" type="TextFormatType" minOccurs="0"/>
+ <xs:element name="Annotations" type="common:AnnotationsType"
minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="conceptRef" type="common:IDType" use="required"/>
+ <xs:attribute name="conceptVersion" type="xs:string" use="optional"/>
+ <xs:attribute name="conceptAgency" type="common:IDType" use="optional"/>
+ <xs:attribute name="conceptSchemeRef" type="common:IDType"
use="optional"/>
+ <xs:attribute name="conceptSchemeAgency" type="common:IDType"
use="optional"/>
+ <xs:attribute name="representationScheme" type="common:IDType"
use="optional"/>
+ <xs:attribute name="representationSchemeAgency" type="common:IDType"
use="optional"/>
+ <xs:attribute name="usageStatus" type="UsageStatusType" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="TextFormatType">
+ <xs:annotation>
+ <xs:documentation>TextFormatType defines the information for describing
a text format. If the TextType attribute is not specified, any valid
characters may be included in the text field. (It corresponds to the
xs:string datatype of W3C XML Schema.) The textType attribute provides a
description of the data type, and may place restrictions on the values of
the other attributes, referred to as "facets". The isSequence attribute
indicates whether the values are intended to be ordered, and it may work in
combination with the interval attribute. The minLength and maxLength
attributes specify the minimum and maximum lengths of the value in
characters. startValue and endValue are used for inclusive and exclusive
ranges, indicating what the bounds of the range are. The interval attribute
specifies the permitted interval between two values. The timeInterval
attribute indicates the permitted duration between two time expressions.
The decimals attribute indicates the number of characters allowed after the
decimal separator. The pattern attribute holds any regular expression
permitted in the simila facet in W3C XML Schema.</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="textType" type="TextTypeType" use="optional"/>
+ <xs:attribute name="isSequence" type="xs:boolean" use="optional"/>
+ <xs:attribute name="minLength" type="xs:integer" use="optional"/>
+ <xs:attribute name="maxLength" type="xs:integer" use="optional"/>
+ <xs:attribute name="startValue" type="xs:double" use="optional"/>
+ <xs:attribute name="endValue" type="xs:double" use="optional"/>
+ <xs:attribute name="interval" type="xs:double" use="optional"/>
+ <xs:attribute name="timeInterval" type="xs:duration" use="optional"/>
+ <xs:attribute name="decimals" type="xs:integer" use="optional"/>
+ <xs:attribute name="pattern" type="xs:string" use="optional"/>
+
+ </xs:complexType>
+ <xs:simpleType name="TextTypeType">
+ <xs:annotation>
+ <xs:documentation>TextTypeType provides an enumerated list of the types
of characters allowed in a TextFormat field.</xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="String">
+ <xs:annotation>
+ <xs:documentation>A string datatype corresponding to W3C XML Schema's
xs:string datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="BigInteger">
+ <xs:annotation>
+ <xs:documentation>An integer datatype corresponding to W3C XML
Schema's xs:integer datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Integer">
+ <xs:annotation>
+ <xs:documentation>An integer datatype corresponding to W3C XML
Schema's xs:int datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Long">
+ <xs:annotation>
+ <xs:documentation>A numeric datatype corresponding to W3C XML
Schema's xs:long datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Short">
+ <xs:annotation>
+ <xs:documentation>A numeric datatype corresponding to W3C XML
Schema's xs:short datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Decimal">
+ <xs:annotation>
+ <xs:documentation>A numeric datatype corresponding to W3C XML
Schema's xs:decimal datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Float">
+ <xs:annotation>
+ <xs:documentation>A numeric datatype corresponding to W3C XML
Schema's xs:float datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Double">
+ <xs:annotation>
+ <xs:documentation>A numeric datatype corresponding to W3C XML
Schema's xs:double datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Boolean">
+ <xs:annotation>
+ <xs:documentation>A datatype corresponding to W3C XML Schema's
xs:boolean datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="DateTime">
+ <xs:annotation>
+ <xs:documentation>A time datatype corresponding to W3C XML Schema's
xs:dateTime datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Date">
+ <xs:annotation>
+ <xs:documentation>A time datatype corresponding to W3C XML Schema's
xs:date datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Time">
+ <xs:annotation>
+ <xs:documentation>A time datatype corresponding to W3C XML Schema's
xs:time datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Year">
+ <xs:annotation>
+ <xs:documentation>A time datatype corresponding to W3C XML Schema's
xs:gYear datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Month">
+ <xs:annotation>
+ <xs:documentation>A time datatype corresponding to W3C XML Schema's
xs:gMonth datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Day">
+ <xs:annotation>
+ <xs:documentation>A time datatype corresponding to W3C XML Schema's
xs:gDay datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="MonthDay">
+ <xs:annotation>
+ <xs:documentation>A time datatype corresponding to W3C XML Schema's
xs:gMonthDay datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="YearMonth">
+ <xs:annotation>
+ <xs:documentation>A time datatype corresponding to W3C XML Schema's
xs:gYearMonth datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Duration">
+ <xs:annotation>
+ <xs:documentation>A time datatype corresponding to W3C XML Schema's
xs:duration datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="URI">
+ <xs:annotation>
+ <xs:documentation>A datatype corresponding to W3C XML Schema's
xs:anyURI datatype.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Timespan">
+ <xs:annotation>
+ <xs:documentation>A complex datatype specifying a start date
(xs:dateTime) and a duration (xs:duration). Note that this is not allowed
as thre text type representing a dimension.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Count">
+ <xs:annotation>
+ <xs:documentation>A simple incrementing Integer type. The isSequence
facet must be set to true, and the interval facet must be set
to "1".</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+
+ <xs:enumeration value="InclusiveValueRange">
+ <xs:annotation>
+ <xs:documentation>This value indicates that the startValue and
endValue attributes provide an inclusive numeric range of type
xs:double.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="ExclusiveValueRange">
+ <xs:annotation>
+ <xs:documentation>This value indicates that the startValue and
endValue attributes provide an exclusive numeric range, of type
xs:double.</xs:documentation>
+ </xs:annotation>
+ </xs:enumeration>
+ <xs:enumeration value="Incremental">
+ <xs:annotation>
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /trunk/lib/SDMXUtilityData.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright SDMX 2004 - www.sdmx.org -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
xmlns="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/utility"
xmlns:common="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
xmlns:utility="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/utility"
targetNamespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/utility">
+
+<xs:import
namespace="http://www.SDMX.org/resources/SDMXML/schemas/v2_0/common"
schemaLocation="SDMXCommon.xsd"/>
+
+
+
+
+
+<xs:element name="DataSet" type="DataSetType">
+ <xs:annotation>
+ <xs:documentation>DataSet exists to act as the head of a substitution
group to which key-family-specific attributes and elements are
bound.</xs:documentation>
+ </xs:annotation>
+
+</xs:element>
+
+<xs:complexType name="DataSetType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>DataSetType acts as a structural base, which is
extended through the addition of attributes and elements to reflect the
particular needs of a specific key family using the xs:extends element.
Attributes are provided for describing the contents of a data or metadata
set, which are particularly important for interactions with the SDMX
Registry: datasetID, dataProviderSchemeAgencyID, dataProviderSchemeID,
dataflowAgencyID, and dataflowID all take the IDs specified by the
attribute names. The action attribute indicates whether the file is
appending, replacing, or deleting. Attributes reportingBeginDate,
reportingEndDate, validFromDate, and validToDate are inclusive.
publicationYear holds the ISO 8601 four-digit year, and publicationPeriod
specifies the period of publication of the data in terms of whatever
provisioning agreements might be in force (ie, "Q1 2005" if that is the
time of publication for a data set published on a quarterly
basis).</xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="keyFamilyURI" type="xs:anyURI" use="optional"/>
+ <xs:attribute name="datasetID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataProviderSchemeAgencyId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderSchemeId" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataProviderID" type="common:IDType" use="optional"/>
+ <xs:attribute name="dataflowAgencyID" type="common:IDType"
use="optional"/>
+ <xs:attribute name="dataflowID" type="common:IDType" use="optional"/>
+ <xs:attribute name="action" type="common:ActionType" use="optional"/>
+ <xs:attribute name="reportingBeginDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="reportingEndDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validFromDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="validToDate" type="common:TimePeriodType"
use="optional"/>
+ <xs:attribute name="publicationYear" type="xs:gYear" use="optional"/>
+ <xs:attribute name="publicationPeriod" type="common:TimePeriodType"
use="optional"/>
+</xs:complexType>
+
+<xs:element name="Group" type="GroupType">
+ <xs:annotation>
+ <xs:documentation>Group exists to act as the head of a substitution
group to which key-family-specific attributes and elements are
bound.</xs:documentation>
+ </xs:annotation>
+
+</xs:element>
+
+<xs:complexType name="GroupType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>GroupType acts as a structural base, which is renamed
and extended through the addition of attributes to reflect the particular
needs of a specific key family using the xs:extends
element.</xs:documentation>
+ </xs:annotation>
+
+</xs:complexType>
+
+<xs:element name="Series" type="SeriesType">
+ <xs:annotation>
+ <xs:documentation>Series exists to act as the head of a substitution
group to which key-family-specific attributes and elements are
bound.</xs:documentation>
+ </xs:annotation>
+
+</xs:element>
+
+<xs:complexType name="SeriesType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>SeriesType acts as a structural base, which is
extended through the addition of attributes to reflect the particular needs
of a specific key family using the xs:extends element.</xs:documentation>
+ </xs:annotation>
+
+</xs:complexType>
+
+<xs:element name="Key" type="KeyType">
+ <xs:annotation>
+ <xs:documentation>Key is an element which serves as the head of a
substitution group containing the key-family-specific key
values.</xs:documentation>
+ </xs:annotation>
+</xs:element>
+<xs:complexType name="KeyType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>KeyType describes the abstract type which defines the
Key element.</xs:documentation>
+ </xs:annotation>
+</xs:complexType>
+
+<xs:element name="Obs" type="ObsType">
+ <xs:annotation>
+ <xs:documentation>Obs exists to act as the head of a substitution group
to which key-family-specific attributes and elements are
bound.</xs:documentation>
+ </xs:annotation>
+
+</xs:element>
+
+<xs:complexType name="ObsType" abstract="true">
+ <xs:annotation>
+ <xs:documentation>ObsType acts as a structural base, which is extended
through the addition of attributes to reflect the particular needs of a
specific key family using the xs:extends element.</xs:documentation>
+ </xs:annotation>
+</xs:complexType>
+
+</xs:schema>
=======================================
--- /dev/null
+++ /trunk/lib/nunit.framework.dll Wed Aug 12 12:55:05 2009
Binary file, no diff available.
=======================================
--- /dev/null
+++ /trunk/lib/xml.xsd Wed Aug 12 12:55:05 2009
@@ -0,0 +1,80 @@
+<?xml version='1.0'?>
+<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
+
+ <xs:annotation>
+ <xs:documentation>
+ See http://www.w3.org/XML/1998/namespace.html and
+ http://www.w3.org/TR/REC-xml for information about this namespace.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>This schema defines attributes and an attribute group
+ suitable for use by
+ schemas wishing to allow xml:base, xml:lang or xml:space attributes
+ on elements they define.
+
+ To enable this, such a schema must import this schema
+ for the XML namespace, e.g. as follows:
+ &lt;schema . . .>
+ . . .
+ &lt;import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
+
+ Subsequently, qualified reference to any of the attributes
+ or the group defined below will have the desired effect, e.g.
+
+ &lt;type . . .>
+ . . .
+ &lt;attributeGroup ref="xml:specialAttrs"/>
+
+ will define a type which will schema-validate an instance
+ element with any of those attributes</xs:documentation>
+ </xs:annotation>
+
+ <xs:annotation>
+ <xs:documentation>In keeping with the XML Schema WG's standard versioning
+ policy, this schema document will persist at
+ http://www.w3.org/2001/03/xml.xsd.
+ At the date of issue it can also be found at
+ http://www.w3.org/2001/xml.xsd.
+ The schema document at that URI may however change in the future,
+ in order to remain compatible with the latest version of XML Schema
+ itself. In other words, if the XML Schema namespace changes, the
version
+ of this document at
+ http://www.w3.org/2001/xml.xsd will change
+ accordingly; the version at
+ http://www.w3.org/2001/03/xml.xsd will not change.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:attribute name="lang" type="xs:language">
+ <xs:annotation>
+ <xs:documentation>In due course, we should install the relevant ISO 2-
and 3-letter
+ codes as the enumerated possible values . . .</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attribute name="space" default="preserve">
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+
+ <xs:attribute name="base" type="xs:anyURI">
+ <xs:annotation>
+ <xs:documentation>See http://www.w3.org/TR/xmlbase/ for
+ information about this attribute.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+
+ <xs:attributeGroup name="specialAttrs">
+ <xs:attribute ref="xml:base"/>
+ <xs:attribute ref="xml:lang"/>
+ <xs:attribute ref="xml:space"/>
+ </xs:attributeGroup>
+
+</xs:schema>
=======================================
--- /trunk/SDMX_ML.Framework.sln Sun Mar 22 20:08:02 2009
+++ /trunk/SDMX_ML.Framework.sln Wed Aug 12 12:55:05 2009
@@ -3,7 +3,24 @@
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")
= "SDMX_ML.Framework", "model\SDMX_ML.Framework.csproj", "{B5A1E424-12DB-4B6B-96F5-C7899EDABE07}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")
= "SDMX.Model.Tests", "model.tests\SDMX.Model.Tests.csproj", "{31750F4E-5778-433D-9C2A-98971C45B051}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}")
= "SDMX.Tests", "model.tests\SDMX.Tests.csproj", "{31750F4E-5778-433D-9C2A-98971C45B051}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}")
= "lib", "lib", "{D22B5B49-5BAC-4D39-8F31-C2608C7BA7C4}"
+ ProjectSection(SolutionItems) = preProject
+ lib\nunit.framework.dll = lib\nunit.framework.dll
+ lib\SDMXCommon.xsd = lib\SDMXCommon.xsd
+ lib\SDMXCompactData.xsd = lib\SDMXCompactData.xsd
+ lib\SDMXCrossSectionalData.xsd = lib\SDMXCrossSectionalData.xsd
+ lib\SDMXGenericData.xsd = lib\SDMXGenericData.xsd
+ lib\SDMXGenericMetadata.xsd = lib\SDMXGenericMetadata.xsd
+ lib\SDMXMessage.xsd = lib\SDMXMessage.xsd
+ lib\SDMXMetadataReport.xsd = lib\SDMXMetadataReport.xsd
+ lib\SDMXQuery.xsd = lib\SDMXQuery.xsd
+ lib\SDMXRegistry.xsd = lib\SDMXRegistry.xsd
+ lib\SDMXStructure.xsd = lib\SDMXStructure.xsd
+ lib\SDMXUtilityData.xsd = lib\SDMXUtilityData.xsd
+ lib\xml.xsd = lib\xml.xsd
+ EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

Reply all
Reply to author
Forward
0 new messages