<xsd:element name="sql_object" substitutionGroup="oval-def:object">
<xsd:annotation>
<xsd:documentation>The sql_object element is used by a sql test to define the specific database and query to be evaluated. Connection information is supplied allowing the tool to connect to the desired database and a query is supplied to call out the desired setting. Each object extends the standard ObjectType as definied in the oval-definitions-schema and one should refer to the ObjectType description for more information. The common set element allows complex objects to be created using filters and set logic. Again, please refer to the description of the set element in the oval-definitions-schema.</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="oval-def:ObjectType">
<xsd:sequence>
<xsd:choice>
<xsd:element ref="oval-def:set" minOccurs="0" />
<xsd:sequence minOccurs="0">
<xsd:element name="engine" type="ind-def:EntityObjectEngineType">
<xsd:annotation>
<xsd:documentation>The engine entity defines the specific database engine to use. Any tool looking to collect information about this object will need to know the engine in order to use the appropriate drivers to establish a connection.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="sqlobjdengine" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="ind-def:sql_object/ind-def:engine">
<sch:assert test="not(@datatype) or @datatype='string'">
<sch:value-of select="../@id" /> - datatype attribute for the engine entity of an sql_object should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="version" type="oval-def:EntityObjectStringType">
<xsd:annotation>
<xsd:documentation>The version entity defines the specific version of the database engine to use. This is alos important in determining the correct driver to use for establishing a connection.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="sqlobjversion" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="ind-def:sql_object/ind-def:version">
<sch:assert test="not(@datatype) or @datatype='string'">
<sch:value-of select="../@id" /> - datatype attribute for the version entity of an sql_object should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="connection_string" type="oval-def:EntityObjectStringType">
<xsd:annotation>
<xsd:documentation>The connection_string entity defines specific connection parameters to be used in connecting to the database. This will help a tool connect to the correct database.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="sqlobjconnection_string" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="ind-def:sql_object/ind-def:connection_string">
<sch:assert test="not(@datatype) or @datatype='string'">
<sch:value-of select="../@id" /> - datatype attribute for the connection_string entity of an sql_object should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="sql" type="oval-def:EntityObjectStringType">
<xsd:annotation>
<xsd:documentation>The sql entity defines a query used to identify the object(s) to test against. Any valid SQL query is usable with one exception, at most one field is allowed in the SELECT portion of the query. For example SELECT name FROM ... is valid, as is SELECT 'true' FROM ..., but SELECT name, number FROM ... is not valid. This is because the result element in the data section is only designed to work against a single field.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="sqlobjsql" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="ind-def:sql_object/ind-def:sql">
<sch:assert test="not(@datatype) or @datatype='string'">
<sch:value-of select="../@id" /> - datatype attribute for the sql entity of a sql_object should be 'string'</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
|