MSL Equipment-Register Schema
repository

Schema Document Properties

Target Namespacehttps://measurement.govt.nz/equipment-register
Version
Schema Composition
  • This schema imports schema(s) from the following namespace(s):
    • https://measurement.govt.nz/gtc/xml
PrefixNamespace
xmlhttp://www.w3.org/XML/1998/namespace
mslhttps://measurement.govt.nz/equipment-register
gtchttps://measurement.govt.nz/gtc/xml
vchttp://www.w3.org/2007/XMLSchema-versioning
xsdhttp://www.w3.org/2001/XMLSchema
<xsd:schema version="0.1.0" elementFormDefault="qualified" minVersion="1.0" targetNamespace="https://measurement.govt.nz/equipment-register">
  <xsd:import namespace="https://measurement.govt.nz/gtc/xml" schemaLocation="./external/gtc.xsd"/>
...
</xsd:schema>

register

<msl:register
 team="msl:teamEnumerationString" [1] 
>
  <!--
   Uniqueness Constraint - uniqueID
   Selector - msl:equipment/msl:id
   Field(s) - .
  -->
  Start Sequence [0..*]
    <msl:equipment> msl:equipment </msl:equipment> [1] 
  End Sequence
</msl:register>
<xsd:element name="register">
  <xsd:complexType>
    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="equipment" type="msl:equipment"/>
    </xsd:sequence>
    <xsd:attribute name="team" type="msl:teamEnumerationString" use="required"/>
  </xsd:complexType>
  <xsd:unique name="uniqueID">
    <xsd:selector xpath="msl:equipment/msl:id"/>
    <xsd:field xpath="."/>
  </xsd:unique>
</xsd:element>

alteration

<...
 date="xsd:date" [1] 
 performedBy="msl:nonEmptyString" [1] 
>
   msl:nonEmptyString
</...>
<xsd:complexType name="alteration">
  <xsd:simpleContent>
    <xsd:extension base="msl:nonEmptyString">
      <xsd:attribute name="date" type="xsd:date" use="required"/>
      <xsd:attribute name="performedBy" type="msl:nonEmptyString" use="required"/>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

alterations

<...>
  Start Sequence [0..*]
    <msl:alteration> msl:alteration </msl:alteration> [1] 
  End Sequence
</...>
<xsd:complexType name="alterations">
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:element name="alteration" type="msl:alteration"/>
  </xsd:sequence>
</xsd:complexType>

any

<...
 Allow any attributes from any namespace (lax validation).
>
  Start Sequence [0..*]
    Allow any elements from any namespace (lax validation). [1]
  End Sequence
</...>
<xsd:complexType name="any">
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:any processContents="lax"/>
  </xsd:sequence>
  <xsd:anyAttribute processContents="lax"/>
</xsd:complexType>

calibrations

<...>
  Start Sequence [0..*]
    <msl:measurand> msl:measurand 
      <!--
       Uniqueness Constraint - uniqueComponentName
       Selector - msl:component
       Field(s) - @name
      -->
    </msl:measurand> [1] 
  End Sequence
</...>
<xsd:complexType name="calibrations">
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:element name="measurand" type="msl:measurand">
      <xsd:unique name="uniqueComponentName">
        <xsd:selector xpath="msl:component"/>
        <xsd:field xpath="@name"/>
      </xsd:unique>
    </xsd:element>
  </xsd:sequence>
</xsd:complexType>

comment

<...
 date="xsd:date" [1] 
>
   msl:nonEmptyString
</...>
<xsd:complexType name="comment">
  <xsd:simpleContent>
    <xsd:extension base="msl:nonEmptyString">
      <xsd:attribute name="date" type="xsd:date" use="required"/>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

competency

<...>
  <msl:worker> msl:nonEmptyString </msl:worker> [1] 
  <msl:checker> msl:nonEmptyString </msl:checker> [1] 
  <msl:technicalProcedure> msl:technicalProcedurePatternString </msl:technicalProcedure> [1] 
</...>
<xsd:complexType name="competency">
  <xsd:sequence>
    <xsd:element name="worker" type="msl:nonEmptyString"/>
    <xsd:element name="checker" type="msl:nonEmptyString"/>
    <xsd:element name="technicalProcedure" type="msl:technicalProcedurePatternString"/>
  </xsd:sequence>
