This chapter contains schemas for plug-in manifest files and collection plug-ins.
This is the schema for a plugin-manifest.xml
file. Please use this Schema to validate any plugin-manifest.xml
that you author. Typically, the type of collection plug-in requires you to modify the trailInfo
section, and possibly other sections. See Appendix C, "Example Code" for information specific to the collection plug-in type.
Example B-1 Sample plugin-manifest.xsd file
<?xml version="1.0" encoding="utf-8"?> <!-- This schema defines the structure of the Oracle Audit Vault Plugin --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://xmlns.oracle.com/av/plugin" targetNamespace="http://xmlns.oracle.com/av/plugin" elementFormDefault="qualified"> <xs:element name="plugin"> <xs:complexType> <xs:sequence> <xs:element name="targetVersion"> <xs:complexType> <xs:attribute name="min" type="xs:string" use="required" /> </xs:complexType> </xs:element> <xs:element name="extensionSet"> <xs:complexType> <xs:sequence> <xs:element name="extensionPoint"> <xs:complexType> <xs:sequence> <xs:element name="fileList"> <xs:complexType> <xs:sequence> <xs:element name="jars" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="0" maxOccurs="unbounded" name="include"> <xs:complexType> <xs:attribute name="file" type="xs:string" use="required" /> <xs:attribute name="permission" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="templates" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="include"> <xs:complexType> <xs:attribute name="file" type="xs:string" use="required" /> <xs:attribute name="permission" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="bin" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="include"> <xs:complexType> <xs:attribute name="file" type="xs:string" use="required" /> <xs:attribute name="permission" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="config" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="include"> <xs:complexType> <xs:attribute name="file" type="xs:string" use="required" /> <xs:attribute name="permission" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="shell" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="include"> <xs:complexType> <xs:attribute name="file" type="xs:string" use="required" /> <xs:attribute name="permission" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="patch" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="include"> <xs:complexType> <xs:attribute name="file" type="xs:string" use="required" /> <xs:attribute name="permission" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="unresolved-external" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="include"> <xs:complexType> <xs:attribute name="file" type="xs:string" use="required" /> <xs:attribute name="permission" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="securedTargetTypeInfo"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required" /> </xs:complexType> </xs:element> <xs:element maxOccurs="unbounded" name="trailInfo"> <xs:complexType> <xs:sequence> <xs:element name="trailType" type="xs:string" /> <xs:element minOccurs="0" name="trailLocation" type="xs:string" /> <xs:element maxOccurs="unbounded" name="className"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="srcVersion" type="xs:decimal" use="optional" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element minOccurs="0" maxOccurs="unbounded" name="eventPatch"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="order" type="xs:unsignedByte" use="required" /> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="type" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="name" type="xs:string" use="required" /> <xs:attribute name="id" type="xs:string" use="required" /> <xs:attribute name="version" type="xs:string" use="required" /> <xs:attribute name="provider-name" type="xs:string" use="required" /> <xs:attribute name="copyright" type="xs:string" use="optional" /> </xs:complexType> </xs:element> </xs:schema>
See Also:
"Staging a plugin-manifest.xml File"Example B-2 Database Table Collection Plug-in Mapper Schema
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--Existing Set of Core Fields--> <xsd:simpleType name="CoreFieldValues"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="EventTimeUTC"/> <xsd:enumeration value="UserName"/> <xsd:enumeration value="OSUserName"/> <xsd:enumeration value="CommandClass"/> <xsd:enumeration value="TargetObject"/> <xsd:enumeration value="ClientHostName"/> <xsd:enumeration value="ClientIP"/> <xsd:enumeration value="TargetOwner"/> <xsd:enumeration value="ErrorId"/> <xsd:enumeration value="ErrorMessage"/> <xsd:enumeration value="EventStatus"/> <xsd:enumeration value="EventName"/> <xsd:enumeration value="TargetType"/> </xsd:restriction> </xsd:simpleType> <!--Existing Set of Large Fields--> <xsd:simpleType name="LargeFieldValues"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="CommandText"/> <xsd:enumeration value="CommandParam"/> </xsd:restriction> </xsd:simpleType> <!-- XML Document Structure--> <xsd:element name="AVTableCollectorTemplate" > <xsd:complexType> <xsd:all> <!-- Audit table name --> <xsd:element name="TableName" type="xsd:string" minOccurs="1" maxOccurs="1"/> <!-- Database connection information --> <xsd:element name="ConnectionInfo" minOccurs="1" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <!-- Datasource class--> <xsd:element name="Driver" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- Source to AV server fields Mapping for Core, Large, Extension fields and Marker--> <xsd:element name="FieldMappingInfo" minOccurs="1" maxOccurs="1"> <xsd:complexType> <xsd:all> <!-- Core Field Mapping --> <xsd:element name="CoreFields" minOccurs="1" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="Map" minOccurs="1" maxOccurs ="13"> <xsd:complexType> <xsd:all> <xsd:element name="Name" type="xsd:string" /> <xsd:element name="MapTo" type="CoreFieldValues" /> <xsd:element name="Transformation" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="ValueTransformation" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="from" type="xsd:string" use="required"/> <xsd:attribute name="to" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:all> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- Large Field Mapping --> <xsd:element name="LargeFields" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="Map" minOccurs="0" maxOccurs="2"> <xsd:complexType> <xsd:all> <xsd:element name="Name" type="xsd:string" /> <xsd:element name="MapTo" type="LargeFieldValues" /> </xsd:all> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- List of fields to be mapped to extension fields--> <xsd:element name="ExtensionField" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="Name" type="xsd:string" minOccurs="0" maxOccurs ="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- List of fields which uniquely identify each audit record--> <xsd:element name="MarkerField" minOccurs="1" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="Name" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:all> </xsd:complexType> </xsd:element> </xsd:all> <!-- Source Type--> <xsd:attribute name="securedTargetType" type="xsd:string" use="required"/> <!-- Max source version supported by the template--> <xsd:attribute name="maxSecuredTargetVersion" type="xsd:string" use="required"/> <!-- Min source version supported by the template--> <xsd:attribute name="minSecuredTargetVersion" type="xsd:string"/> <!-- Template file version--> <xsd:attribute name="version" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> </xsd:schema>
Example B-3 XML file collection plug-in Mapper Schema
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <!--Existing Set of Core Fields--> <xsd:simpleType name="CoreFieldValues"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="EventTimeUTC"/> <xsd:enumeration value="UserName"/> <xsd:enumeration value="OSUserName"/> <xsd:enumeration value="CommandClass"/> <xsd:enumeration value="TargetObject"/> <xsd:enumeration value="ClientHostName"/> <xsd:enumeration value="ClientIP"/> <xsd:enumeration value="TargetOwner"/> <xsd:enumeration value="ErrorId"/> <xsd:enumeration value="ErrorMessage"/> <xsd:enumeration value="EventStatus"/> <xsd:enumeration value="EventName"/> <xsd:enumeration value="TargetType"/> </xsd:restriction> </xsd:simpleType> <!--Existing Set of Large Fields--> <xsd:simpleType name="LargeFieldValues"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="CommandText"/> <xsd:enumeration value="CommandParam"/> </xsd:restriction> </xsd:simpleType> <!-- XML Document Structure--> <xsd:element name="AVXMLCollectorTemplate" > <xsd:complexType> <xsd:all> <xsd:element name="HeaderInfo" minOccurs="1" maxOccurs="1"> <xsd:complexType> <xsd:all> <!-- StartTag tag contains Root element of XML Audit data file--> <xsd:element name="StartTag" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:all> </xsd:complexType> </xsd:element> <xsd:element name="RecordInfo" minOccurs="1" maxOccurs="1"> <xsd:complexType> <xsd:all> <!-- start tag of xml audit record in XML audit file--> <xsd:element name="StartTag" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:all> </xsd:complexType> </xsd:element> <!-- Source to AV server fields Mapping for Core, Large, Extension fields and Marker--> <xsd:element name="FieldMappingInfo" minOccurs="1" maxOccurs="1"> <xsd:complexType> <xsd:all> <!-- Core Field Mapping--> <xsd:element name="CoreFields" minOccurs="1" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="Map" minOccurs="1" maxOccurs ="13"> <xsd:complexType> <xsd:all> <xsd:element name="Name" type="xsd:string" /> <xsd:element name="MapTo" type="CoreFieldValues" /> <xsd:element name="TimestampPattern" type="xsd:string" minOccurs="0" maxOccurs="1" /> <xsd:element name="Transformation" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="ValueTransformation" minOccurs="1" maxOccurs="unbounded"> <xsd:complexType> <xsd:attribute name="from" type="xsd:string" use="required"/> <xsd:attribute name="to" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:all> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- Large Field Mapping --> <xsd:element name="LargeFields" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="Map" minOccurs="0" maxOccurs="2"> <xsd:complexType> <xsd:all> <xsd:element name="Name" type="xsd:string" /> <xsd:element name="MapTo" type="LargeFieldValues" /> </xsd:all> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- List of fields to be mapped to extension fields--> <xsd:element name="ExtensionField" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="Name" type="xsd:string" minOccurs="0" maxOccurs ="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> <!-- List of fields which uniquely identify each audit record--> <xsd:element name="MarkerField" minOccurs="1" maxOccurs="1"> <xsd:complexType> <xsd:sequence> <xsd:element name="Name" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:all> </xsd:complexType> </xsd:element> </xsd:all> <!-- Source Type--> <xsd:attribute name="securedTargetType" type="xsd:string" use="required"/> <!-- Max source version supported by the template--> <xsd:attribute name="maxSecuredTargetVersion" type="xsd:string" use="required"/> <!-- Min source version supported by the template--> <xsd:attribute name="minSecuredTargetVersion" type="xsd:string"/> <!-- Template file version--> <xsd:attribute name="version" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> </xsd:schema>