<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:oval="http://oval.mitre.org/XMLSchema/oval-common-5" xmlns:oval-def="http://oval.mitre.org/XMLSchema/oval-definitions-5" xmlns:sp-def="http://oval.mitre.org/XMLSchema/oval-definitions-5#sharepoint" xmlns:sch="http://purl.oclc.org/dsdl/schematron" targetNamespace="http://oval.mitre.org/XMLSchema/oval-definitions-5#sharepoint" elementFormDefault="qualified" version="5.6">
      <xsd:import namespace="http://oval.mitre.org/XMLSchema/oval-definitions-5" schemaLocation="oval-definitions-schema.xsd"/>
      <xsd:annotation>
            <xsd:documentation>The following is a description of the elements, types, and attributes that compose the SharePoint specific tests found in Open Vulnerability and Assessment Language (OVAL). Each test is an extension of the standard test element defined in the Core Definition Schema. Through extension, each test inherits a set of elements and attributes that are shared amongst all OVAL tests. Each test is described in detail and should provide the information necessary to understand what each element and attribute represents. This document is intended for developers and assumes some familiarity with XML. A high level description of the interaction between the different tests and their relationship to the Core Definition Schema is not outlined here.</xsd:documentation>
            <xsd:documentation>The SharePoint Component Schema is based on the SharePoint Object Model (Windows SharePoint Services 3.0)</xsd:documentation>
            <xsd:documentation>The OVAL Schema is maintained by The MITRE Corporation and developed by the public OVAL Community. For more information, including how to get involved in the project and how to submit change requests, please visit the OVAL website at http://oval.mitre.org.</xsd:documentation>
            <xsd:appinfo>
                  <schema>SharePoint Definition</schema>
                  <version>5.6</version>
                  <date>9/9/2009 9:44:37 AM</date>
                  <terms_of_use>Copyright (c) 2002-2009, The MITRE Corporation. All rights reserved. The contents of this file are subject to the terms of the OVAL License located at http://oval.mitre.org/oval/about/termsofuse.html. See the OVAL License for the specific language governing permissions and limitations for use of this schema. When distributing copies of the OVAL Schema, this license header must be included.</terms_of_use>
                  <sch:ns prefix="oval-def" uri="http://oval.mitre.org/XMLSchema/oval-definitions-5"/>
                  <sch:ns prefix="sp-def" uri="http://oval.mitre.org/XMLSchema/oval-definitions-5#sharepoint"/>
                  <sch:ns prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance"/>
            </xsd:appinfo>
      </xsd:annotation>
      <!-- =============================================================================== -->
      <!-- ===========================  SPWEBAPPLICATION TEST   ========================== -->
      <!-- =============================================================================== -->
      <xsd:element name="spwebapplication_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spwebapplication test is used to check the properties or permission settings of a SharePoint web application. It extends the standard TestType as defined in the oval-definitions-schema and one should refer to the TestType description for more information. The required object element references a spwebapplication_object and the optional state element specifies the data to check. The evaluation of the test is guided by the check attribute that is inherited from the TestType.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="spwebapptst">
                              <sch:rule context="sp-def:spwebapplication_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spwebapplication_object/@id"><sch:value-of select="../@id"/> - the object child element of a spwebapplication_test must reference an spwebapplication_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:spwebapplication_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spwebapplication_state/@id"><sch:value-of select="../@id"/> - the state child element of a spwebapplication_test must reference an spwebapplication_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spwebapplication_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spwebapplication_object element is used by a spwebapplication test to define the object to be evaluated. 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:documentation>An spwebapplication object consists of a webapplicationurl used to define a specific web application. See the defintion of the SPWebApplication class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="webapplicationurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The webapplicationurl element defines the SPWebApplication to evaluate specific security settings or permissions.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spwebappobjwebapplicationurl">
                                                                        <sch:rule context="sp-def:spwebapplication_object/sp-def:webapplicationurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the webapplicationurl entity of a spwebapplication_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>
      <xsd:element name="spwebapplication_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The spwebapplication_state element defines security settings and permissions that can be checked for a specified SPWebApplications.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="webapplicationurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The webapplicationurl element identifies a Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstewebapplicationurl">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:webapplicationurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the webapplicationurl entity of a spwebapplication_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="allowparttopartcommunication" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the allowparttopartcommunication is enabled it allows users to create connections between Web parts.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteallowparttopartcommunication">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:allowparttopartcommunication">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the allowparttopartcommunication entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="allowaccesstowebpartcatalog" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the allowaccesstowebpartcatalog is enabled it allows users access to the online Web part gallery.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteallowaccesstowebpartcatalog">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:allowaccesstowebpartcatalog">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the allowaccesstowebpartcatalog entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="blockedfileextention" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The blockedfileextention element identifies one or more file extensions that should be blocked from the deployment.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteblockedfileextention">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:blockedfileextention">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the blockedfileextention entity of a spwebapplication_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="defaultquotatemplate" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The defaultquotatemplate element identifies the default quota template set for the web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstedefaultquotatemplate">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:defaultquotatemplate">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the defaultquotatemplate entity of a spwebapplication_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="externalworkflowparticipantsenabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the externalworkflowparticipantsenabled is enabled then users are allowed to participate in workflows.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteexternalworkflowparticipantsenabled">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:externalworkflowparticipantsenabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the externalworkflowparticipantsenabled entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="recyclebinenabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the recyclebinenabled is enabled it will be easy to restore deleted files.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsterecyclebinenabled">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:recyclebinenabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the recyclebinenabled entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="automaticallydeleteunusedsitecollections" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the automaticallydeleteunusedsitecollections is disabled, sites will not be automatically deleted.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteautomaticallydeleteunusedsitecollections">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:automaticallydeleteunusedsitecollections">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the automaticallydeleteunusedsitecollections entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="selfservicesitecreationenabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the selfservicesitecreationenabled is enabled users will be allowed to create and manager their own top-level Web sites .</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteselfservicesitecreationenabled">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:selfservicesitecreationenabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the selfservicesitecreationenabled entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="secondstagerecyclebinquota" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The secondstagerecyclebinquota is the quota for the second stage recyle bin</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstesecondstagerecyclebinquota">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:secondstagerecyclebinquota">
                                                                  <sch:assert test="@datatype='int'"><sch:value-of select="../@id"/> - datatype attribute for the secondstagerecyclebinquota entity of a spwebapplication_state should be 'int'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="recyclebinretentionperiod" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The recyclebinretentionperiod is the retention period for the recyle bin</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsterecyclebinretentionperiod">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:recyclebinretentionperiod">
                                                                  <sch:assert test="@datatype='int'"><sch:value-of select="../@id"/> - datatype attribute for the recyclebinretentionperiod entity of a spwebapplication_state should be 'int'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="outboundmailserverinstance" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The outboundmailserverinstance element identifies the name of the SMPT server.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteoutboundmailserverinstance">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:outboundmailserverinstance">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the outboundmailserverinstance entity of a spwebapplication_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="outboundmailsenderaddress" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The outboundmailsenderaddress element identifies the address that the mail is being send from.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteoutboundmailsenderaddress">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:outboundmailsenderaddress">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for theoutboundmailsenderaddress entity of a spwebapplication_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="outboundmailreplytoaddress" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The outboundmailreplytoaddress element identifies the address that the mail should be replied to.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteoutboundmailreplytoaddress">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:outboundmailreplytoaddress">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the outboundmailreplytoaddress entity of a spwebapplication_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="secvalexpires" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the secvalexpires is enabled then the form will expire after the security validation time (timeout) .</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstesecvalexpires">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:secvalexpires">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the secvalexpires entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="timeout" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The timeout is the amount of time before security validation expires.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <valid_datatypes>integer</valid_datatypes>
                                                      <valid_operators>equals, not equal, greater than, less than, greater than or equal, less than or equal</valid_operators>
                                                      <sch:pattern id="spwebappstetimeout">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:timout">
                                                                  <sch:assert test="@datatype='int'"><sch:value-of select="../@id"/> - datatype attribute for the timeout entity of a spwebapplication_state should be 'int'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="isadministrationwebapplication" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If this is true, the web application to which this test refers is the Central Administration web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebsteisadministrationwebapplication">
                                                            <sch:rule context="sp-def:spwebapplication_item/sp-def:isadministrationwebapplication">
                                                                  <sch:assert test="@datatype='boolean'">item <sch:value-of select="../@id"/> - datatype attribute for the isadministrationwebapplication entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="applicationpoolname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The applicationpoolname element identifies the web applications application pool name.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteapplicationpoolname">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:applicationpoolname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the applicationpoolname entity of a spwebapplication_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="applicationpoolusername" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The applicationpoolusername element identifies the web applications application pool username.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteapplicationpoolusername">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:applicationpoolusername">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the applicationpoolusername entity of a spwebapplication_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="openitems" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the openitems is enabled the permission to view the source of documents with server-side file handlers is available to use for this web application..</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteopenitems">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:openitems">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the openitems entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="addlistitems" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the addlistitems is enabled the permission to add items to lists, add documents to document libraries, and add Web discussion comments is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteaddlistitems">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:addlistitems">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the addlistitems entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="approveitems" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If approveitems is enabled the permission to approve a minor version of a list item or document is available to use for this the Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteapproveitems">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:approveitems">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the approveitems entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="deletelistitems" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="unbounded">
                                          <xsd:annotation>
                                                <xsd:documentation>If the deletelistitems is enabled the permission to delete items from a list, documents from a document library, and Web discussion comments in documents is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstedeletelistitems">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:deletelistitems">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the deletelistitems entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="deleteversions" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="unbounded">
                                          <xsd:annotation>
                                                <xsd:documentation>If the deleteversions is enabled the permission to delete past versions of a list item or document is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstedeleteversions">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:deleteversions">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the deleteversions entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="editlistitems" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="unbounded">
                                          <xsd:annotation>
                                                <xsd:documentation>If the editlistitems is enabled the permission to edit items in lists, edit documents in document libraries, edit Web discussion comments in documents, and customize Web Part Pages in document libraries is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteeditlistitems">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:editlistitems">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the editlistitems entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="managelists" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the managelists is enabled the permission to create and delete lists, add or remove columns in a list, and add or remove public views of a list is available to use for this the Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstemanagelists">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:managelists">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the managelists entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="viewversions" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the viewversions is enabled the permission to view past versions of a list item or document is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteviewversions">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:viewversions">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the viewversions entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="viewlistitems" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the viewlistitems is enabled the permission to view items in lists, documents in document libraries, and view Web discussion commentsis available is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteviewlistitems">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:viewlistitems">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the viewlistitems entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="cancelcheckout" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the cancelcheckout is enabled the permission to discard or check in a document which is checked out to another user is available to use for this the Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstecancelcheckout">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:cancelcheckout">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the cancelcheckout entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="createalerts" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the createalerts is enabled the permission to Create e-mail alerts is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstecreatealerts">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:createalerts">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the createalerts entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="viewformpages" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the viewformpages is enabled the permission to view forms, views, and application pages, and enumerate lists is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteviewformpagess">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:viewformpages">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the viewformpages entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="viewpages" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the viewpages is enabled the permission to view pages in a Web site is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteviewpages">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:viewpages">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the viewpages entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="addandcustomizepages" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If addandcustomizepages is enabled the permission to add, change, or delete HTML pages or Web Part Pages, and edit the Web site using a Windows SharePoint Services–compatible editor is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteaddandcustomizepages">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:addandcustomizepages">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the addandcustomizepages entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="applystylesheets" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the applystylesheets is enabled the permission to Apply a style sheet (.css file) to the Web site is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteapplystylesheets">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:applystylesheets">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the applystylesheets entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="applythemeandborder" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the applythemeanborder is enabled the permission to apply a theme or borders to the entire Web site is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteapplythemeandborder">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:applythemeandborder">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the applythemeandborder entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="browsedirectories" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the browsedirectories is enabled the permission to enumerate files and folders in a Web site using Microsoft Office SharePoint Designer 2007 and WebDAV interfaces is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstebrowsedirectories">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:browsedirectories">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the browsedirectories entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="browseuserinfo" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the browseuserinfo is enabled the permission to view information about users of the Web site is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstebrowseuserinfo">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:browseuserinfo">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the browseuserinfo entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="creategroups" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the creategroups is enabled the permission to create a group of users that can be used anywhere within the site collection is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstecreategroups">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:creategroups">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the creategroups entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="createsscsite" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the createsscsite is enabled the permission to create a Web site using Self-Service Site Creation is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstecreatesscsite">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:createsscsite">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the createsscsite entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="editmyuserinfo" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the editmyuserinfo is enabled the permission to allows a user to change his or her user information, such as adding a picture is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteeditmyuserinfo">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:editmyuserinfo">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the editmyuserinfo entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="enumeratepermissions" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If enumeratepermissions is enabled the permission to enumerate permissions on the Web site, list, folder, document, or list itemis is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteenumeratepermissions">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:enumeratepermissions">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the enumeratepermissions entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="managealerts" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the managealerts is enabled the permission to manage alerts for all users of the Web site is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstemanagealerts">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:managealerts">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the managealerts entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="managepermissions" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the managepermissions is enabled the permission to create and change permission levels on the Web site and assign permissions to users and groups is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstemanagepermissions">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:managepermissions">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the managepermissions entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="managesubwebs" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the managesubwebs is enabled the permission to create subsites such as team sites, Meeting Workspace sites, and Document Workspace sites is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstemanagesubwebs">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:managesubwebs">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the managesubwebs entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="manageweb" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the manageweb is enabled the permission to perform all administration tasks for the Web site as well as manage content is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstemanageweb">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:manageweb">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the manageweb entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="open" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="unbounded">
                                          <xsd:annotation>
                                                <xsd:documentation>If open is enabled the permission to allow users to open a Web site, list, or folder to access items inside that containeris available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteopens">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:open">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the open entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="useclientintegration" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the useclientintegration is enabled the permission to use features that launch client applications; otherwise, users must work on documents locally and upload changesis is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteuseclientintegration">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:useclientintegration">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the useclientintegration entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="useremoteapis" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="unbounded">
                                          <xsd:annotation>
                                                <xsd:documentation>If the useremoteapis is enabled the permission to use SOAP, WebDAV, or Microsoft Office SharePoint Designer 2007 interfaces to access the Web siteis available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteuseremoteapis">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:useremoteapis">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the useremoteapis entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="viewusagedata" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the viewusagedata is enabled the permission to view reports on Web site usage in documents is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteviewusagedata">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:viewusagedata">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the viewusagedata entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="managepersonalviews" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the managepersonalviews is enabled the permission to Create, change, and delete personal views of lists is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappstemanagepersonalviews">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:managepersonalviews">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the managepersonalviews entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="adddelprivatewebparts" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the adddelprivatewebparts is enabled the permission to add or remove personal Web Parts on a Web Part Page is available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteadddelprivatewebparts">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:adddelprivatewebparts">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the adddelprivatewebparts entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="updatepersonalwebparts" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the updatepersonalwebparts is enabled the permission to update Web Parts to display personalized informationis available to use for this Web application.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebappsteupdatepersonalwebparts">
                                                            <sch:rule context="sp-def:spwebapplication_state/sp-def:updatepersonalwebparts">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the updatepersonalwebparts entity of a spwebapplication_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <!-- =============================================================================== -->
      <!-- ===========================  SPGROUP TEST   =================================== -->
      <!-- =============================================================================== -->
      <xsd:element name="spgroup_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spgroup test is used to check the group properties for site collections. It extends the standard TestType as defined in the oval-definitions-schema and one should refer to the TestType description for more information. The required object element references an spwebapplication_object and the optional state element specifies the data to check. The evaluation of the test is guided by the check attribute that is inherited from the TestType.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="spgrptst">
                              <sch:rule context="sp-def:spgroup_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spgroup_object/@id"><sch:value-of select="../@id"/> - the object child element of a spgroup_test must reference a spgroup_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:spgroup_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spgroup_state/@id"><sch:value-of select="../@id"/> - the state child element of a spgroup_test must reference a spgroup_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spgroup_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spgroup_object element is used by a spgroup test to define the object to be evaluated. 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:documentation>An spgroup object consists of a sitecollectionurl used to define a specific site collection.  See the defintion of the SPGroup class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="sitecollectionurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The sitecollectionurl element defines the Site Colection to evaluate specific group settings.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spgrpobjsitecollectionurl">
                                                                        <sch:rule context="sp-def:spgroup_object/sp-def:sitecollectionurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a spgroup_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>
      <xsd:element name="spgroup_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The spgroup_state element defines settings for groups in a site collections.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="sitecollectionurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The sitecollectionurl element identifies a Site Collection.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spgrpstesitecollectionurl">
                                                            <sch:rule context="sp-def:spgroup_state/sp-def:sitecollectionurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a spgroup_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="gname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name element identifies a Group name.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spgrpstegname">
                                                            <sch:rule context="sp-def:spgroup_state/sp-def:gname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the gname entity of a spgroup_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="autoacceptrequesttojoinleave" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the autoacceptrequesttojoinleave is enabled it allows users to automatically join groups.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spgrpsteautoacceptrequesttojoinleave">
                                                            <sch:rule context="sp-def:spgroup_state/sp-def:autoacceptrequesttojoinleave">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the autoacceptrequesttojoinleave entity of a spgroup_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="allowmemberseditmembership" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the allowmemberseditmembership is enabled than all group memebers will be allowed to edit the membership of a group..</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spgrpsteallowmemberseditmembership">
                                                            <sch:rule context="sp-def:spgroup_state/sp-def:allowmemberseditmembership">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the autoacceptrequesttojoinleave entity of a spgroup_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="onlyallowmembersviewmembership" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the onlyallowmembersviewmembership is enabled it allows users to automatically join groups.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spgrpsteonlyallowmembersviewmembership">
                                                            <sch:rule context="sp-def:spgroup_state/sp-def:onlyallowmembersviewmembership">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the onlyallowmembersviewmembership entity of a spgroup_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <!-- =============================================================================== -->
      <!-- ===========================  SPWEB TEST   ===================================== -->
      <!-- =============================================================================== -->
      <xsd:element name="spweb_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spweb test is used to check the properties for site collections. It extends the standard TestType as defined in the oval-definitions-schema and one should refer to the TestType description for more information. The required object element references an spwebapplication_object and the optional state element specifies the data to check. The evaluation of the test is guided by the check attribute that is inherited from the TestType.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="spwebtst">
                              <sch:rule context="sp-def:spweb_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spweb_object/@id"><sch:value-of select="../@id"/> - the object child element of a spweb_test must reference an spweb_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:spweb_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spweb_state/@id"><sch:value-of select="../@id"/> - the state child element of a spweb_test must reference an spweb_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spweb_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spweb_object element is used by a spweb test to define the object to be evaluated. 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:documentation>An spweb object consists of a webcollection url and sitecollection url used to define a specific web apoplication and a specific site collection.  See the defintion of the SPWeb class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="webcollectionurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The webcollurl element defines the web application to evaluate specific web settings.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spwebobjwebcollectionurl">
                                                                        <sch:rule context="sp-def:spweb_object/sp-def:webcollectionurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the webcollectionurl entity of a spweb_object should be 'string'</sch:assert>
                                                                        </sch:rule>
                                                                  </sch:pattern>
                                                            </xsd:appinfo>
                                                      </xsd:annotation>
                                                </xsd:element>
                                                <xsd:element name="sitecollectionurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The sitecollectionurl element defines the site collection to evaluate specific web settings.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spwebobjsitecollectionurl">
                                                                        <sch:rule context="sp-def:spweb_object/sp-def:sitecollectionurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a spweb_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>
      <xsd:element name="spweb_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The spweb_state element defines settings for a site collection.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="webcollectionurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The webcollurl element identifies a Site Collection.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebstewebcollectionurl">
                                                            <sch:rule context="sp-def:spweb_state/sp-def:webcollectionurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the webcollectionurl entity of a spweb_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="sitecollectionurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name element identifies a site collection url.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebstesitecollectionurl">
                                                            <sch:rule context="sp-def:spweb_state/sp-def:sitecollectionurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a spweb_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="secondarysitecolladmin" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The secondarysitecolladmin element identifies a secondary site collection admin.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebstesecondarysitecolladmin">
                                                            <sch:rule context="sp-def:spweb_state/sp-def:secondarysitecolladmin">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the secondarysitecolladmin entity of a spweb_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="secondsitecolladminenabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>A boolean that represents if the secondarysitecolladmin is enabled.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebstesecondsitecolladminenabled">
                                                            <sch:rule context="sp-def:spweb_state/sp-def:secondsitecolladminenabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the secondsitecolladminenabled entity of a spweb_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="allowanonymousaccess" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the allowanonymousaccess is enabled users will be allowed to create and manager their own top-level Web sites .</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spwebsteallowanonymousaccess">
                                                            <sch:rule context="sp-def:spweb_state/sp-def:allowanonymousaccess">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the allowanonymousaccess entity of a spweb_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <!-- =============================================================================== -->
      <!-- ===========================  SPLIST TEST   ==================================== -->
      <!-- =============================================================================== -->
      <xsd:element name="splist_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The splist test is used to check the properties of lists associated with a SharePoint site or site collection. It extends the standard TestType as defined in the oval-definitions-schema and one should refer to the TestType description for more information. The required object element references an splist_object and the optional state element specifies the data to check. The evaluation of the test is guided by the check attribute that is inherited from the TestType.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="splisttst">
                              <sch:rule context="sp-def:splist_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:splist_object/@id"><sch:value-of select="../@id"/> - the object child element of a splist_test must reference an splist_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:splist_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:splist_state/@id"><sch:value-of select="../@id"/> - the state child element of a splist_test must reference an splist_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="splist_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The splist_object element is used by a splist test to define the object to be evaluated. 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:documentation>An splist object consists of a spsiteurl used to define a specific site in a site collection that various security related configuration items need to be checked. See the defintion of the SPList class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="spsiteurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The spsiteurl element defines the Sharepoint website being specified ...</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="splistobjspsiteurl">
                                                                        <sch:rule context="sp-def:splist_object/sp-def:spsiteurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the spwebsiteurl entity of a splist_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>
      <xsd:element name="splist_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The splist_state element defines the different information that can be used to evaluate the specified Sharepoint sites....</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="spsiteurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The spsiteurl element identifies an Sharepoint site to test for.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spliststesiteurl">
                                                            <sch:rule context="sp-def:splist_object/sp-def:spsiteurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the spsiteurl entity of a splist_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="irmenabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the irmenabled option is enabled, documents are protected whenever they leave the control of the Sharepoint system.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spliststeirmenabled">
                                                            <sch:rule context="sp-def:splist_state/sp-def:irmenabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the irmenabled entity of a splist_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="enableversioning" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the enableversioning option is enabled, backup copies of documents are kept and managed by the Sharepoint system.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spliststeenableversioning">
                                                            <sch:rule context="sp-def:splist_state/sp-def:enableversioning">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the enableversioning entity of a splist_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="nocrawl" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>If the nocrawl option is enabled, the site is excluded from crawls that Sharepoint does when it indexes sites.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spliststenocrawl">
                                                            <sch:rule context="sp-def:splist_state/sp-def:nocrawl">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the nocrawl entity of a splist_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <!-- =============================================================================== -->
      <!-- ===========================  SPANTIVIRUSSETTINGS TEST   ======================= -->
      <!-- =============================================================================== -->
      <xsd:element name="spantivirussettings_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spantivirussettings test is used to check the settings for antivirus software associated with a SharePoint deployment.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="spavstst">
                              <sch:rule context="sp-def:spantivirussettings_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spantivirussettings_object/@id"><sch:value-of select="../@id"/> - the object child element of a spantivirussettings_test must reference an spantivirussettings_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:spantivirussettings_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spantivirussettings_state/@id"><sch:value-of select="../@id"/> - the state child element of a spantivirussettings_test must reference an spantivirussettings_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spantivirussettings_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spantivirussettings_object element is used by a spantivirussettings test to define the object to be evaluated. 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:documentation>An spantivirussettings object consists of a spwebservicename used to define a specific webservice in a farm that various security related configuration items need to be checked and an spfarmname which denotes the farm of which the spwebservice is a part.  See the defintion of the SPAntiVirusSettings class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="spwebservicename" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The spwebservicename element denotes the web service for which antivirus settings will be checked.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spavsobjwebservicename">
                                                                        <sch:rule context="sp-def:spantivirussettings_object/sp-def:spwebservicename">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the spwebservicename entity of a spantivirussettings_object should be 'string'</sch:assert>
                                                                        </sch:rule>
                                                                  </sch:pattern>
                                                            </xsd:appinfo>
                                                      </xsd:annotation>
                                                </xsd:element>
                                                <xsd:element name="spfarmname" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The spfarmname element denotes the farm on which a web service to be queried resides.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spavsobjfarmname">
                                                                        <sch:rule context="sp-def:spantivirussettings_object/sp-def:spfarmname">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the spfarmname entity of a spantivirussettings_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>
      <xsd:element name="spantivirussettings_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The spantivirus_state element defines the different information that can be used to evaluate the specified Sharepoint sites....</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="spwebservicename" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1" default="*">
                                          <xsd:annotation>
                                                <xsd:documentation>The spwebservicename denotes the name of a SharePoint web service to be tested or * (the default) to test all web services.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavsstewebservicename">
                                                            <sch:rule context="sp-def:spantivirussettings_object/sp-def:spwebservicename">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the spwebservicename entity of a spantivirusservice_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="spfarmname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1" default="SPFarm.Local">
                                          <xsd:annotation>
                                                <xsd:documentation>The spfarmname denotes the name of the farm on which the Sharepoint webservice resides or the local farm (default).</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavsstespfarmname">
                                                            <sch:rule context="sp-def:spantivirussettings_object/sp-def:spfarmname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the spfarmname entity of a spantivirusservice_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="allowdownload" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether infected documents can be downloaded on the SharePoint system.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavssteallowdownload">
                                                            <sch:rule context="sp-def:spantivirussettings_state/sp-def:allowdownload">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the allowdownload entity of a spantivirussettings_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="cleaningenabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether the virus scanner should attempt to cure files that are infected.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavsstecleaningenabled">
                                                            <sch:rule context="sp-def:spantivirussettings_state/sp-def:cleaningenabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the cleaningenabled entity of a spantivirussettings_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="downloadscanenabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whetehr files are scanned for viruses when they are downloaded.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavsstedownloadscanenabled">
                                                            <sch:rule context="sp-def:spantivirussettings_state/sp-def:downloadscanenabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the downloadscanenabled entity of a spantivirussettings_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="numberofthreads" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The number of threads that the antivirus scanner can use to scan documents for viruses.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavsstenumberofthreads">
                                                            <sch:rule context="sp-def:spantivirussettings_state/sp-def:numberofthreads">
                                                                  <sch:assert test="@datatype='integer'"><sch:value-of select="../@id"/> - datatype attribute for the numberofthreads entity of a spantivirussettings_state should be 'integer'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="skipsearchcrawl" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether to skip scanning for viruses during a search crawl.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavssteskipsearchcrawl">
                                                            <sch:rule context="sp-def:spantivirussettings_state/sp-def:skipsearchcrawl">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the skipsearchcrawl entity of a spantivirussettings_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="timeout" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Denotes the amount of time before the virus scanner times out.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavsstetimeout">
                                                            <sch:rule context="sp-def:spantivirussettings_state/sp-def:timeout">
                                                                  <sch:assert test="@datatype='integer'"><sch:value-of select="../@id"/> - datatype attribute for the timeout entity of a spantivirussettings_state should be 'integer'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="uploadscanenabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether files are scanned when they are uploaded.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavssteuploadscanenabled">
                                                            <sch:rule context="sp-def:spantivirussettings_state/sp-def:uploadscanenabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the uploadscanenabled entity of a spantivirussettings_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="vendorupdatecount" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Denotes the current increment of the number of times the vendor has been updated.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spavsstevendorupdatecount">
                                                            <sch:rule context="sp-def:spantivirussettings_state/sp-def:vendorupdatecount">
                                                                  <sch:assert test="@datatype='integer'"><sch:value-of select="../@id"/> - datatype attribute for the vendorupdatecount entity of a spantivirussettings_state should be 'integer'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <!-- =============================================================================== -->
      <!-- ===========================  SPSITEADMINISTRATION TEST   ====================== -->
      <!-- =============================================================================== -->
      <xsd:element name="spsiteadministration_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spsiteadministration test is used to check the properties of a site. It extends the standard TestType as defined in the oval-definitions-schema and one should refer to the TestType description for more information. The required object element references an spwebapplication_object and the optional state element specifies the data to check. The evaluation of the test is guided by the check attribute that is inherited from the TestType.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="spsiteadmintst">
                              <sch:rule context="sp-def:spsiteadministration_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spsiteadministration_object/@id"><sch:value-of select="../@id"/> - the object child element of a spsiteadministration_test must reference an spsiteadministration_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:spsiteadministration_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spsiteadministration_state/@id"><sch:value-of select="../@id"/> - the state child element of a spsiteadministration_test must reference an spsiteadministration_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spsiteadministration_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spsiteadministration_object element is used by a spsiteadministration test to define the object to be evaluated. 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:documentation>An spsiteadministration object consists of a webapplicationurl used to define a specific web application. See the defintion of the SPSiteAdministration class in the SharePoint object model documentation.  See the defintion of the SPSiteAdministration class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="sitecollectionurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The sitecollectionurl element defines the site to evaluate.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spsiteadminobjsitecollectionurl">
                                                                        <sch:rule context="sp-def:spsiteadministration_object/sp-def:sitecollectionurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a spsiteadministration_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>
      <xsd:element name="spsiteadministration_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The spspsiteadministration_state element defines security settings and permissions that can be checked for a specified SPSite.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="sitecollectionurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The sitecollectionurl element identifies a site.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spsiteadminstesitecollectionurl">
                                                            <sch:rule context="sp-def:spsiteadministration_state/sp-def:sitecollectionurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a spsiteadministration_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="storagemaxlevel" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The storagemaxlevel is the maximum storage allowed for the site.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <valid_datatypes>integer</valid_datatypes>
                                                      <valid_operators>equals, not equal, greater than, less than, greater than or equal, less than or equal</valid_operators>
                                                      <sch:pattern id="spsiteadminstestoragemaxlevel">
                                                            <sch:rule context="sp-def:spsiteadministration_state/sp-def:storagemaxlevel">
                                                                  <sch:assert test="@datatype='int'"><sch:value-of select="../@id"/> - datatype attribute for thestoragemaxlevel entity of a spsiteadministration_state should be 'int'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="storagewarninglevel" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>When the storagewarninglevel is reached a site collection receive advance notice before available storage is expended.s.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <valid_datatypes>integer</valid_datatypes>
                                                      <valid_operators>equals, not equal, greater than, less than, greater than or equal, less than or equal</valid_operators>
                                                      <sch:pattern id="spsiteadminstestoragewarninglevel">
                                                            <sch:rule context="sp-def:spsiteadministration_state/sp-def:storagewarninglevel">
                                                                  <sch:assert test="@datatype='int'"><sch:value-of select="../@id"/> - datatype attribute for the storagewarninglevel entity of a spsiteadministration_state should be 'int'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <!-- =============================================================================== -->
      <!-- ===========================  SPSITE TEST   ==================================== -->
      <!-- =============================================================================== -->
      <xsd:element name="spsite_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spsite test is used to check the properties of a site. It extends the standard TestType as defined in the oval-definitions-schema and one should refer to the TestType description for more information. The required object element references an spwebapplication_object and the optional state element specifies the data to check. The evaluation of the test is guided by the check attribute that is inherited from the TestType.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="spsitetst">
                              <sch:rule context="sp-def:spsite_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spsite_object/@id"><sch:value-of select="../@id"/> - the object child element of a spsite_test must reference an spsite_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:spsite_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spsite_state/@id"><sch:value-of select="../@id"/> - the state child element of a spsite_test must reference an spsite_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spsite_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spsite_object element is used by a spsiteadministration test to define the object to be evaluated. 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:documentation>An spsite object consists of a sitecollectionurl used to define a specific web application. See the defintion of the SPSite class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="sitecollectionurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The sitecollectionurl element defines the site to evaluate.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spsiteobjsitecollectionurl">
                                                                        <sch:rule context="sp-def:spsite_object/sp-def:sitecollectionurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a spsite_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>
      <xsd:element name="spsite_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The spsite_state element defines security settings and permissions that can be checked for a specified SPSite.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="sitecollectionurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The sitecollectionurl element identifies a site.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spsitestesitecollectionurl">
                                                            <sch:rule context="sp-def:spsite_state/sp-def:sitecollectionurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a spsite_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="quotaname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The quota name is the name of quota template for a site collection.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spsitestequotaname">
                                                            <sch:rule context="sp-def:spsite_state/sp-def:quotaname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the quotaname entity of a spsite_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="url" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The URL is the full URL to the root Web site of the site collection, including host name, port number, and path.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spsitesteurl">
                                                            <sch:rule context="sp-def:spsite_state/sp-def:url">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the url entity of a spsite_state 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>
      <!-- =============================================================================== -->
      <!-- ===========================  SPCRAWLRULE TEST   =============================== -->
      <!-- =============================================================================== -->
      <xsd:element name="spcrawlrule_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spcrawlrule test is used to check the configuration or rules associated with the SharePoint system's built-in indexer and the sites or documents that will be indexed.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="spcrtst">
                              <sch:rule context="sp-def:spcrawlrule_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spcrawlrule_object/@id"><sch:value-of select="../@id"/> - the object child element of a spcrawlrule_test must reference an spcrawlrule_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:spcrawlrule_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spcrawlrule_state/@id"><sch:value-of select="../@id"/> - the state child element of a spcrawlrule_test must reference an spcrawlrule_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spcrawlrule_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spcrawlrule_object element is used by a spcrawlrule test to define the object to be evaluated. 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:documentation>An spcrawlrule object consists of a spsiteurl used to define a specific resource (eg. website or document) on a server that can be indexed by the SharePoint indexer.  See the defintion of the CrawlRule class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="spsiteurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The spsiteurl element denotes the resource on the SharePoint server (eg. a site or document) for which indexing settings will be checked.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spcrobjsiteurl">
                                                                        <sch:rule context="sp-def:spcrawlrule_object/sp-def:spsiteurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the spsiteurl entity of a spcrawlrule_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>
      <xsd:element name="spcrawlrule_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The spcrawlrule state element defines the various properties of the SharePoint indexer that can be checked.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="spsiteurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The spsiteurl denotes the URL of a website or resource whose indexing properties should be tested.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spcrstespsiteurl">
                                                            <sch:rule context="sp-def:spcrawlrule_state/sp-def:spsiteurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the spsiteurl entity of a spcrawlrule_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="crawlashttp" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether the crawler should crawl content from a hierarchical content source, such as HTTP content.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spcrstecrawlashttp">
                                                            <sch:rule context="sp-def:spcrawlrule_state/sp-def:crawlashttp">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the crawlashttp entity of a spcrawlrule_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="enabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether a particular crawl rule is enabled.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spcrsteenabled">
                                                            <sch:rule context="sp-def:spcrawlrule_state/sp-def:enabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the enabled entity of a spcrawlrule_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="followcomplexurls" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether the indexer should crawl websites that contain the question mark (?) character.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spcrstefollowcomplexurls">
                                                            <sch:rule context="sp-def:spcrawlrule_state/sp-def:followcomplexurls">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the followcomplexurls entity of a spcrawlrule_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="path" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The path to which a particular crawl rule applies.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spcrstepath">
                                                            <sch:rule context="sp-def:spcrawlrule_state/sp-def:path">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the path entity of a spcrawlrule_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="priority" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The priority setting for a particular crawl rule.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spcrstepriority">
                                                            <sch:rule context="sp-def:spcrawlrule_state/sp-def:priority">
                                                                  <sch:assert test="@datatype='integer'"><sch:value-of select="../@id"/> - datatype attribute for the priority entity of a spcrawlrule_state should be 'integer'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="suppressindexing" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether the crawler should exclude the content of items that this rule applies to from the content index.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spcrstesuppressindexing">
                                                            <sch:rule context="sp-def:spcrawlrule_state/sp-def:suppressindexing">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the suppressindexing entity of a spcrawlrule_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="accountname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>A string containing the account name for the crawl rule.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spcrsteaccountname">
                                                            <sch:rule context="sp-def:spcrawlrule_state/sp-def:accountname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the accountname entity of a spcrawlrule_state 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>
      <!-- =============================================================================== -->
      <!-- ===========================  SPJOBDEFINITION TEST   =========================== -->
      <!-- =============================================================================== -->
      <xsd:element name="spjobdefinition_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spjobdefinition test is used to check the status of the various properties associated with scheduled jobs in the SharePoint system.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="spjobdeftst">
                              <sch:rule context="sp-def:spjobdefinition_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spjobdefinition_object/@id"><sch:value-of select="../@id"/> - the object child element of a spjobdefinition_test must reference an spjobdefinition_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:spjobdefinition_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spjobdefinition_state/@id"><sch:value-of select="../@id"/> - the state child element of a spjobdefinition_test must reference an spjobdefinition_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spjobdefinition_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spjobdefinition_object element is used by a spjobdefinition test to define the object to be evaluated. 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:documentation>An spjobdefinition object consists of a webappuri used to define a specific web application for which job checks should be done.  See the defintion of the SPJobDefinition class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="webappuri" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The URI that represents the web application for which jobs should be checked.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="spjobdefobjwebappuri">
                                                                        <sch:rule context="sp-def:spjobdefinition_object/sp-def:webappuri">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the webappuri entity of a spjobdefinition_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>
      <xsd:element name="spjobdefinition_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The various properties of a Sharepoint job that can be checked.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="webappuri" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The URI that represents the web application for which jobs should be checked.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spjobdefstewebappuri">
                                                            <sch:rule context="sp-def:spjobdefinition_state/sp-def:webappuri">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the webappuri entity of a spjobdefinition_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="displayname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name of the job as displayed in the SharePoint Central Administration site.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spjobdefstedisplayname">
                                                            <sch:rule context="sp-def:spjobdefinition_state/sp-def:displayname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the displayname entity of a spjobdefinition_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="isdisabled" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Determines whether or not the job definition is enabled.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spjobdefsteisdisabled">
                                                            <sch:rule context="sp-def:spjobdefinition_state/sp-def:isdisabled">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the isdisabled entity of a spjobdefinition_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="retry" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Determines whether the job definition should be retried if it ends abnormally.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spjobdefsteretry">
                                                            <sch:rule context="sp-def:spjobdefinition_state/sp-def:retry">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the retry entity of a spjobdefinition_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="title" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The title of a job as displayed in the SharePoint Central Administration site.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spjobdefstetitle">
                                                            <sch:rule context="sp-def:spjobdefinition_state/sp-def:title">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the title entity of a spjobdefinition_state 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>
      <!-- =============================================================================== -->
      <!-- ===========================  BESTBET TEST   =================================== -->
      <!-- =============================================================================== -->
      <xsd:element name="bestbet_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The bestbet test is used to get all the best bets associated with a site.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="bbtst">
                              <sch:rule context="sp-def:bestbet_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:bestbet_object/@id"><sch:value-of select="../@id"/> - the object child element of a bestbet_test must reference an bestbet_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:bestbet_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:bestbet_state/@id"><sch:value-of select="../@id"/> - the state child element of a bestbet_test must reference an bestbet_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="bestbet_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The bestbet_object element is used by a bestbet test to define the object to be evaluated. 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:documentation>An bestbet object consists of a sitecollectionurl used to define a specific site and a bestbeturl used to define a specific best bet.  See the defintion of the BestBet class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="sitecollectionurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The URL that represents the site collection.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="bbobjsitecollectionurl">
                                                                        <sch:rule context="sp-def:bestbet_object/sp-def:sitecollectionurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a bestbet_object should be 'string'</sch:assert>
                                                                        </sch:rule>
                                                                  </sch:pattern>
                                                            </xsd:appinfo>
                                                      </xsd:annotation>
                                                </xsd:element>
                                                <xsd:element name="bestbeturl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The URL that represents the best bet.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="bbobjbestbeturl">
                                                                        <sch:rule context="sp-def:bestbet_object/sp-def:bestbeturl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the bestbeturl entity of a bestbet_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>
      <xsd:element name="bestbet_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The various properties of a Best Bet that can be checked.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="sitecollectionurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The URL that represents the site collection.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="bbstesitecollectionurl">
                                                            <sch:rule context="sp-def:bestbet_state/sp-def:sitecollectionurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a bestbet_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="bestbeturl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name of the job as displayed in the SharePoint Central Administration site.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="bbstebestbeturl">
                                                            <sch:rule context="sp-def:bestbet_state/sp-def:bestbeturl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the bestbeturl entity of a bestbet_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="title" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The title of a best bet.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="bbstetitle">
                                                            <sch:rule context="sp-def:bestbet_state/sp-def:title">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the title entity of a bestbet_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="description" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Thedescription of a best bet..</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="bbstedescription">
                                                            <sch:rule context="sp-def:bestbet_state/sp-def:description">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the description entity of a bestbet_state 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>
      <!-- =============================================================================== -->
      <!-- ===========================  INFOPOLICYCOLLECTION TEST   ====================== -->
      <!-- =============================================================================== -->
      <xsd:element name="infopolicycoll_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The policycoll test is used to get all the Information Policies associated with a site.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="infopolicycolltst">
                              <sch:rule context="sp-def:policycoll_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:policycoll_object/@id"><sch:value-of select="../@id"/> - the object child element of a policycoll_test must reference an policycoll_object</sch:assert>
                              </sch:rule>
                              <sch:rule context="sp-def:policycoll_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:policycoll_state/@id"><sch:value-of select="../@id"/> - the state child element of a policycoll_test must reference an policycoll_state</sch:assert>
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="infopolicycoll_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The infopolicycoll_object element is used by a policycoll test to define the object to be evaluated. 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:documentation>A infopolicycoll object consists of a sitecollectionurl used to define a specific site and an id used to define a specific information policy.  See the defintion of the Policy class and policycollection class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:sequence>
                                                <xsd:element name="sitecollectionurl" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The URL that represents the site collection.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="infopolicycollobjsitecollectionurl">
                                                                        <sch:rule context="sp-def:infopolicycoll_object/sp-def:sitecollectionurl">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the <sch:name/> entity of a <sch:name path=".."/> should be 'string'</sch:assert>
                                                                        </sch:rule>
                                                                  </sch:pattern>
                                                            </xsd:appinfo>
                                                      </xsd:annotation>
                                                </xsd:element>
                                                <xsd:element name="id" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                      <xsd:annotation>
                                                            <xsd:documentation>The id that represents the Information Policy.</xsd:documentation>
                                                            <xsd:appinfo>
                                                                  <sch:pattern id="infopolicycollobjid">
                                                                        <sch:rule context="sp-def:infopolicycoll_object/sp-def:id">
                                                                              <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the id entity of a infopolicycoll_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>
      <xsd:element name="infopolicycoll_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The various properties of the Information Policy that can be checked.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="sitecollectionurl" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The URL that represents the site collection.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="infopolicycollstesitecollectionurl">
                                                            <sch:rule context="sp-def:infopolicycoll_state/sp-def:sitecollectionurl">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the sitecollectionurl entity of a infopolicycoll_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="id" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The id of the Information Policy.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="infopolicycollsteid">
                                                            <sch:rule context="sp-def:infopolicycoll_state/sp-def:id">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the id entity of a infopolicycoll_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="name" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name of the Information Policy.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="infopolicycollstename">
                                                            <sch:rule context="sp-def:infopolicycoll_state/sp-def:name">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the name entity of a infopolicycoll_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="description" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The description of an Information Policy..</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="infopolicycollstedescription">
                                                            <sch:rule context="sp-def:infopolicycoll_state/sp-def:description">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the description entity of a infopolicycoll_state should be 'string'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="longdescription" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The long description of an Information Policy..</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="infopolicycollstelongdescription">
                                                            <sch:rule context="sp-def:infopolicycoll_state/sp-def:longdescription">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the longdescription entity of a infopolicycoll_state 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>
      <!-- =============================================================================== -->
      <!-- ===========================  SPDIAGNOSTICSSERVICE TEST   ====================== -->
      <!-- =============================================================================== -->   
      <xsd:element name="spdiagnosticsservice_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spdiagnosticsservice test is used to check the diagnostic properties associated with a Sharepoint system.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern id="spdiagnosticsservicetest">
                              <sch:rule context="sp-def:spdiagnosticsservice_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spdiagnosticsservice_object/@id"><sch:value-of select="../@id"/> - the object child element of an spdiagnosticsservice_test must reference an spdiagnosticsservice_object</sch:assert> 
                              </sch:rule>
                              <sch:rule context="sp-def:spdiagnosticsservice_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spdiagnosticsservice_state/@id"><sch:value-of select="../@id"/> - the state child element of an spdiagnosticsservice_test must reference an spdiagnosticsservice_state</sch:assert> 
                              </sch:rule>
                        </sch:pattern>     
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spdiagnosticsservice_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spdiagnosticsservice_object element is used by an spdiagnosticsservice test to define the object to be evaluated. 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:documentation>An spdiagnosticsservice object consists of a farmname used to define a specific Sharepoint farm for which diagnostics properties should be checked.  See the defintion of the SPDiagnosticsService class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:element name="farmname" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                <xsd:annotation>
                                                      <xsd:documentation>The farm whose diagnostic capabilities should be checked. Use .* for all farms or SPFarm.Local for the local farm.</xsd:documentation>
                                                      <xsd:appinfo>
                                                            <sch:pattern id="spdsobjfarmname">
                                                                  <sch:rule context="sp-def:spdiagnosticsservice_object/sp-def:farmname">
                                                                        <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the farmname entity of an spdiagnosticsservice_object should be 'string'</sch:assert> 
                                                                  </sch:rule>
                                                            </sch:pattern>
                                                      </xsd:appinfo>
                                                </xsd:annotation>
                                          </xsd:element>
                                    </xsd:choice>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spdiagnosticsservice_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The various properties of a diagnostics service that can be checked.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="farmname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The farm whose diagnostic capabilities should be checked.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdsstefarmname">
                                                            <sch:rule context="sp-def:spdiagnosticsservice_state/sp-def:farmname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the farmname entity of an spdiagnosticsservice_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="displayname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name of the diagnostic service as shown in the Sharepoint Central Administration site.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdsstedisplayname">
                                                            <sch:rule context="sp-def:spdiagnosticsservice_state/sp-def:displayname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the displayname entity of an spdiagnosticsservice_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="logcutinterval" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The number of minutes to capture events to a single log file. This value lies in the range 0 to 1440. The default value is 30.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdsstelogcutinterval">
                                                            <sch:rule context="sp-def:spdiagnosticsservice_state/sp-def:logcutinterval">
                                                                  <sch:assert test="@datatype='integer'"><sch:value-of select="../@id"/> - datatype attribute for the logcutinterval entity of an spdiagnosticsservice_state should be 'integer'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="loglocation" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The path to the file system directory where log files are created and stored.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdssteloglocation">
                                                            <sch:rule context="sp-def:spdiagnosticsservice_state/sp-def:loglocation">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the loglocation entity of an spdiagnosticsservice_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="logstokeep" type="oval-def:EntityStateIntType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The value that indicates the number of log files to create. This lies in the range 0 to 1024 with a default of 96.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdsstelogstokeep">
                                                            <sch:rule context="sp-def:spdiagnosticsservice_state/sp-def:logstokeep">
                                                                  <sch:assert test="@datatype='integer'"><sch:value-of select="../@id"/> - datatype attribute for the logstokeep entity of an spdiagnosticsservice_state should be 'integer'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="required" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The required property specifies whether an instance of the spdiagnosticsservice must be running on the farm.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdssterequired">
                                                            <sch:rule context="sp-def:spdiagnosticsservice_state/sp-def:required">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the required entity of an spdiagnosticsservice_state should be 'boolean'</sch:assert>
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="typename" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The friendly name for the service as displayed in the Central Administration and in logs. This should be "Windows Sharepoint Diagnostics Service" by default.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdsstetypename">
                                                            <sch:rule context="sp-def:spdiagnosticsservice_state/sp-def:typename">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the typename entity of an spdiagnosticsservice_state 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>
      <!-- =============================================================================== -->
      <!-- ===========================  SPDIAGNOSTICSLEVEL TEST   ======================== -->
      <!-- =============================================================================== -->
      <xsd:element name="spdiagnosticslevel_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The spdiagnosticslevel_test is used to check the status of the logging features associated with a Sharepoint deployment.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern>
                              <sch:rule context="sp-def:spdiagnosticslevel_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:spdiagnosticslevel_object/@id"><sch:value-of select="../@id"/> - the object child element of an spdiagnosticslevel_test must reference an spdiagnosticslevel_object</sch:assert>  
                              </sch:rule>
                              <sch:rule context="sp-def:spdiagnosticslevel_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:spdiagnosticslevel_state/@id"><sch:value-of select="../@id"/> - the state child element of an spdiagnosticslevel_test must reference an spdiagnosticslevel_state</sch:assert> 
                              </sch:rule>
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>    
      </xsd:element>
      <xsd:element name="spdiagnosticslevel_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The spdiagnosticslevel_object element is used by an spdiagnosticslevel test to define the object to be evaluated. 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:documentation>An spdiagnosticslevel object consists of a farmname used to define a specific Sharepoint farm for which policy properties should be checked.  See the defintion of the SPWebApplication class in the SharePoint object model documentation.   See the defintion of the IDiagnosticsLevel Interface in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:element name="farmname" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                <xsd:annotation>
                                                      <xsd:documentation>The farm whose diagnostics levels should be checked. Use .* for all farms or SPFarm.Local for the local farm.</xsd:documentation>
                                                      <xsd:appinfo>
                                                            <sch:pattern id="spdlobjfarmname">
                                                                  <sch:rule context="sp-def:spdiagnosticslevel_object/sp-def:farmname">
                                                                        <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the farmname entity of an spdiagnosticslevel_object should be 'string'</sch:assert>  
                                                                  </sch:rule>
                                                            </sch:pattern>
                                                      </xsd:appinfo>
                                                </xsd:annotation>
                                          </xsd:element>
                                    </xsd:choice>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="spdiagnosticslevel_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The various properties of a Diagnostics level that can be checked.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="farmname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name of the farm for which diagnostics level properties should be checked.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdlstefarmname">
                                                            <sch:rule context="sp-def:spdiagnosticslevel_state/sp-def:farmname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the farmname entity of an spdiagnosticslevel_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="eventseverity" type="sp-def:EntityStateEventSeverityType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The event severity setting for a particular diagnostic level category.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdlsteeventseverity">
                                                            <sch:rule context="spdiagnosticslevel_state/sp-def:eventseverity">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the eventseverity entity of an spdiagnosticslevel_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="hidden" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether the trace log category is hidden in the Windows Sharepoint Services Central Administration interface.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdlstehidden">
                                                            <sch:rule context="sp-def:spdiagnosticslevel_state/sp-def:hidden">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the hidden entity of an spdiagnosticslevel_state should be 'boolean'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="levelid" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>A string that represents the ID of the trace log category. This is its English language name.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdlstelevelid">
                                                            <sch:rule context="sp-def:spdiagnosticslevel_state/sp-def:levelid">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the levelid entity of an spdiagnosticslevel_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="levelname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name of the trace log category. This represents the localized name for the category.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdlstelevelname">
                                                            <sch:rule context="sp-def:spdiagnosticslevel_state/sp-def:levelname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the levelname entity of an spdiagnosticslevel_state should be 'string'</sch:assert>  
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="traceseverity" type="sp-def:EntityStateTraceSeverityType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The trace severity setting for a particular diagnostic level category.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="spdlstetraceseverity">
                                                            <sch:rule context="sp-def:spdiagnosticslevel_state/sp-def:traceseverity">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the traceseverity entity of an spdiagnosticslevel_state 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>
      <!-- =============================================================================== -->
      <!-- ===========================  SPPOLICYFEATURE TEST   =========================== -->
      <!-- =============================================================================== -->
      <xsd:element name="sppolicyfeature_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The sppolicyfeature test enables one to check the attributes associated with policies and policy features on the Sharepoint deployment.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern>
                              <sch:rule context="sp-def:sppolicyfeature_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:sppolicyfeature_object/@id"><sch:value-of select="../@id"/> - the object child element of an sppolicyfeature_test must reference an sppolicyfeature_object</sch:assert> 
                              </sch:rule>
                              <sch:rule context="sp-def:sppolicyfeature_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:sppolicyfeature_state/@id"><sch:value-of select="../@id"/> - the state child element of an sppolicyfeature_test must reference an sppolicyfeature_state</sch:assert> 
                              </sch:rule> 
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="sppolicyfeature_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The sppolicyfeature_object element is used by an sppolicyfeature test to define the object to be evaluated. 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:documentation>An sppolicyfeature object consists of a farmname used to define a specific Sharepoint farm for which policy feature properties should be checked.  See the defintion of the PolicyFeature class in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:element name="farmname" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                <xsd:annotation>
                                                      <xsd:documentation>The farm whose policy features should be checked. Use .* for all farms or SPFarm.Local for the local farm.</xsd:documentation>
                                                      <xsd:appinfo>
                                                            <sch:pattern id="sppfobjfarmname">
                                                                  <sch:rule context="sp-def:sppolicyfeature_object/sp-def:farmname">
                                                                        <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the farmname entity of an sppolicyfeature_object should be 'string'</sch:assert> 
                                                                  </sch:rule>
                                                            </sch:pattern>
                                                      </xsd:appinfo>
                                                </xsd:annotation>
                                          </xsd:element>
                                    </xsd:choice>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="sppolicyfeature_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The various properties of a policy feature that can be checked.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="farmname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The farm whose policy features should be checked. Use .* for all farms or SPFarm.Local for the local farm.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfstefarmname">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:farmname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the farmname entity of an sppolicyfeature_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="configpage" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The URL to a web control used to edit policy instance-level settings.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfsteconfigpage">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:configpage">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the configpage entity of an sppolicyfeature_state should be 'string'</sch:assert>  
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="defaultcustomdata" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The default values for any policy instance-level settings for a policy feature.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfstedefaultcustomdata">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:defaultcustomdata">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the defaultcustomdata entity of an sppolicyfeature_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="description" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The short description of the policy feature and of the service it provides.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfstedescription">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:description">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the description entity of an sppolicyfeature_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="globalconfigpage" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The URL to a web control used to edit server farm-level settings for this policy feature.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfsteglobalconfigpage">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:globalconfigpage">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the globalconfigpage entity of an sppolicyfeature_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="globalcustomdata" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The default settings for any server farm-level settings for this policy feature.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfsteglobalcustomdata">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:globalcustomdata">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the globalconfigpage entity of an sppolicyfeature_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="group" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The policy feature group to which a policy feature belongs.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfstegroup">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:group">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the group entity of an sppolicyfeature_state should be 'string'</sch:assert>  
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="name" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name to display in the Microsoft Office Sharepoint Server 2007 interface for an information policy feature.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfstename">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:name">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the name entity of an sppolicyfeature_state should be 'string'</sch:assert>  
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="publisher" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The name of the creator of the policy feature as it is displayed in the Microsoft Office Sharepoint Server 2007 user interface.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfstepublisher">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:publisher">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the publisher entity of an sppolicyfeature_state should be 'string'</sch:assert>  
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="state" type="sp-def:EntityStatePolicyFeatureStateType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether the policy feature is hidden or visible.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppfstestate">
                                                            <sch:rule context="sp-def:sppolicyfeature_state/sp-def:state">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the state entity of an sppolicyfeature_state 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>
      <!-- =============================================================================== -->
      <!-- ===========================  SPPOLICY TEST   ================================== -->
      <!-- =============================================================================== -->
      <xsd:element name="sppolicy_test" substitutionGroup="oval-def:test">
            <xsd:annotation>
                  <xsd:documentation>The sppolicy test enables one to check the attributes of the policies associated with a particular URL Zone in a Sharepoint system.</xsd:documentation>
                  <xsd:appinfo>
                        <sch:pattern>
                              <sch:rule context="sp-def:sppolicy_test/sp-def:object">
                                    <sch:assert test="@object_ref=/oval-def:oval_definitions/oval-def:objects/sp-def:sppolicy_object/@id"><sch:value-of select="../@id"/> - the object child element of an sppolicy_test must reference an sppolicy_object</sch:assert> 
                              </sch:rule>
                              <sch:rule context="sp-def:sppolicy_test/sp-def:state">
                                    <sch:assert test="@state_ref=/oval-def:oval_definitions/oval-def:states/sp-def:sppolicy_state/@id"><sch:value-of select="../@id"/> - the state child element of an sppolicy_test must reference an sppolicy_state</sch:assert> 
                              </sch:rule>  
                        </sch:pattern>
                  </xsd:appinfo>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:TestType">
                              <xsd:sequence>
                                    <xsd:element name="object" type="oval-def:ObjectRefType" minOccurs="1" maxOccurs="1"/>
                                    <xsd:element name="state" type="oval-def:StateRefType" minOccurs="0" maxOccurs="1"/>
                              </xsd:sequence>
                        </xsd:extension>
                  </xsd:complexContent>
            </xsd:complexType>
      </xsd:element>
      <xsd:element name="sppolicy_object" substitutionGroup="oval-def:object">
            <xsd:annotation>
                  <xsd:documentation>The sppolicy_object element is used by an sppolicy test to define the object to be evaluated. 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:documentation>An sppolicy object consists of a webappuri and a URL Zone used to define a specific Sharepoint web application and zone for which policy properties should be checked.  See the defintion of the SPPolicy class and the sppolicyroletype in the SharePoint object model documentation. </xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:ObjectType">
                              <xsd:sequence>
                                    <xsd:choice>
                                          <xsd:element ref="oval-def:set"/>
                                          <xsd:element name="webappuri" type="oval-def:EntityObjectStringType" minOccurs="1" maxOccurs="1">
                                                <xsd:annotation>
                                                      <xsd:documentation>The URI that represents the web application for which policies should be checked.</xsd:documentation>
                                                      <xsd:appinfo>
                                                            <sch:pattern id="sppolicyobjwebappuri">
                                                                  <sch:rule context="sp-def:sppolicy_object/sp-def:webappuri">
                                                                        <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the webappuri entity of an sppolicy_object should be 'string'</sch:assert> 
                                                                  </sch:rule>
                                                            </sch:pattern>
                                                      </xsd:appinfo>
                                                </xsd:annotation>
                                          </xsd:element>
                                    </xsd:choice>
                                    <xsd:element name="urlzone" type="sp-def:EntityObjectUrlZoneType" minOccurs="1" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The zone for which policies should be checked.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppolicyobjurlzone">
                                                            <sch:rule context="sp-def:sppolicy_object/sp-def:urlzone">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the urlzone entity of an sppolicy_object 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>
      <xsd:element name="sppolicy_state" substitutionGroup="oval-def:state">
            <xsd:annotation>
                  <xsd:documentation>The various properties of a policy that can be checked.</xsd:documentation>
            </xsd:annotation>
            <xsd:complexType>
                  <xsd:complexContent>
                        <xsd:extension base="oval-def:StateType">
                              <xsd:sequence>
                                    <xsd:element name="webappuri" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The URI that represents the web application for which policies should be checked.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppolicystewebappuri">
                                                            <sch:rule context="sp-def:sppolicy_state/sp-def:webappuri">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the webappuri entity of an sppolicy_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="urlzone" type="sp-def:EntityStateUrlZoneType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The zone for which policies should be checked.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppolicysteurlzone">
                                                            <sch:rule context="sp-def:sppolicy_state/sp-def:urlzone">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the urlzone entity of an sppolicy_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="displayname" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The user or group display name for a policy. This defaults to the user name if the display name cannot be resolved through Active Directory.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppolicystedisplayname">
                                                            <sch:rule context="sp-def:sppolicy_state/sp-def:displayname">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the displayname entity of an sppolicy_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="issystemuser" type="oval-def:EntityStateBoolType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>Specifies whether the user identified by a particular policy is visible only as a System account within the Windows Sharepoint Services user interface.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppolicysteissystemuser">
                                                            <sch:rule context="sp-def:sppolicy_state/sp-def:issystemuser">
                                                                  <sch:assert test="@datatype='boolean'"><sch:value-of select="../@id"/> - datatype attribute for the issystemuser entity of an sppolicy_state should be 'boolean'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="username" type="oval-def:EntityStateStringType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The user name of the user or group that is associated with policy.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppolicysteusername">
                                                            <sch:rule context="sp-def:sppolicy_state/sp-def:username">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the username entity of an sppolicy_state should be 'string'</sch:assert> 
                                                            </sch:rule>
                                                      </sch:pattern>
                                                </xsd:appinfo>
                                          </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="policyroletype" type="sp-def:EntityStatePolicyRoleType" minOccurs="0" maxOccurs="1">
                                          <xsd:annotation>
                                                <xsd:documentation>The policy role type to apply globally in a Sharepoint web application to a user or group.</xsd:documentation>
                                                <xsd:appinfo>
                                                      <sch:pattern id="sppolicystepolicyroletype">
                                                            <sch:rule context="sp-def:sppolicyrole_state/sp-def:policyroletype">
                                                                  <sch:assert test="not(@datatype) or @datatype='string'"><sch:value-of select="../@id"/> - datatype attribute for the policyroletype entity of an sppolicyrole_state 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>
      <!-- =================================================================================================================================== -->
      <!-- ====================================================TYPES========================================================================== -->
      <!-- =================================================================================================================================== -->
      
      <xsd:complexType name="EntityObjectUrlZoneType">
            <xsd:annotation>
                  <xsd:documentation>The EntityObjectUrlZoneType restricts a string value to a set of values that describe the different IIS Url Zones. The empty string is also allowed to support empty element associated with error conditions.</xsd:documentation>
            </xsd:annotation>
            <xsd:simpleContent>
                  <xsd:restriction base="oval-def:EntityObjectStringType">
                        <xsd:enumeration value="Custom"/>
                        <xsd:enumeration value="Default"/>
                        <xsd:enumeration value="Extranet"/>
                        <xsd:enumeration value="Intranet"/>
                        <xsd:enumeration value="Internet"/>
                        <xsd:enumeration value="">
                              <xsd:annotation>
                                    <xsd:documentation>The empty string value is permitted here to allow for empty elements associated with variable references.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                  </xsd:restriction>
            </xsd:simpleContent>
      </xsd:complexType>
      
      <xsd:complexType name="EntityStateEventSeverityType">
            <xsd:annotation>
                  <xsd:documentation>The EntityStateEventSeverityType restricts a string value to a set of values that describe the different states that can be configured for a diagnostics level  event severity level property of the diagnostics service.</xsd:documentation>
            </xsd:annotation>
            <xsd:simpleContent>
                  <xsd:restriction base="oval-def:EntityStateStringType">
                        <xsd:enumeration value="Error"/>
                        <xsd:enumeration value="ErrorCritical"/>
                        <xsd:enumeration value="ErrorSecurityBreach"/>
                        <xsd:enumeration value="ErrorServiceUnavailable"/>
                        <xsd:enumeration value="FailureAudit"/>
                        <xsd:enumeration value="Information"/>
                        <xsd:enumeration value="None"/>
                        <xsd:enumeration value="Success"/>
                        <xsd:enumeration value="SuccessAudit"/>
                        <xsd:enumeration value="Warning"/>
                        <xsd:enumeration value="">
                              <xsd:annotation>
                                    <xsd:documentation>The empty string value is permitted here to allow for empty elements associated with variable references.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                  </xsd:restriction>
            </xsd:simpleContent>
      </xsd:complexType>
      
      <xsd:complexType name="EntityStateTraceSeverityType">
            <xsd:annotation>
                  <xsd:documentation>The EntityStateTraceSeverityType restricts a string value to a set of values that describe the different states that can be configured for a diagnostics level trace severity level property of the diagnostics service.</xsd:documentation>
            </xsd:annotation>
            <xsd:simpleContent>
                  <xsd:restriction base="oval-def:EntityStateStringType">
                        <xsd:enumeration value="High"/>
                        <xsd:enumeration value="Medium"/>
                        <xsd:enumeration value="Monitorable"/>
                        <xsd:enumeration value="None"/>
                        <xsd:enumeration value="Unexpected"/>
                        <xsd:enumeration value="Verbose"/>
                        <xsd:enumeration value="">
                              <xsd:annotation>
                                    <xsd:documentation>The empty string value is permitted here to allow for empty elements associated with variable references.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                  </xsd:restriction>
            </xsd:simpleContent>
      </xsd:complexType>
      
      <xsd:complexType name="EntityStatePolicyRoleType">
            <xsd:annotation>
                  <xsd:documentation>The EntityStatePolicyRoleType restricts a string value to a set of values that describe the different Policy settings for Access Control that are available for users.</xsd:documentation>
            </xsd:annotation>
            <xsd:simpleContent>
                  <xsd:restriction base="oval-def:EntityStateStringType">
                        <xsd:enumeration value="DenyAll">
                              <xsd:annotation>
                                    <xsd:documentation>Deny all rights.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                        <xsd:enumeration value="DenyWrite">
                              <xsd:annotation>
                                    <xsd:documentation>Deny write permissions.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                        <xsd:enumeration value="FullControl">
                              <xsd:annotation>
                                    <xsd:documentation>Grant full control.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                        <xsd:enumeration value="FullRead">
                              <xsd:annotation>
                                    <xsd:documentation>Grant full read permissions.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                        <xsd:enumeration value="None">
                              <xsd:annotation>
                                    <xsd:documentation>No role type assigned.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                        <xsd:enumeration value="">
                              <xsd:annotation>
                                    <xsd:documentation>The empty string value is permitted here to allow for empty elements associated with variable references.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                  </xsd:restriction>
            </xsd:simpleContent>
      </xsd:complexType>
      
      <xsd:complexType name="EntityStatePolicyFeatureStateType">
            <xsd:annotation>
                  <xsd:documentation>The EntityStatePolicyRoleType restricts a string value to a set of values that describe the different policy feature states that can be configured for a policy feature.</xsd:documentation>
            </xsd:annotation>
            <xsd:simpleContent>
                  <xsd:restriction base="oval-def:EntityStateStringType">
                        <xsd:enumeration value="Hidden">
                              <xsd:annotation>
                                    <xsd:documentation>Specifies that the policy feature is hidden from the Sharepoint Central Administration user interface.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                        <xsd:enumeration value="Visible">
                              <xsd:annotation>
                                    <xsd:documentation>Specifies that the policy feature is visible from the Sharepoint Central Administration user interface.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                        <xsd:enumeration value="">
                              <xsd:annotation>
                                    <xsd:documentation>The empty string value is permitted here to allow for empty elements associated with variable references.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                  </xsd:restriction>
            </xsd:simpleContent>
      </xsd:complexType>
      
      <xsd:complexType name="EntityStateUrlZoneType">
            <xsd:annotation>
                  <xsd:documentation>The EntityStateUrlZoneType restricts a string value to a set of values that describe the different IIS Url Zones.</xsd:documentation>
            </xsd:annotation>
            <xsd:simpleContent>
                  <xsd:restriction base="oval-def:EntityStateStringType">
                        <xsd:enumeration value="Custom"/>
                        <xsd:enumeration value="Default"/>
                        <xsd:enumeration value="Extranet"/>
                        <xsd:enumeration value="Intranet"/>
                        <xsd:enumeration value="Internet"/>
                        <xsd:enumeration value="">
                              <xsd:annotation>
                                    <xsd:documentation>The empty string value is permitted here to allow for empty elements associated with variable references.</xsd:documentation>
                              </xsd:annotation>
                        </xsd:enumeration>
                  </xsd:restriction>
            </xsd:simpleContent>
      </xsd:complexType>
</xsd:schema>
