XML Schema "expTypes.xsd"
Target Namespace:
http://cpas.fhcrc.org/exp/xml
Version:
10.3
Defined Components:
1 global element, 142 local elements, 34 complexTypes, 4 simpleTypes, 1 element group
Default Namespace-Qualified Form:
Local Elements: qualified; Local Attributes: unqualified
Schema Location:
C:\dev\labkey\labkeyHome\server\modules\platform\api\schemas\expTypes.xsd, see XML source
Imports Schemas (2):
rdfTypes.xsd [src], tableInfo.xsd [src]
Imported by Schemas (2):
assayProvider.xsd [src], rdfTypes.xsd [src]
XML Source
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://cpas.fhcrc.org/exp/xml" version="10.3" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:dat="http://labkey.org/data/xml" xmlns:exp="http://cpas.fhcrc.org/exp/xml" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://labkey.org/data/xml" schemaLocation="tableInfo.xsd"/>
<xs:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns#" schemaLocation="rdfTypes.xsd"/>
<xs:complexType name="ExperimentArchiveType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Experiment" type="exp:ExperimentType"/>
<xs:element minOccurs="0" name="DomainDefinitions">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Domain" type="exp:DomainDescriptorType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="SampleSets">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="SampleSet" type="exp:SampleSetType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="DataClasses">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="DataClass" type="exp:DataClassType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ProtocolDefinitions">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Protocol" type="exp:ProtocolBaseType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ProtocolActionDefinitions">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="ProtocolActionSet" type="exp:ProtocolActionSetType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="StartingInputDefinitions">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Material" type="exp:MaterialBaseType"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Data" type="exp:DataBaseType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ExperimentRuns">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="ExperimentRun" type="exp:ExperimentRunType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ExperimentType">
<xs:sequence>
<xs:element name="Name" type="string"/>
<xs:element minOccurs="0" name="Hypothesis" type="string"/>
<xs:element minOccurs="0" name="ExperimentDescriptionURL" type="string"/>
<xs:element minOccurs="0" name="Comments" type="string"/>
<xs:element minOccurs="0" name="Contact" type="exp:ContactType"/>
<xs:element minOccurs="0" name="Properties" type="exp:PropertyCollectionType"/>
</xs:sequence>
<xs:attribute ref="rdf:about" use="required"/>
<xs:attribute name="BatchProtocolLSID" type="string" use="optional"/>
</xs:complexType>
<xs:complexType name="ContactType">
<xs:sequence>
<xs:element minOccurs="0" name="ContactId" type="string"/>
<xs:element minOccurs="0" name="Email" type="string"/>
<xs:element minOccurs="0" name="FirstName" type="string"/>
<xs:element minOccurs="0" name="LastName" type="string"/>
<xs:element minOccurs="0" name="Properties" type="exp:PropertyCollectionType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ExperimentRunType">
<xs:sequence>
<xs:element name="Name" type="string"/>
<xs:element name="ProtocolLSID" type="string"/>
<xs:element minOccurs="0" name="Comments" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="ExperimentLSID" type="string"/>
<xs:element minOccurs="0" name="Properties" type="exp:PropertyCollectionType"/>
<xs:element maxOccurs="1" minOccurs="0" name="WorkflowTaskLSID" type="string"/>
<xs:element minOccurs="0" name="ReplacedByRunLSID" type="string">
<xs:annotation>
<xs:documentation>
Reference to another run that defines an updated version of this data
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="ExperimentLog">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="ExperimentLogEntry" type="exp:ExperimentLogEntryType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ProtocolApplications">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="ProtocolApplication" type="exp:ProtocolApplicationBaseType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="rdf:about" use="required"/>
<xs:attribute name="CreateNewIfDuplicate" type="boolean" use="optional"/>
<xs:attribute name="GenerateDataFromStepRecord" type="boolean" use="optional"/>
</xs:complexType>
<xs:complexType name="ExperimentLogEntryType">
<xs:sequence>
<xs:element minOccurs="0" name="CommonParametersApplied" type="exp:SimpleValueCollectionType"/>
<xs:element minOccurs="0" name="ApplicationInstanceCollection">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="InstanceDetails" type="exp:InstanceDetailsType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ActionSequenceRef" type="xs:int"/>
<xs:attribute name="StepCompleted" type="xs:date" use="optional"/>
</xs:complexType>
<xs:complexType name="InstanceDetailsType">
<xs:sequence>
<xs:element minOccurs="0" name="InstanceInputs" type="exp:InputOutputRefsType"/>
<xs:element minOccurs="0" name="InstanceParametersApplied" type="exp:SimpleValueCollectionType"/>
<xs:element minOccurs="0" name="Comments" type="string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DataBaseType">
<xs:sequence>
<xs:element name="Name" type="string"/>
<xs:element minOccurs="0" name="CpasType" type="exp:CpasTypeNameType"/>
<!-- Deprecated, no longer used but kept to allow importing of old .xar files -->
<xs:element minOccurs="0" name="SourceProtocolLSID" type="string"/>
<xs:element minOccurs="0" name="DataFileUrl" type="string"/>
<xs:element minOccurs="0" name="Properties" type="exp:PropertyCollectionType"/>
</xs:sequence>
<xs:attribute ref="rdf:about" use="required"/>
</xs:complexType>
<xs:complexType name="DataType">
<xs:complexContent>
<xs:extension base="exp:DataBaseType">
<xs:sequence>
<xs:group ref="exp:ExtensionsGroup"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="InputOutputRefsType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="MaterialLSID">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="string">
<xs:attribute name="CpasType" type="exp:CpasTypeNameType" use="optional"/>
<xs:attribute name="RoleName" type="xs:string"/>
<xs:attribute name="ProtocolInput" type="xs:string"/>
<xs:anyAttribute namespace="##other"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" minOccurs="0" name="DataLSID">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="string">
<xs:attribute name="CpasType" type="exp:CpasTypeNameType" use="optional"/>
<xs:attribute name="DataFileUrl" type="string" use="optional"/>
<xs:attribute name="RoleName" type="xs:string"/>
<xs:attribute name="ProtocolInput" type="xs:string"/>
<xs:anyAttribute namespace="##other"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
<xs:complexType name="MaterialBaseType">
<xs:sequence>
<xs:element name="Name" type="string"/>
<xs:element minOccurs="0" name="CpasType" type="exp:CpasTypeNameType"/>
<!-- Deprecated, no longer used but kept to allow importing of old .xar files -->
<xs:element minOccurs="0" name="SourceProtocolLSID" type="string"/>
<xs:element minOccurs="0" name="Properties" type="exp:PropertyCollectionType"/>
<xs:element maxOccurs="1" minOccurs="0" name="Alias" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="RootMaterialLSID" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="AliquotedFromLSID" type="string"/>
</xs:sequence>
<xs:attribute ref="rdf:about" use="required"/>
</xs:complexType>
<xs:complexType name="MaterialType">
<xs:complexContent>
<xs:extension base="exp:MaterialBaseType">
<xs:sequence>
<xs:group ref="exp:ExtensionsGroup"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ProtocolApplicationBaseType">
<xs:sequence>
<xs:element name="Name" type="string"/>
<xs:element name="CpasType" type="exp:CpasTypeNameType"/>
<xs:element name="ProtocolLSID" type="string"/>
<xs:element name="ActionSequence" type="int"/>
<xs:element minOccurs="0" name="ActivityDate" nillable="true" type="date"/>
<xs:element minOccurs="0" name="Comments" type="string"/>
<xs:element minOccurs="0" name="StartTime" nillable="true" type="date"/>
<xs:element minOccurs="0" name="EndTime" nillable="true" type="date"/>
<xs:element minOccurs="0" name="RecordCount" nillable="true" type="int"/>
<xs:element minOccurs="0" name="InputRefs" type="exp:InputOutputRefsType"/>
<xs:element minOccurs="0" name="ProtocolApplicationParameters" type="exp:SimpleValueCollectionType"/>
<xs:element name="OutputMaterials">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Material" type="exp:MaterialBaseType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
</xs:element>
<xs:element name="OutputDataObjects">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Data" type="exp:DataBaseType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ProvenanceMap">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="ObjectRefs">
<xs:complexType>
<xs:attribute name="from" type="string" use="optional"/>
<xs:attribute name="to" type="string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Properties" type="exp:PropertyCollectionType"/>
</xs:sequence>
<xs:attribute ref="rdf:about" use="required"/>
</xs:complexType>
<xs:complexType name="ProtocolApplicationType">
<xs:complexContent>
<xs:extension base="exp:ProtocolApplicationBaseType">
<xs:sequence>
<xs:group ref="exp:ExtensionsGroup"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="SimpleValueType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Name" type="xs:string"/>
<xs:attribute name="OntologyEntryURI" type="xs:string"/>
<xs:attribute default="String" name="ValueType" type="exp:SimpleTypeNames"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="SimpleTypeNames">
<xs:restriction base="xs:string">
<xs:enumeration value="Boolean"/>
<xs:enumeration value="String"/>
<xs:enumeration value="PropertyURI"/>
<xs:enumeration value="Integer"/>
<xs:enumeration value="FileLink"/>
<xs:enumeration value="DateTime"/>
<xs:enumeration value="Double"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="PropertyObjectDeclarationType">
<xs:simpleContent>
<xs:restriction base="exp:SimpleValueType">
<xs:attribute fixed="PropertyURI" name="ValueType" type="exp:SimpleTypeNames"/>
</xs:restriction>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="PropertyObjectType">
<xs:sequence>
<xs:element name="ChildProperties" type="exp:PropertyCollectionType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SimpleValueCollectionType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="SimpleVal" nillable="true" type="exp:SimpleValueType"/>
</xs:sequence>
<xs:attribute fixed="Collection" ref="rdf:parseType"/>
</xs:complexType>
<xs:complexType name="PropertyCollectionType">
<xs:complexContent>
<xs:extension base="exp:SimpleValueCollectionType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="PropertyObject" type="exp:PropertyObjectType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ProtocolActionType">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="PredecessorAction">
<xs:complexType>
<xs:attribute name="ActionSequenceRef" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ChildProtocolLSID" type="xs:string" use="required"/>
<xs:attribute name="ActionSequence" type="xs:int" use="required"/>
</xs:complexType>
<xs:complexType name="ProtocolActionSetType">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="ProtocolAction" type="exp:ProtocolActionType"/>
</xs:sequence>
<xs:attribute name="ParentProtocolLSID" type="string" use="required"/>
</xs:complexType>
<xs:complexType name="ProtocolBaseType">
<xs:sequence>
<xs:element name="Name" type="string"/>
<xs:element minOccurs="0" name="ProtocolDescription" type="string"/>
<xs:element default="ProtocolApplication" minOccurs="0" name="ApplicationType" type="exp:CpasTypeNameType"/>
<xs:element minOccurs="0" name="MaxInputMaterialPerInstance" nillable="true" type="xs:int"/>
<xs:element minOccurs="0" name="MaxInputDataPerInstance" nillable="true" type="xs:int"/>
<xs:element minOccurs="0" name="OutputMaterialPerInstance" nillable="true" type="xs:int"/>
<xs:element minOccurs="0" name="OutputDataPerInstance" nillable="true" type="xs:int"/>
<xs:element default="Material" minOccurs="0" name="OutputMaterialType" type="exp:CpasTypeNameType"/>
<xs:element default="Data" minOccurs="0" name="OutputDataType" type="exp:CpasTypeNameType"/>
<xs:element maxOccurs="1" minOccurs="0" name="Inputs">
<xs:complexType>
<xs:choice>
<xs:element maxOccurs="unbounded" minOccurs="1" name="MaterialInput" type="exp:MaterialProtocolInputType"/>
<xs:element maxOccurs="unbounded" minOccurs="1" name="DataInput" type="exp:DataProtocolInputType"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="Outputs">
<xs:complexType>
<xs:choice>
<xs:element maxOccurs="unbounded" minOccurs="1" name="MaterialOutput" type="exp:MaterialProtocolInputType"/>
<xs:element maxOccurs="unbounded" minOccurs="1" name="DataOutput" type="exp:DataProtocolInputType"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="Instrument" type="string"/>
<xs:element minOccurs="0" name="Software" type="string"/>
<xs:element minOccurs="0" name="Status" type="string"/>
<xs:element minOccurs="0" name="Contact" type="exp:ContactType"/>
<xs:element minOccurs="0" name="ParameterDeclarations" type="exp:SimpleValueCollectionType"/>
<xs:element minOccurs="0" name="Properties" type="exp:PropertyCollectionType"/>
</xs:sequence>
<xs:attribute ref="rdf:about" use="required"/>
</xs:complexType>
<xs:complexType name="ProtocolType">
<xs:complexContent>
<xs:extension base="exp:ProtocolBaseType">
<xs:sequence>
<xs:group ref="exp:ExtensionsGroup"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ProtocolInputCriteria">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ProtocolInputType">
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" name="Criteria" nillable="true" type="exp:ProtocolInputCriteria"/>
<xs:element maxOccurs="1" minOccurs="0" name="Properties" type="exp:PropertyCollectionType"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
<xs:attribute name="guid" type="xs:string"/>
<xs:attribute name="minOccurs" type="xs:int"/>
<xs:attribute name="maxOccurs" type="xs:int"/>
</xs:complexType>
<xs:complexType name="MaterialProtocolInputType">
<xs:complexContent>
<xs:extension base="exp:ProtocolInputType">
<xs:attribute name="sampleSet" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="DataProtocolInputType">
<xs:complexContent>
<xs:extension base="exp:ProtocolInputType">
<xs:attribute name="dataClass" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="SubstitutionTemplateType">
<xs:restriction base="xs:string">
<!-- goal is to make this a regular expression with some pre-defined substitution matches, is there a regex for a regex ?
<pattern value="[\w.(\(InputName\))(\(InputLSID\))(\(InputInstanceNum\))(\(OutputType\))(\(OutputInstanceNum\))(\(ExperimentRunName\))(\(ExperimentRunLSID\))(\(ExperimentRunUniqueInt\))(\(ExperimentRunLSIDBase\))(\(ExperimentLSIDBase\))" />
-->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="CpasTypeNameType">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:group name="ExtensionsGroup">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
</xs:sequence>
</xs:group>
<xs:complexType name="SampleSetType">
<xs:sequence>
<xs:element minOccurs="1" name="Name" type="string"/>
<xs:element minOccurs="1" name="MaterialLSIDPrefix" type="string"/>
<xs:element minOccurs="0" name="Description" type="string"/>
<xs:element maxOccurs="3" minOccurs="0" name="KeyField" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="ParentField" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="NameExpression" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="AliquotNameExpression" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="LabelColor" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="MetricUnit" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="AutoLinkTargetContainerId" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="AutoLinkCategory" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="Category" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="ParentImportAlias">
<xs:complexType>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="alias" type="exp:ImportAlias"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute ref="rdf:about" use="required"/>
</xs:complexType>
<xs:complexType name="DataClassType">
<xs:sequence>
<xs:element minOccurs="1" name="Name" type="string"/>
<xs:element minOccurs="0" name="Description" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="NameExpression" type="string"/>
<xs:element minOccurs="0" name="Category" type="string"/>
<xs:element minOccurs="0" name="SampleType" type="string"/>
</xs:sequence>
<xs:attribute ref="rdf:about" use="required"/>
</xs:complexType>
<xs:complexType name="ImportAlias">
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="1" name="name" type="xs:string"/>
<xs:element maxOccurs="1" minOccurs="1" name="value" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DomainDescriptorType">
<xs:sequence>
<xs:element minOccurs="0" name="Name" type="string"/>
<xs:element minOccurs="0" name="DomainURI" type="string"/>
<xs:element minOccurs="0" name="Description" type="string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="PropertyDescriptor" type="exp:PropertyDescriptorType"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="DefaultType">
<xs:restriction base="xs:string">
<xs:enumeration value="EditableDefault"/>
<xs:enumeration value="FixedValue"/>
<xs:enumeration value="LastEntered"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="PropertyDescriptorType">
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="0" name="PropertyURI" type="string">
<xs:annotation>
<xs:documentation>
If not present, equivalent to enclosing Domain's DomainURI + "#" + Name
</xs:documentation>
</xs:annotation>
</xs:element>
<!-- deprecated - not used -->
<xs:element maxOccurs="1" minOccurs="0" name="OntologyURI" type="string"/>
<xs:element maxOccurs="1" minOccurs="1" name="Name" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="Description" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="Required" type="boolean"/>
<xs:element maxOccurs="1" minOccurs="0" name="Hidden" type="boolean"/>
<xs:element maxOccurs="1" minOccurs="0" name="ShownInInsertView" type="boolean"/>
<xs:element maxOccurs="1" minOccurs="0" name="ShownInUpdateView" type="boolean"/>
<xs:element maxOccurs="1" minOccurs="0" name="ShownInDetailsView" type="boolean"/>
<xs:element maxOccurs="1" minOccurs="0" name="RangeURI" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="ConceptURI" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="Label" type="string"/>
<!-- deprecated - not used -->
<xs:element maxOccurs="1" minOccurs="0" name="SearchTerms" type="string"/>
<!-- deprecated - not used -->
<xs:element maxOccurs="1" minOccurs="0" name="SemanticType" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="Format" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="URL" type="string"/>
<xs:element minOccurs="0" name="FK">
<xs:annotation>
<xs:documentation>
A structure that describes a foreign key relationship between a column in the current table and a target column in another table.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element minOccurs="0" name="FolderPath" type="xs:string">
<xs:annotation>
<xs:documentation>
Absolute path to the folder containing the target table of the relationship. Example: /Home/support/lists.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Query" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the target table of the relationship, the "one" side of the many-to-one relationship.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="Schema" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the schema in which the foreign key target is defined. If empty, the target ("one" side) table is assumed to exist in the same schema as the "many" side table.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="ImportAliases">
<xs:annotation>
<xs:documentation>
A collection of aliases by which this column may be named when importing from external files.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:element name="ImportAlias" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="MvEnabled" type="boolean"/>
<xs:element maxOccurs="1" minOccurs="0" name="DefaultType" type="exp:DefaultType"/>
<xs:element maxOccurs="1" minOccurs="0" name="DefaultValue" type="string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="PropertyValidator" type="exp:PropertyValidatorType"/>
<xs:element minOccurs="0" name="ConditionalFormats" type="dat:ConditionalFormatsType"/>
<xs:element maxOccurs="1" minOccurs="0" name="Measure" type="boolean"/>
<xs:element maxOccurs="1" minOccurs="0" name="Dimension" type="boolean"/>
<xs:element maxOccurs="1" minOccurs="0" name="RecommendedVariable" type="boolean"/>
<xs:element maxOccurs="1" minOccurs="0" name="Scale" type="xs:int">
<xs:annotation>
<xs:documentation>
The defined maximum or fixed length of the data values in this column.
Supported for SQL metadata (inferred from database if not specified).
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="PrincipalConceptCode" type="string">
<xs:annotation>
<xs:documentation>
Ontology concept code associated with this property descriptor.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="ontology">
<xs:annotation>
<xs:documentation>
This is a parent element for ontology related metadata. This includes the description of what this column "measures", as well as
additional information specific to concept-valued columns.
TODO: principalConceptCode is still a higher level attribute.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:all>
<xs:element maxOccurs="1" minOccurs="0" name="concept" type="dat:ConceptType"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="1" minOccurs="0" name="Scannable" type="boolean">
<xs:annotation>
<xs:documentation>
When true, field's values are included in Barcode searches.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ConceptType">
<xs:all>
<xs:annotation>
<xs:documentation>
Only relevant to concept-valued columns (conceptURI=http://www.labkey.org/types#conceptCode).
These properties define how the column data is imported, and the target ontology.
</xs:documentation>
</xs:annotation>
<xs:element maxOccurs="1" minOccurs="0" name="subtree" type="xs:string">
<xs:annotation>
<xs:documentation>
This is a slash ('/') separated path of concepts codes. The values in this column are expected
to be children of the tree rooted at this path. This is not yet enforced, but this is used to
disambiguate synonyms on import, and to modify the display of concepts that are not in the expected tree.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="labelColumn" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of column to hold the label of the resolved concept.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element minOccurs="0" name="importColumn" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of column which holds the imported/provided/reported label for this concept. The LabKey import
code will try to use the value provided in the named column to resolve a concept code defined in the source ontology.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:all>
<xs:attribute name="source" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>
Short name of the target ontology for this column. E.g. "SNOMED_CT" or "NCI"
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
<xs:complexType name="PropertyValidatorType">
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="1" name="Name" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="Description" type="string"/>
<xs:element maxOccurs="1" minOccurs="1" name="TypeURI" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="Expression" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="ErrorMessage" type="string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="Property" type="exp:PropertyValidatorPropertyType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PropertyValidatorPropertyType">
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="1" name="Name" type="string"/>
<xs:element maxOccurs="1" minOccurs="0" name="Value" type="string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ExperimentArchive" type="exp:ExperimentArchiveType"/>
</xs:schema>

This XML schema documentation has been generated with DocFlex/XML RE 1.7.2 using DocFlex/XML XSDDoc 2.1.0 template set.
DocFlex/XML RE is a reduced edition of DocFlex/XML, which is a tool for programming and running highly sophisticated documentation and reports generators by the data obtained from any kind of XML files. The actual doc-generators are implemented in the form of special templates that are designed visually using a high quality Template Designer GUI basing on the XML schema (or DTD) files describing the data source XML.
DocFlex/XML XSDDoc is a commercial template application of DocFlex/XML that implements a high-end XML Schema documentation generator with simultaneous support of framed multi-file HTML, single-file HTML and RTF output formats. (More formats are planned in the future).
A commercial license for "DocFlex/XML XSDDoc" will allow you:
  • To configure the generated documentation so much as you want. Thanks to our template technology, it was possible to support more than 300 template parameters (working the same as "options" of an ordinary doc-gen), which will give you an unprecedented control over the generated content!
  • To use certain features disabled in the free mode (such as the full documenting of substitution groups).
  • To enable/disable documenting of the initial, imported, included and redefined XML schemas selectively.
  • To document local element components both globally and locally (similar to attributes).
  • To enable/disable reproducing of namespace prefixes.
  • To format your annotations with XHTML tags and reproduce that formatting both in HTML and RTF output.
  • To insert images in your annotations using XHTML <img> tags (supported both in HTML and RTF output).
  • To use PlainDoc.tpl main template to generate all the XML schema documentation in the form of a single HTML file.
  • To use the same template to generate the incredible quality RTF documentation.
  • To document only selected XML schema components specified by name.
  • To remove this very advertisement text
Once having only such a license, you will be able to run the fully-featured XML schema documentation generator both with DocFlex/XML SDK and with DocFlex/XML RE, which is a reduced free edition containing only the template interpretor / output generator. No other licenses will be required!
But this is not all. In addition to it, a commercial license for DocFlex/XML SDK will allow you to modify the XSDDoc templates themselves as much as you want. You will be able to achieve whatever was impossible to do with the template parameters only. And, of course, you could develop any template applications by your own!
Please note: By purchasing a license for this software, you not only acquire a useful tool, you will also make an important investment in its future development, the result of which you could enjoy later by yourself. Every single your purchase matters and makes a difference for us!
To buy a license, please follow this link: http://www.filigris.com/shop/