<xsd:element name="metabase_item" substitutionGroup="oval-sc:item">
<xsd:annotation>
<xsd:documentation>This item gathers information from the specified metabase keys.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="oval-sc:ItemType">
<xsd:sequence>
<xsd:element name="key" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This element describes a metabase key to be gathered.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabaseitemkey" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:metabase_item/win-sc:key">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the key entity of a metabase_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="id" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1" nillable="true">
<xsd:annotation>
<xsd:documentation>The id element specifies a particular object under the metabase key. If the nillable attribute is set to true, then the item being represented is the higher level metabase key. Using xsi:nil here will result in a status of 'does not exist' for the other entities associated with this item since these entities are not associated with a key by itself.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabaseitemid" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:metabase_item/win-sc:id">
<sch:assert test="@datatype='int'">item <sch:value-of select="../@id" /> - datatype attribute for the id entity of a metabase_item should be 'int'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This element describes the name of the specified metabase object.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabaseitemname" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:metabase_item/win-sc:name">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the name entity of a metabase_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="user_type" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<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="metabaseitemuser_type" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:metabase_item/win-sc:user_type">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the user_type entity of a metabase_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="data_type" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<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="metabaseitemdata_type" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:metabase_item/win-sc:data_type">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the data_type entity of a metabase_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="data" type="oval-sc:EntityItemAnyType" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>The actual data of the named item under the specified metabase key. If the specified metabase key is of type multi string, then multiple value elements should exist to describe the array of strings.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="metabaseitemdata" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:metabase_item/win-sc: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>
|