<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
<xs:import namespace="ddi:reusable:3_3" schemaLocation="reusable.xsd"/>
<xs:import namespace="ddi:physicaldataproduct:3_3" schemaLocation="physicaldataproduct.xsd"/>
<xs:element name="RecordLayout" substitutionGroup="p:BaseRecordLayout" type="RecordLayoutType">
<xs:annotation>
<xs:documentation>
A member of the BaseRecordLayout substitution group intended for use when the data items are stored in an external proprietary format.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="RecordLayoutType">
<xs:annotation>
<xs:documentation>
A member of the BaseRecordLayout substitution group intended for use when the data items are stored in an external proprietary format. In addition to the link to the PhysicalStructure provided by BaseRecordLayout, the record layout is this namespace (m4) identifies the character set and array base for the external data, identifies the software of the proprietary system, provides a description of how the data item is addressed within the system, provides default values for numeric data types, text data types, dateTime data types, whether coded data should be treated as numeric or text, a default variable scheme, proprietary information, and a full description of each data item including its link to the variable description and system address.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="p:BaseRecordLayoutType">
<xs:sequence>
<xs:element minOccurs="0" ref="r:CharacterSet">
<xs:annotation>
<xs:documentation>
Character set used in the data file (e.g., US ASCII, EBCDIC, UTF-8). This is a required field.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="r:ArrayBase">
<xs:annotation>
<xs:documentation>
Sets the array base for any arrays used in the definition (that is, whether the first value is in position 0 or 1, etc.). This may be the data array in a delimited data file or the measure array for measures that are bundled and stored in a single location. Array base is generally set to either 0 or 1. There is no override provided as systems processing a record would use a consistent array base.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="SystemSoftware">
<xs:annotation>
<xs:documentation>
Specification of a software package used to instantiate a data collection method.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="DataItemAddress">
<xs:annotation>
<xs:documentation>
Provides minimum information on data item address system, such as variable ID or Name, etc.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="DefaultNumericDataTypeReference">
<xs:annotation>
<xs:documentation>
Declares the most common data type used for numeric data.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="DefaultTextDataTypeReference">
<xs:annotation>
<xs:documentation>
Declares the most common data type used for textual data.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="DefaultDateTimeDataTypeReference">
<xs:annotation>
<xs:documentation>
Declares the most common data type used for date-time data.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice minOccurs="0">
<xs:element ref="CodedDataAsNumeric">
<xs:annotation>
<xs:documentation>
Indicates that coded data should be treated as numeric, and defines the numeric type.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="CodedDataAsText">
<xs:annotation>
<xs:documentation>
Indicates that coded data should be treated as text, and defines the text type.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:element minOccurs="0" ref="r:DefaultVariableSchemeReference">
<xs:annotation>
<xs:documentation>
References a variable scheme for the RecordLayout. This can be overridden by individual data items if they are from a different variable scheme.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="r:ProprietaryInfo">
<xs:annotation>
<xs:documentation>
Contains information proprietary to the software package which produced the data file. This is expressed as a set of key(name)/ value pairs.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="DataItem">
<xs:annotation>
<xs:documentation>
Describes a single data item within the file including its variable reference, information on the data type, and any item specific proprietary information.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DataItemAddressType">
<xs:annotation>
<xs:documentation>
Provides minimum information on data item address system, such as variable ID or Name, etc.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" ref="r:Description">
<xs:annotation>
<xs:documentation>
Description of the data item address. Supports multiple language versions of the same content as well as optional formatting of the content.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DataItemType">
<xs:annotation>
<xs:documentation>
Describes a single data item within the record, linking it to its description in a variable and providing information on its data type and any item specific proprietary information.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" ref="r:VariableReference">
<xs:annotation>
<xs:documentation>
Reference to a Variable describing the content of the data item.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="ProprietaryDataType">
<xs:annotation>
<xs:documentation>
Allows an override of the default data type, using the language of the proprietary software. A controlled vocabulary is recommended.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="ProprietaryOutputFormat">
<xs:annotation>
<xs:documentation>Indicates the proprietary output format.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" ref="r:ProprietaryInfo">
<xs:annotation>
<xs:documentation>
Contains proprietary information specific to the data item. This is expressed as a set of key (name)-value pairs.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="DataItemAddress" type="DataItemAddressType">
<xs:annotation>
<xs:documentation>
Provides minimum information on data item address system.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DefaultNumericDataTypeReference" type="r:ReferenceType">
<xs:annotation>
<xs:documentation>
Reference to an existing ManagedNumericRepresentation using the Reference structure. TypeOfObject should be set to ManagedNumericRepresentation.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DefaultTextDataTypeReference" type="r:ReferenceType">
<xs:annotation>
<xs:documentation>
Reference to an existing ManagedTextRepresentation using the Reference structure. TypeOfObject should be set to ManagedTextRepresentation.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DefaultDateTimeDataTypeReference" type="r:ReferenceType">
<xs:annotation>
<xs:documentation>
Reference to an existing ManagedDateTimeRepresentation using the Reference structure. TypeOfObject should be set to ManagedDateTimeRepresentation.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CodedDataAsNumeric" type="CodedDataAsNumericType">
<xs:annotation>
<xs:documentation>
Indicates that coded data should be treated as numeric.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="CodedDataAsNumericType">
<xs:annotation>
<xs:documentation>
Indicates that coded data should be treated as numeric, and references the definition of the numeric type as described in ManagedNumericRepresentation. TypeOfObject should be set to ManagedNumericRepresentation.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="r:ReferenceType">
<xs:attribute fixed="true" name="treatCodedDataAsNumeric" type="xs:boolean">
<xs:annotation>
<xs:documentation>
Fixed attribute indicating that coded data should be treated as a numeric of the referenced type.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="CodedDataAsText" type="CodedDataAsTextType">
<xs:annotation>
<xs:documentation>
Indicates that coded data should be treated as text.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="CodedDataAsTextType">
<xs:annotation>
<xs:documentation>
Indicates that coded data should be treated as text, and references the definition of the text type as described in ManagedTextRepresentation. TypeOfObject should be set to ManagedTextRepresentation.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="r:ReferenceType">
<xs:attribute fixed="true" name="treatCodedDataAsText" type="xs:boolean">
<xs:annotation>
<xs:documentation>
Fixed attribute indicating that coded data should be treated as a text/character string of the referenced type.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ProprietaryDataType" type="r:CodeValueType">
<xs:annotation>
<xs:documentation>
A brief textual description of the of proprietary data being provided. Supports the use of an external controlled vocabulary.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ProprietaryOutputFormat" type="r:CodeValueType">
<xs:annotation>
<xs:documentation>
A brief textual description or classification of the proprietary output format of the data. Supports the use of an external controlled vocabulary.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DataItem" type="DataItemType">
<xs:annotation>
<xs:documentation>Describes a single data item within the record.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SystemSoftware" type="r:SoftwareType">
<xs:annotation>
<xs:documentation>
Specification of the software used by the proprietary system.
</xs:documentation>
</xs:annotation>
</xs:element>