<xsd:element name="file_item" substitutionGroup="oval-sc:item">
<xsd:annotation>
<xsd:documentation>This element describes file metadata. The time information can be retrieved by the _stst function. Development_class and other version information (company, internal name, language, original_filename, product_name, product_version) can be retrieved using the VerQueryValue function.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="oval-sc:ItemType">
<xsd:sequence>
<xsd:element name="path" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Specifies the absolute path to a file on the machine.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitempath" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:path">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the path entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="filename" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" nillable="true">
<xsd:annotation>
<xsd:documentation>The name of the file. If the nillable attribute is set to true, then the item being represented is the higher directory represented by the path entity. The other items associated with this item would then reflect the values associated with the directory.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemfilename" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:filename">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the filename entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="owner" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>A string that contains the name of the owner.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemowner" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:owner">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the owner entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="size" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Size of the file in bytes.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemsize" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:size">
<sch:assert test="@datatype='int'">item <sch:value-of select="../@id" /> - datatype attribute for the size entity of a file_item should be 'int'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="a_time" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Time of last access of file. Valid on NTFS but not on FAT formatted disk drives. The string should represent the FILETIME structure which is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC).</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitema_time" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:a_time">
<sch:assert test="@datatype='int'">item <sch:value-of select="../@id" /> - datatype attribute for the a_time entity of a file_item should be 'int'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="c_time" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Time of creation of file. Valid on NTFS but not on FAT formatted disk drives. The string should represent the FILETIME structure which is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC).</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemc_time" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:c_time">
<sch:assert test="@datatype='int'">item <sch:value-of select="../@id" /> - datatype attribute for the c_time entity of a file_item should be 'int'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="m_time" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>Time of last modification of file. The string should represent the FILETIME structure which is a 64-bit value representing the number of 100-nanosecond intervals since January 1, 1601 (UTC).</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemm_time" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:m_time">
<sch:assert test="@datatype='int'">item <sch:value-of select="../@id" /> - datatype attribute for the m_time entity of a file_item should be 'int'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="ms_checksum" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>the md5 checksum of the file.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemms_checksum" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:ms_checksum">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the ms_checksum entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="version" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The version of the file.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemversion" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:version">
<sch:assert test="@datatype='version'">item <sch:value-of select="../@id" /> - datatype attribute for the version entity of a file_item should be 'version'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="type" type="win-sc:EntityItemFileTypeType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The type child element marks wether the file item describes a directory, named pipe, standard file, etc. These types are the return values for GetFileType, with the exception of FILE_ATTRIBUTE_DIRECTORY which is obtained by looking at GetFileAttributesEx.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemtype" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:type">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the type entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="development_class" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>The development_class element allows the distinction to be made between the GDR development environment and the QFE development environment. This field holds the text found in front of the mmmmmm-nnnn version, for example srv03_gdr.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemdevelopment_class" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:development_class">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the development_class entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="company" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This entity defines the company name held within the version-information structure.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemcompany" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:company">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the company entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="internal_name" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This entity defines the internal name held within the version-information structure.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileiteminternalname" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:internal_name">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the internal_name entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="language" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This entity defines the language held within the version-information structure.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemlanguage" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:language">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the language entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="original_filename" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This entity defines the original filename held within the version-information structure.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemoriginalfilename" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:original_filename">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the original_filename entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="product_name" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This entity defines the product name held within the version-information structure.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemproductname" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:product_name">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the product_name entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="product_version" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
<xsd:annotation>
<xsd:documentation>This entity defines the product version held within the version-information structure.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="fileitemproductversion" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="win-sc:file_item/win-sc:product_version">
<sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id" /> - datatype attribute for the product_version entity of a file_item should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
|