</xsd:complexType>

completedTask

<...
 dueDate="xsd:date" [1] 
 completedDate="xsd:date" [1] 
 performedBy="msl:nonEmptyString" [1] 
>
   msl:nonEmptyString
</...>
<xsd:complexType name="completedTask">
  <xsd:simpleContent>
    <xsd:extension base="msl:nonEmptyString">
      <xsd:attribute name="dueDate" type="xsd:date" use="required"/>
      <xsd:attribute name="completedDate" type="xsd:date" use="required"/>
      <xsd:attribute name="performedBy" type="msl:nonEmptyString" use="required"/>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

component

<...
 name="xsd:string" [1] 
>
  Start Sequence [0..*]
    Start Choice [1]
      <msl:adjustment> msl:comment </msl:adjustment> [1] 
      <msl:digitalReport> msl:digitalReport </msl:digitalReport> [1] 
      <msl:performanceCheck> msl:performanceCheck </msl:performanceCheck> [1] 
      <msl:report> msl:report </msl:report> [1] 
    End Choice
  End Sequence
</...>
<xsd:complexType name="component">
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:choice>
      <xsd:element name="adjustment" type="msl:comment"/>
      <xsd:element name="digitalReport" type="msl:digitalReport"/>
      <xsd:element name="performanceCheck" type="msl:performanceCheck"/>
      <xsd:element name="report" type="msl:report"/>
    </xsd:choice>
  </xsd:sequence>
  <xsd:attribute name="name" type="xsd:string" use="required"/>
</xsd:complexType>

digitalReport

<...
 comment="xsd:string" [0..1] 
 format="msl:digitalFormatEnumerationString" [1] 
 id="msl:nonEmptyString" [1] 
>
  <msl:url
   Allow any attributes from any namespace (skip validation).
  > [1]  
     msl:nonEmptyString
  </msl:url>
  <msl:sha256> xsd:string (pattern = [a-fA-F0-9]{64}) </msl:sha256> [1] 
</...>
<xsd:complexType name="digitalReport">
  <xsd:complexContent>
    <xsd:extension base="msl:file">
      <xsd:attribute name="format" type="msl:digitalFormatEnumerationString" use="required"/>
      <xsd:attribute name="id" type="msl:nonEmptyString" use="required"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

equation

<...
 comment="xsd:string" [0..1] 
>
  <msl:value
   variables="msl:variables" [1] 
  > [1]  
     msl:nonEmptyString
  </msl:value>
  <msl:uncertainty
   variables="msl:variables" [1] 
  > [1]  
     msl:nonEmptyString
  </msl:uncertainty>
  <msl:unit> msl:nonEmptyString </msl:unit> [1] 
  <msl:ranges> msl:ranges </msl:ranges> [1] 
  <msl:degreeFreedom> xsd:double (1 <= value <= INF) </msl:degreeFreedom> [0..1] 
</...>
<xsd:complexType name="equation">
  <xsd:sequence>
    <xsd:element name="value">
      <xsd:complexType>
        <xsd:simpleContent>
          <xsd:extension base="msl:nonEmptyString">
            <xsd:attribute name="variables" type="msl:variables" use="required"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
    </xsd:element>
    <xsd:element name="uncertainty">
      <xsd:complexType>
        <xsd:simpleContent>
          <xsd:extension base="msl:nonEmptyString">
            <xsd:attribute name="variables" type="msl:variables" use="required"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
    </xsd:element>
    <xsd:element name="unit" type="msl:nonEmptyString"/>
    <xsd:element name="ranges" type="msl:ranges"/>
    <xsd:element name="degreeFreedom" minOccurs="0">
      <xsd:simpleType>
        <xsd:restriction base="xsd:double">
          <xsd:minInclusive value="1"/>
          <xsd:maxInclusive value="INF"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
  </xsd:sequence>
  <xsd:attribute name="comment" type="xsd:string"/>
</xsd:complexType>

equipment

<...
 alias="xsd:string" [0..1] 
 keywords="msl:keywordsList" [0..1] 
