<xsd:element name="metabase_state" substitutionGroup="oval-def:state">
<xsd:annotation>
<xsd:documentation>The metabase_state element defines the different metadata associate with a metabase item. This includes the name, user type, data type, and the actual data. Please refer to the individual elements in the schema for more details about what each represents.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="oval-def:StateType">
<xsd:sequence>
<xsd:element name="key" type="oval-def:EntityStateStringType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The key element specifies a metabase key.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabasestekey" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-def:metabase_state/win-def:key">
<sch:assert test="not(@datatype) or @datatype='string'">
<sch:value-of select="../@id" /> - datatype attribute for the key entity of a metabase_state should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="id" type="oval-def:EntityStateIntType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The id element specifies a particular object under the metabase key.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabasesteid" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-def:metabase_state/win-def:id">
<sch:assert test="@datatype='int'">
<sch:value-of select="../@id" /> - datatype attribute for the id entity of a metabase_state should be 'int'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="oval-def:EntityStateStringType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The name element describes the name of the specified metabase object.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabasestename" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-def:metabase_state/win-def:name">
<sch:assert test="not(@datatype) or @datatype='string'">
<sch:value-of select="../@id" /> - datatype attribute for the name entity of a metabase_state should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="user_type" type="oval-def:EntityStateStringType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The user_type element is a DWORD that specifies the user type of the data. See the METADATA_RECORD structure.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabasesteuser_type" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-def:metabase_state/win-def:user_type">
<sch:assert test="not(@datatype) or @datatype='string'">
<sch:value-of select="../@id" /> - datatype attribute for the user_type entity of a metabase_state should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="data_type" type="oval-def:EntityStateStringType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The data_type element identifies the type of data in the metabase entry. See the METADATA_RECORD structure.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabasestedata_type" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-def:metabase_state/win-def:data_type">
<sch:assert test="not(@datatype) or @datatype='string'">
<sch:value-of select="../@id" /> - datatype attribute for the data_type entity of a metabase_state should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="data" type="oval-def:EntityStateAnyType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>The actual data of the named item under the specified metabase key</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabasestedata" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-def:metabase_state/win-def:data">
<sch:assert test="(@datatype='int' and (floor(.) = number(.))) or not(@datatype='int') or not(node())">
<sch:value-of select="../@id" /> - The datatype has been set to 'int' but the value is not an integer.</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
|