<xs:schema
targetNamespace="http://cdf.gsfc.nasa.gov"
xmlns="http://cdf.gsfc.nasa.gov"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:documentation xml:lang="en">
Schema for CDF Markup Language (CDFML)
Version: 1.1 (October 11, 2007)
History:
Date Version Comments
==== ======= ========
May 2002 1.0 Original
Oct 11, 2007 1.1 Made the default namespace the same as the
targetNamespace.
Added the CDF_EPOCH16 data type.
</xs:documentation>
</xs:annotation>
<xs:element name="CDF">
<xs:complexType>
<xs:sequence>
<xs:element ref="cdfFileInfo" minOccurs="0" />
<xs:element ref="cdfGAttributes" minOccurs="0" />
<xs:element ref="cdfVariables" minOccurs="0" />
<xs:element ref="orphanAttributes" minOccurs="0" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="cdfFileInfo">
<xs:complexType>
<xs:attribute name="fileFormat" type="fileFormatType"/>
<xs:attribute name="compression" type="compressionType"/>
<xs:attribute name="majority" type="majorityType"/>
<xs:attribute name="encoding" type="encodingType"/>
<xs:attribute name="negToPosFp0" type="negToPosFp0Type"/>
</xs:complexType>
</xs:element>
<xs:element name="cdfGAttributes">
<xs:complexType>
<xs:sequence>
<xs:element ref="attribute" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cdfVariables">
<xs:complexType>
<xs:sequence>
<xs:element ref="variable" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="attribute">
<xs:complexType>
<xs:sequence>
<xs:element ref="entry" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="entry">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="entryNum" type="xs:integer" />
<xs:attribute name="cdfDatatype" type="cdfDataType" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="variable">
<xs:complexType>
<xs:sequence>
<xs:element ref="cdfVarInfo" />
<xs:element ref="cdfVAttributes" minOccurs="0" />
<xs:element ref="cdfVarData" minOccurs="0" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="cdfVarInfo">
<xs:complexType>
<xs:attribute name="cdfDatatype" type="cdfDataType" use="required" />
<xs:attribute name="dim" type="xs:integer" use="required" />
<xs:attribute name="dimSizes" type="xs:string" />
<xs:attribute name="numElements" type="xs:integer" use="required" />
<xs:attribute name="dimVariances" type="xs:string" />
<xs:attribute name="recVariance" use="required" type="recVarianceType"/>
<xs:attribute name="compression" type="compressionType"/>
<xs:attribute name="reservePercent" type="xs:integer" />
<xs:attribute name="sparseRecords" type="sparseRecordsType"/>
<xs:attribute name="numInitialRecords" type="xs:integer" />
<xs:attribute name="numRecordsAllocate" type="xs:integer" />
<xs:attribute name="cacheSize" type="xs:integer" />
<xs:attribute name="padValue" type="xs:string" />
<xs:attribute name="blockingFactor" type="xs:integer" />
</xs:complexType>
</xs:element>
<xs:element name="cdfVAttributes">
<xs:complexType>
<xs:sequence>
<xs:element ref="attribute" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="orphanAttributes">
<xs:complexType>
<xs:sequence>
<xs:element ref="attribute" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cdfVarData">
<xs:complexType>
<xs:sequence>
<xs:element ref="record" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="record">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="element" />
</xs:choice>
<xs:attribute name="recNum" type="xs:integer" />
<xs:attribute name="elementDelimiter" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="element">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="index" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:simpleType name="fileFormatType">
<xs:restriction base="xs:string">
<xs:enumeration value="SINGLE" />
<xs:enumeration value="MULTI" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="compressionType">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE" />
<xs:enumeration value="RLE" />
<xs:enumeration value="HUFFMAN" />
<xs:enumeration value="AHUFFMAN" />
<xs:enumeration value="GZIP.1" />
<xs:enumeration value="GZIP.2" />
<xs:enumeration value="GZIP.3" />
<xs:enumeration value="GZIP.4" />
<xs:enumeration value="GZIP.5" />
<xs:enumeration value="GZIP.6" />
<xs:enumeration value="GZIP.7" />
<xs:enumeration value="GZIP.8" />
<xs:enumeration value="GZIP.9" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="majorityType">
<xs:restriction base="xs:string">
<xs:enumeration value="ROW" />
<xs:enumeration value="COLUMN" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="encodingType">
<xs:restriction base="xs:string">
<xs:enumeration value="HOST" />
<xs:enumeration value="NETWORK" />
<xs:enumeration value="VAX" />
<xs:enumeration value="ALPHAVMSd" />
<xs:enumeration value="ALPHAVMSg" />
<xs:enumeration value="ALPHAVMSi" />
<xs:enumeration value="ALPHAOSF1" />
<xs:enumeration value="ALPHAOSF1" />
<xs:enumeration value="SUN" />
<xs:enumeration value="SGI" />
<xs:enumeration value="DECSTATION" />
<xs:enumeration value="IBMRS" />
<xs:enumeration value="HP" />
<xs:enumeration value="IBMPC" />
<xs:enumeration value="NeXT" />
<xs:enumeration value="MAC" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="negToPosFp0Type">
<xs:restriction base="xs:string">
<xs:enumeration value="ENABLE" />
<xs:enumeration value="DISABLE" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="cdfDataType">
<xs:restriction base="xs:string">
<xs:enumeration value="CDF_CHAR" />
<xs:enumeration value="CDF_UCHAR" />
<xs:enumeration value="CDF_BYTE" />
<xs:enumeration value="CDF_INT1" />
<xs:enumeration value="CDF_UINT1" />
<xs:enumeration value="CDF_INT2" />
<xs:enumeration value="CDF_UINT2" />
<xs:enumeration value="CDF_INT4" />
<xs:enumeration value="CDF_UINT4" />
<xs:enumeration value="CDF_REAL4" />
<xs:enumeration value="CDF_FLOAT" />
<xs:enumeration value="CDF_REAL8" />
<xs:enumeration value="CDF_DOUBLE" />
<xs:enumeration value="CDF_EPOCH" />
<xs:enumeration value="CDF_EPOCH16" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="sparseRecordsType">
<xs:restriction base="xs:string">
<xs:enumeration value="NONE" />
<xs:enumeration value="PAD" />
<xs:enumeration value="PREV" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="recVarianceType">
<xs:restriction base="xs:string">
<xs:enumeration value="VARY" />
<xs:enumeration value="NOVARY" />
</xs:restriction>
</xs:simpleType>
</xs:schema>
|