>
  <msl:id> msl:idPatternString </msl:id> [1] 
  <msl:manufacturer> msl:tokenizedString </msl:manufacturer> [1] 
  <msl:model> msl:tokenizedString </msl:model> [1] 
  <msl:serial> msl:tokenizedString </msl:serial> [1] 
  <msl:description> msl:tokenizedString </msl:description> [1] 
  <msl:specifications> msl:any </msl:specifications> [1] 
  <msl:location> msl:labEnumerationString </msl:location> [1] 
  <msl:status> msl:statusEnumerationString </msl:status> [1] 
  <msl:loggable> xsd:boolean </msl:loggable> [1] 
  <msl:traceable> xsd:boolean </msl:traceable> [1] 
  <msl:calibrations> msl:calibrations 
    <!--
     Uniqueness Constraint - uniqueMeasurandQuantity
     Selector - msl:measurand
     Field(s) - @quantity
    -->
  </msl:calibrations> [1] 
  <msl:maintenance> msl:maintenance </msl:maintenance> [1] 
  <msl:alterations> msl:alterations </msl:alterations> [1] 
  <msl:firmware> msl:firmware </msl:firmware> [1] 
  <msl:specifiedRequirements> msl:any </msl:specifiedRequirements> [1] 
  <msl:referenceMaterials> msl:any </msl:referenceMaterials> [1] 
  <msl:qualityManual> msl:qualityManual </msl:qualityManual> [1] 
</...>
<xsd:complexType name="equipment">
  <xsd:sequence>
    <xsd:element name="id" type="msl:idPatternString"/>
    <xsd:element name="manufacturer" type="msl:tokenizedString"/>
    <xsd:element name="model" type="msl:tokenizedString"/>
    <xsd:element name="serial" type="msl:tokenizedString"/>
    <xsd:element name="description" type="msl:tokenizedString"/>
    <xsd:element name="specifications" type="msl:any"/>
    <xsd:element name="location" type="msl:labEnumerationString"/>
    <xsd:element name="status" type="msl:statusEnumerationString"/>
    <xsd:element name="loggable" type="xsd:boolean" default="false"/>
    <xsd:element name="traceable" type="xsd:boolean"/>
    <xsd:element name="calibrations" type="msl:calibrations">
      <xsd:unique name="uniqueMeasurandQuantity">
        <xsd:selector xpath="msl:measurand"/>
        <xsd:field xpath="@quantity"/>
      </xsd:unique>
    </xsd:element>
    <xsd:element name="maintenance" type="msl:maintenance"/>
    <xsd:element name="alterations" type="msl:alterations"/>
    <xsd:element name="firmware" type="msl:firmware"/>
    <xsd:element name="specifiedRequirements" type="msl:any"/>
    <xsd:element name="referenceMaterials" type="msl:any"/>
    <xsd:element name="qualityManual" type="msl:qualityManual"/>
  </xsd:sequence>
  <xsd:attribute name="alias" type="xsd:string"/>
  <xsd:attribute name="keywords" type="msl:keywordsList"/>
</xsd:complexType>

file

<...
 comment="xsd:string" [0..1] 
>
  <msl:url
   Allow any attributes from any namespace (skip validation).
  > [1]  
     msl:nonEmptyString
  </msl:url>
  <msl:sha256> xsd:string (pattern = [a-fA-F0-9]{64}) </msl:sha256> [1] 
</...>
<xsd:complexType name="file">
  <xsd:sequence>
    <xsd:element name="url">
      <xsd:complexType>
        <xsd:simpleContent>
          <xsd:extension base="msl:nonEmptyString">
            <xsd:anyAttribute processContents="skip"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
    </xsd:element>
    <xsd:element name="sha256">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:pattern value="[a-fA-F0-9]{64}"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
  </xsd:sequence>
  <xsd:attribute name="comment" type="xsd:string"/>
</xsd:complexType>

financial

<...>
Start All [1]
    <msl:assetNumber> xsd:string </msl:assetNumber> [0..1] 
    <msl:warrantyExpirationDate> xsd:date </msl:warrantyExpirationDate> [0..1] 
    <msl:yearPurchased> xsd:gYear </msl:yearPurchased> [0..1] 
End All
</...>
<xsd:complexType name="financial">
  <xsd:all>
    <xsd:element name="assetNumber" type="xsd:string" minOccurs="0"/>
    <xsd:element name="warrantyExpirationDate" type="xsd:date" minOccurs="0"/>
    <xsd:element name="yearPurchased" type="xsd:gYear" minOccurs="0"/>
  </xsd:all>
</xsd:complexType>

firmware

<...>
  Start Sequence [0..*]
    <msl:version> msl:comment </msl:version> [1] 
  End Sequence
</...>
<xsd:complexType name="firmware">
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:element name="version" type="msl:comment"/>
  </xsd:sequence>
</xsd:complexType>

maintenance

<...>
  Start Sequence [0..1]
    <msl:planned    > [1]  
      Start Sequence [0..*]
        <msl:task> msl:plannedTask </msl:task> [1] 
      End Sequence
    </msl:planned>
    <msl:completed    > [1]  
      Start Sequence [0..*]
        <msl:task> msl:completedTask </msl:task> [1] 
      End Sequence
    </msl:completed>
  End Sequence
</...>
<xsd:complexType name="maintenance">
  <xsd:sequence minOccurs="0">
    <xsd:element name="planned">
      <xsd:complexType>
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
          <xsd:element name="task" type="msl:plannedTask"/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
    <xsd:element name="completed">
      <xsd:complexType>
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
          <xsd:element name="task" type="msl:completedTask"/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
  </xsd:sequence>
</xsd:complexType>

measurand

<...
 quantity="msl:quantityEnumerationString" [1] 
 calibrationInterval="msl:nonNegativeDecimal" [1] 
>
  Start Sequence [0..*]
    <msl:component> msl:component </msl:component> [1] 
  End Sequence
</...>
<xsd:complexType name="measurand">
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:element name="component" type="msl:component"/>
  </xsd:sequence>
  <xsd:attribute name="quantity" type="msl:quantityEnumerationString" use="required"/>
  <xsd:attribute name="calibrationInterval" type="msl:nonNegativeDecimal" use="required"/>
</xsd:complexType>

performanceCheck

<...
 completedDate="xsd:date" [1] 
>
  <msl:competency> msl:competency </msl:competency> [1] 
  <msl:conditions> msl:any </msl:conditions> [1] 
  Start Choice [1..*]
    <msl:equation> msl:equation </msl:equation> [1] 
    <msl:file> msl:file </msl:file> [1] 
    <msl:serialised> msl:serialised </msl:serialised> [1] 
    <msl:table> msl:table </msl:table> [1] 
  End Choice
</...>
<xsd:complexType name="performanceCheck">
  <xsd:sequence>
    <xsd:element name="competency" type="msl:competency"/>
    <xsd:element name="conditions" type="msl:any"/>
    <xsd:choice maxOccurs="unbounded">
      <xsd:element name="equation" type="msl:equation"/>
      <xsd:element name="file" type="msl:file"/>
      <xsd:element name="serialised" type="msl:serialised"/>
      <xsd:element name="table" type="msl:table"/>
    </xsd:choice>
  </xsd:sequence>
  <xsd:attribute name="completedDate" type="xsd:date" use="required"/>
</xsd:complexType>

plannedTask

<...
 dueDate="xsd:date" [1] 
 performedBy="xsd:string" [0..1] 
>
   msl:nonEmptyString
</...>
<xsd:complexType name="plannedTask">
  <xsd:simpleContent>
    <xsd:extension base="msl:nonEmptyString">
      <xsd:attribute name="dueDate" type="xsd:date" use="required"/>
      <xsd:attribute name="performedBy" type="xsd:string"/>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

qualityManual

<...>
Start All [0..1]
    <msl:accessories> msl:any </msl:accessories> [0..1] 
    <msl:documentation> xsd:string </msl:documentation> [0..1] 
    <msl:financial> msl:financial </msl:financial> [0..1] 
    <msl:personnelRestrictions> xsd:string </msl:personnelRestrictions> [0..1] 
    <msl:serviceAgent> xsd:string </msl:serviceAgent> [0..1] 
    <msl:technicalProcedures> msl:technicalProcedures </msl:technicalProcedures> [0..1] 
End All
</...>
<xsd:complexType name="qualityManual">
  <xsd:all minOccurs="0">
    <xsd:element name="accessories" type="msl:any" minOccurs="0"/>
    <xsd:element name="documentation" type="xsd:string" minOccurs="0"/>
    <xsd:element name="financial" type="msl:financial" minOccurs="0"/>
    <xsd:element name="personnelRestrictions" type="xsd:string" minOccurs="0"/>
    <xsd:element name="serviceAgent" type="xsd:string" minOccurs="0"/>
    <xsd:element name="technicalProcedures" type="msl:technicalProcedures" minOccurs="0"/>
  </xsd:all>
</xsd:complexType>

ranges

<...>
  Start Sequence [0..*]
    <msl:range
     variable="msl:nonEmptyString" [1] 
    > [1]  
      <msl:minimum> xsd:double </msl:minimum> [1] 
      <msl:maximum> xsd:double </msl:maximum> [1] 
    </msl:range>
  End Sequence
</...>
<xsd:complexType name="ranges">
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:element name="range">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element name="minimum" type="xsd:double"/>
          <xsd:element name="maximum" type="xsd:double"/>
        </xsd:sequence>
        <xsd:attribute name="variable" type="msl:nonEmptyString" use="required"/>
      </xsd:complexType>
    </xsd:element>
  </xsd:sequence>
</xsd:complexType>

report

<...
 id="msl:nonEmptyString" [1] 
>
  <msl:reportIssueDate> xsd:date </msl:reportIssueDate> [1] 
  <msl:measurementStartDate> xsd:date </msl:measurementStartDate> [1] 
  <msl:measurementStopDate> xsd:date </msl:measurementStopDate> [1] 
  <msl:issuingLaboratory
   person="msl:nonEmptyString" [0..1] 
  > [1]  
     msl:nonEmptyString
  </msl:issuingLaboratory>
  <msl:technicalProcedure> xsd:string </msl:technicalProcedure> [1] 
  <msl:conditions> msl:any </msl:conditions> [1] 
  <msl:acceptanceCriteria> msl:any </msl:acceptanceCriteria> [1] 
  Start Choice [1..*]
    <msl:equation> msl:equation </msl:equation> [1] 
    <msl:file> msl:file </msl:file> [1] 
    <msl:serialised> msl:serialised </msl:serialised> [1] 
    <msl:table> msl:table </msl:table> [1] 
  End Choice
</...>
<xsd:complexType name="report">
  <xsd:sequence>
    <xsd:element name="reportIssueDate" type="xsd:date"/>
    <xsd:element name="measurementStartDate" type="xsd:date"/>
    <xsd:element name="measurementStopDate" type="xsd:date"/>
    <xsd:element name="issuingLaboratory">
      <xsd:complexType>
        <xsd:simpleContent>
          <xsd:extension base="msl:nonEmptyString">
            <xsd:attribute name="person" type="msl:nonEmptyString"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
    </xsd:element>
    <xsd:element name="technicalProcedure" type="xsd:string"/>
    <xsd:element name="conditions" type="msl:any"/>
    <xsd:element name="acceptanceCriteria" type="msl:any"/>
    <xsd:choice maxOccurs="unbounded">
      <xsd:element name="equation" type="msl:equation"/>
      <xsd:element name="file" type="msl:file"/>
      <xsd:element name="serialised" type="msl:serialised"/>
      <xsd:element name="table" type="msl:table"/>
    </xsd:choice>
  </xsd:sequence>
  <xsd:attribute name="id" type="msl:nonEmptyString" use="required"/>
</xsd:complexType>

serialised

<...
 comment="xsd:string" [0..1] 
>
  Start Choice [1]
    <gtc:gtcArchive> ... </gtc:gtcArchive> [1] 
    <msl:gtcArchiveJSON
     Allow any attributes from any namespace (skip validation).
    > [1]  
       xsd:string
    </msl:gtcArchiveJSON>
  End Choice
</...>
<xsd:complexType name="serialised">
  <xsd:choice>
    <xsd:element ref="gtc:gtcArchive"/>
    <xsd:element name="gtcArchiveJSON">
      <xsd:complexType>
        <xsd:simpleContent>
          <xsd:extension base="xsd:string">
            <xsd:anyAttribute processContents="skip"/>
          </xsd:extension>
        </xsd:simpleContent>
      </xsd:complexType>
    </xsd:element>
  </xsd:choice>
  <xsd:attribute name="comment" type="xsd:string"/>
</xsd:complexType>

table

<...
 comment="xsd:string" [0..1] 
>
  <msl:type> xsd:string (pattern = \s*(bool|int|double|string)\s*(,\s*(bool|int|double|string)\s*)*) </msl:type> [1] 
  <msl:unit> xsd:string </msl:unit> [1] 
  <msl:header> xsd:string (pattern = [^,]+(,[^,]+)*) </msl:header> [1] 
  <msl:data> xsd:string (pattern = [^,]+(,[^,\n][^,]*)*) </msl:data> [1] 
</...>
<xsd:complexType name="table">
  <xsd:sequence>
    <xsd:element name="type">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:pattern value="\s*(bool|int|double|string)\s*(,\s*(bool|int|double|string)\s*)*"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
    <xsd:element name="unit" type="xsd:string"/>
    <xsd:element name="header">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:pattern value="[^,]+(,[^,]+)*"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
    <xsd:element name="data">
      <xsd:simpleType>
        <xsd:restriction base="xsd:string">
          <xsd:pattern value="[^,]+(,[^,\n][^,]*)*"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:element>
  </xsd:sequence>
  <xsd:attribute name="comment" type="xsd:string"/>
</xsd:complexType>

technicalProcedures

<...>
  Start Sequence [0..*]
    <msl:id> msl:technicalProcedurePatternString </msl:id> [1] 
  End Sequence
</...>
<xsd:complexType name="technicalProcedures">
  <xsd:sequence minOccurs="0" maxOccurs="unbounded">
    <xsd:element name="id" type="msl:technicalProcedurePatternString"/>
  </xsd:sequence>
</xsd:complexType>

digitalFormatEnumerationString

NamedigitalFormatEnumerationString
Content
  • Base XSD Type: string
  • value may be one of
    • MSL PDF/A-3
    • PTB DCC
<xsd:simpleType name="digitalFormatEnumerationString">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="MSL PDF/A-3"/>
    <xsd:enumeration value="PTB DCC"/>
  </xsd:restriction>
</xsd:simpleType>

idPatternString

NameidPatternString
Content
  • Base XSD Type: string
  • pattern = MSLE\.[EFHLMOPT]\.[A-Z0-9]+
<xsd:simpleType name="idPatternString">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="MSLE\.[EFHLMOPT]\.[A-Z0-9]+"/>
  </xsd:restriction>
</xsd:simpleType>

keywordsList

NamekeywordsList
Content
  • List of:
    • Locally defined type:
      • Base XSD Type: string
      • value may be one of
        • AC
        • Balance
        • Barometer
        • Current
        • DAQ
        • DC
        • DMM
        • GaugeBlock
        • Hygrometer
        • Laser
        • Monochromator
        • Oscilloscope
        • PRT
        • Radiation
        • ResistanceBridge
        • Sense
        • Source
        • SPRT
        • Thermocouple
        • Thermometer
        • Voltage
        • Weight
        • WeightSet
<xsd:simpleType name="keywordsList">
  <xsd:list>
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:enumeration value="AC"/>
        <xsd:enumeration value="Balance"/>
        <xsd:enumeration value="Barometer"/>
        <xsd:enumeration value="Current"/>
        <xsd:enumeration value="DAQ"/>
        <xsd:enumeration value="DC"/>
        <xsd:enumeration value="DMM"/>
        <xsd:enumeration value="GaugeBlock"/>
        <xsd:enumeration value="Hygrometer"/>
        <xsd:enumeration value="Laser"/>
        <xsd:enumeration value="Monochromator"/>
        <xsd:enumeration value="Oscilloscope"/>
        <xsd:enumeration value="PRT"/>
        <xsd:enumeration value="Radiation"/>
        <xsd:enumeration value="ResistanceBridge"/>
        <xsd:enumeration value="Sense"/>
        <xsd:enumeration value="Source"/>
        <xsd:enumeration value="SPRT"/>
        <xsd:enumeration value="Thermocouple"/>
        <xsd:enumeration value="Thermometer"/>
        <xsd:enumeration value="Voltage"/>
        <xsd:enumeration value="Weight"/>
        <xsd:enumeration value="WeightSet"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:list>
</xsd:simpleType>

labEnumerationString

NamelabEnumerationString
Content
  • Base XSD Type: string
  • value may be one of
    • CMM Lab
    • Contact thermometry lab
    • Cryogenic Radiometer
    • Detector Responsivity
    • Fixed point lab
    • Flexible Optics
    • Furnace assembly room
    • Goniospectrophotometer
    • Hilger Lab
    • Kibble Balance
    • Laser Lab
    • Long Room
    • Mass Standards Laboratories
    • MI bridge resistance bath
    • MicroK 1 resistance bath
    • MicroK 2 resistance bath
    • Not at MSL
    • Photometric Bench
    • Pressure Standards Laboratories
    • Radiation thermometry calibration lab
    • Radiation thermometry research lab
    • Single Photon
    • Spectrophotometer
    • Thermocouple lab
    • Underground Tape Tunnel
    • Water lab
<xsd:simpleType name="labEnumerationString">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="CMM Lab"/>
    <xsd:enumeration value="Contact thermometry lab"/>
    <xsd:enumeration value="Cryogenic Radiometer"/>
    <xsd:enumeration value="Detector Responsivity"/>
    <xsd:enumeration value="Fixed point lab"/>
    <xsd:enumeration value="Flexible Optics"/>
    <xsd:enumeration value="Furnace assembly room"/>
    <xsd:enumeration value="Goniospectrophotometer"/>
    <xsd:enumeration value="Hilger Lab"/>
    <xsd:enumeration value="Kibble Balance"/>
    <xsd:enumeration value="Laser Lab"/>
    <xsd:enumeration value="Long Room"/>
    <xsd:enumeration value="Mass Standards Laboratories"/>
    <xsd:enumeration value="MI bridge resistance bath"/>
    <xsd:enumeration value="MicroK 1 resistance bath"/>
    <xsd:enumeration value="MicroK 2 resistance bath"/>
    <xsd:enumeration value="Not at MSL"/>
    <xsd:enumeration value="Photometric Bench"/>
    <xsd:enumeration value="Pressure Standards Laboratories"/>
    <xsd:enumeration value="Radiation thermometry calibration lab"/>
    <xsd:enumeration value="Radiation thermometry research lab"/>
    <xsd:enumeration value="Single Photon"/>
    <xsd:enumeration value="Spectrophotometer"/>
    <xsd:enumeration value="Thermocouple lab"/>
    <xsd:enumeration value="Underground Tape Tunnel"/>
    <xsd:enumeration value="Water lab"/>
  </xsd:restriction>
</xsd:simpleType>

nonEmptyString

NamenonEmptyString
Content
  • Base XSD Type: string
  • pattern = .*\S.*
<xsd:simpleType name="nonEmptyString">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value=".*\S.*"/>
  </xsd:restriction>
</xsd:simpleType>

nonNegativeDecimal

NamenonNegativeDecimal
Content
  • Base XSD Type: decimal
  • value >= 0
<xsd:simpleType name="nonNegativeDecimal">
  <xsd:restriction base="xsd:decimal">
    <xsd:minInclusive value="0"/>
  </xsd:restriction>
</xsd:simpleType>

quantityEnumerationString

NamequantityEnumerationString
Content
  • Base XSD Type: string
  • value may be one of
    • Angle
    • Angularity
    • BRDF
    • BTDF
    • Colour
    • Current AC
    • Current DC
    • Cylindricity
    • Deviation in Length
    • Flatness
    • Frequency
    • Gloss
    • Haze
    • Humidity
    • Illuminance
    • Illuminance Responsivity
    • Length
    • Luminance
    • Luminance Responsivity
    • Luminous Intensity
    • Mass
    • Parallelism
    • Perpendicularity
    • Pressure
    • Reflectance
    • Resistance AC
    • Resistance DC
    • Roundness
    • Runout
    • Spectral Irradiance
    • Spectral Irradiance Responsivity
    • Sphericity
    • Straightness
    • Temperature
    • Total Runout
    • Transmittance
    • Variation in Length
    • Voltage AC
    • Voltage DC
    • Wavelength
<xsd:simpleType name="quantityEnumerationString">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="Angle"/>
    <xsd:enumeration value="Angularity"/>
    <xsd:enumeration value="BRDF"/>
    <xsd:enumeration value="BTDF"/>
    <xsd:enumeration value="Colour"/>
    <xsd:enumeration value="Current AC"/>
    <xsd:enumeration value="Current DC"/>
    <xsd:enumeration value="Cylindricity"/>
    <xsd:enumeration value="Deviation in Length"/>
    <xsd:enumeration value="Flatness"/>
    <xsd:enumeration value="Frequency"/>
    <xsd:enumeration value="Gloss"/>
    <xsd:enumeration value="Haze"/>
    <xsd:enumeration value="Humidity"/>
    <xsd:enumeration value="Illuminance"/>
    <xsd:enumeration value="Illuminance Responsivity"/>
    <xsd:enumeration value="Length"/>
    <xsd:enumeration value="Luminance"/>
    <xsd:enumeration value="Luminance Responsivity"/>
    <xsd:enumeration value="Luminous Intensity"/>
    <xsd:enumeration value="Mass"/>
    <xsd:enumeration value="Parallelism"/>
    <xsd:enumeration value="Perpendicularity"/>
    <xsd:enumeration value="Pressure"/>
    <xsd:enumeration value="Reflectance"/>
    <xsd:enumeration value="Resistance AC"/>
    <xsd:enumeration value="Resistance DC"/>
    <xsd:enumeration value="Roundness"/>
    <xsd:enumeration value="Runout"/>
    <xsd:enumeration value="Spectral Irradiance"/>
    <xsd:enumeration value="Spectral Irradiance Responsivity"/>
    <xsd:enumeration value="Sphericity"/>
    <xsd:enumeration value="Straightness"/>
    <xsd:enumeration value="Temperature"/>
    <xsd:enumeration value="Total Runout"/>
    <xsd:enumeration value="Transmittance"/>
    <xsd:enumeration value="Variation in Length"/>
    <xsd:enumeration value="Voltage AC"/>
    <xsd:enumeration value="Voltage DC"/>
    <xsd:enumeration value="Wavelength"/>
  </xsd:restriction>
</xsd:simpleType>

statusEnumerationString

NamestatusEnumerationString
Content
  • Base XSD Type: string
  • value may be one of
    • Active
    • Damaged
    • Disposed
    • Dormant
    • Lost
    • Retired
<xsd:simpleType name="statusEnumerationString">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="Active"/>
    <xsd:enumeration value="Damaged"/>
    <xsd:enumeration value="Disposed"/>
    <xsd:enumeration value="Dormant"/>
    <xsd:enumeration value="Lost"/>
    <xsd:enumeration value="Retired"/>
  </xsd:restriction>
</xsd:simpleType>

teamEnumerationString

NameteamEnumerationString
Content
  • Base XSD Type: string
  • value may be one of
    • Electrical
    • Humidity
    • Length
    • Light
    • Mass
    • Pressure
    • Temperature
    • Time
<xsd:simpleType name="teamEnumerationString">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="Electrical"/>
    <xsd:enumeration value="Humidity"/>
    <xsd:enumeration value="Length"/>
    <xsd:enumeration value="Light"/>
    <xsd:enumeration value="Mass"/>
    <xsd:enumeration value="Pressure"/>
    <xsd:enumeration value="Temperature"/>
    <xsd:enumeration value="Time"/>
  </xsd:restriction>
</xsd:simpleType>

technicalProcedurePatternString

NametechnicalProcedurePatternString
Content
  • Base XSD Type: string
  • pattern = MSLT\.[EFHLMOPT]\.[0-9]+(\.[0-9]+)?
<xsd:simpleType name="technicalProcedurePatternString">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="MSLT\.[EFHLMOPT]\.[0-9]+(\.[0-9]+)?"/>
  </xsd:restriction>
</xsd:simpleType>

tokenizedString

NametokenizedString
Content
  • Base XSD Type: string
  • pattern = \S(\S*( ?)\S+)*
<xsd:simpleType name="tokenizedString">
  <xsd:restriction base="xsd:string">
    <xsd:pattern value="\S(\S*( ?)\S+)*"/>
  </xsd:restriction>
</xsd:simpleType>

variables

Namevariables
Content
  • List of:
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [a-zA-Z][a-zA-Z0-9_]*
<xsd:simpleType name="variables">
  <xsd:list>
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:pattern value="[a-zA-Z][a-zA-Z0-9_]*"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:list>
</xsd:simpleType>