Oracle® Secure Enterprise Search Administrator's Guide 11g Release 1 (11.1.2.0.0) Part Number E14130-04 |
|
|
View PDF |
This appendix contains examples and schemas associated with the Oracle SES XML connector framework. This contains the following topics:
See Also:
"Overview of XML Connector Framework"The following example shows the XSD for the configuration file.
<?xml version="1.0" encoding="windows-1252"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns="http://xmlns.oracle.com/search/rsscrawlerconfig"targetNamespace="http://xmlns.oracle.com/search/rsscrawlerconfig" elementFormDefault="qualified"> <xsd:element name="rsscrawler"> <xsd:annotation> <xsd:documentation> RSS crawler configuration paramters </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="sourceName" type="xsd:string" minOccurs="0"/> <xsd:element name="feedType" default="dataFeed"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="controlFeed"/> <xsd:enumeration value="dataFeed"/> <xsd:enumeration value="directoryFeed"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="feedLocation"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:anyURI"/> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="errorFileLocation" type="xsd:string" minOccurs="0"> <xsd:annotation> <xsd:documentation> Optional. This should be the absolute path of a location to which the status feeds are uploaded. This location should be in the same computer from where data feeds are fetched. If not specified, the status feeds are uploaded to the same location as the data feeds. If HTTP is used to fetch the data feed, the value of this tag should be the HTTP URL to which the status feed can be posted. If this tag is not specified, the status feed is posted to the HTTP URL of the data feed. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="securityType" default="noSecurity" maxOccurs="1" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="identityBased"/> <xsd:enumeration value="attributeBased"/> <xsd:enumeration value="noSecurity"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="securityAttribute" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="name" type="xsd:string" use="required"/> <xsd:attribute name="grant" type="xsd:boolean" default="true"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
The follow example shows a control feed used in an XML-connector based source.
<?xml version="1.0" encoding="windows-1252" ?> <rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://xmlns.oracle.com/orarss C:\project_drive\SES Application Search\RSS Format Schema\orarss.xsd"> <channel> <title>Contacts</title> <link>http://my.company.com/rss</link> <description>The channel contains feed for contacts</description> <lastBuildDate>2006-04-03T12:20:20.00Z</lastBuildDate> <channelDesc xmlns="http://xmlns.oracle.com/orarss"> <feedType>control</feedType></channelDesc> <item> <link>file://localhost/C:\project\rss_feeds\test.xml</link> </item> <item> <link>file://localhost/C:\project\rss_feeds\test2.xml</link> </item> <item operation="control"> <link>http://my.host.com/contacts/control.xml</link></item><item> <link>file://localhost/C:\project\rss_feeds\test3.xml</link> </item> </channel> </rss>
The following example shows the XSD for the control feed.
<?xml version="1.0" encoding="windows-1252"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xsd:complexType name="descriptionType" abstract="true"/> <xsd:complexType name="channelDescType"> <xsd:complexContent> <xsd:extension base="descriptionType"> <xsd:sequence> <xsd:element name="sourceName" type="xsd:string" minOccurs="0"> <xsd:annotation> <xsd:documentation> If the business object for this channel is missing, then the channel contains information from multiple sources. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="feedType" > <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="control"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="batchId" type="xsd:string" minOccurs="0"/> <xsd:element name="itemCount" type="xsd:positiveInteger" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:simpleType name="operationType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="control"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="rssChannelType"> <xsd:sequence> <xsd:element name="title" type="xsd:string"/> <xsd:element name="link" type="xsd:anyURI"> <xsd:annotation> <xsd:documentation>same as display URL</xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="description" type="xsd:string"/> <xsd:element name="lastBuildDate" type="xsd:dateTime"> <xsd:annotation> <xsd:documentation> This is the publishing date for this channel </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:any namespace="##other" minOccurs="0"/> <xsd:element name="channelDesc" type="channelDescType" /> <xsd:element name="item" type="itemType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="itemType"> <xsd:sequence> <xsd:element name="title" type="xsd:string" minOccurs="0"> <xsd:annotation> <xsd:documentation> This is the title for the item. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="link" type="xsd:anyURI"/> <xsd:element name="description" type="xsd:string" minOccurs="0"> <xsd:annotation> <xsd:documentation> The description is ignored as far as Oracle processing is concerned </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:any namespace="##other" minOccurs="0"/> </xsd:sequence> <xsd:attribute name="operation" type="oss:operationType" /> </xsd:complexType> <xsd:element name="rss"> <xsd:annotation> <xsd:documentation>RSS control file</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="channel" type="rssChannelType"/> </xsd:sequence> <xsd:attribute name="version" type="xsd:decimal" use="required" fixed="2.0/> </xsd:complexType> </xsd:element> </xsd:schema>
The following example shows a data feed containing three documents.
<?xml version="1.0" encoding="UTF-8"?> <rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://xmlns.oracle.com/orarss C:\project_drive\SES Application Search\RSS Format Schema\orarss.xsd"> <channel> <title>Contacts</title> <link>http://my.company.com/rss</link> <description>The channel contains feed for contacts</description> <lastBuildDate>2006-04-03T12:20:20.00Z</lastBuildDate> <channelDesc xmlns="http://xmlns.oracle.com/orarss" > <feedType>full</feedType> </channelDesc> <item> <link>http://my.company.com/contacts?id=paul</link> <itemDesc xmlns="http://xmlns.oracle.com/orarss" operation="insert"> <documentMetadata> <author>Administrator</author> <accessURL>http://foo.com</accessURL> <lastModifiedDate>2009-12-12T12:22:22.00Z</lastModifiedDate> <keywords>Content Contact</keywords> <summary>This is the summary of the document.</summary> <sourceHierarchy> <path>company</path> <path>department</path> <path>group</path> </sourceHierarchy> <docAttr name="organization">Reports</docAttr> <docAttr name="country">Germany</docAttr> </documentMetadata> <documentAcl> <securityAttr name="EMPLOYEE_ID">0R9NH</securityAttr> </documentAcl> <documentInfo> <status>STATUS_OK_FOR_INDEX</status> </documentInfo> <documentContent> <contentLink contentType="text/html">http://my.company.com/reports.html</contentLink> <content contentType="text/plain">Paul Robinson, A240, Westland Drive</content> </documentContent> </itemDesc> </item> <item> <link>http://my.company.com/contacts?id=tom</link> <itemDesc xmlns="http://xmlns.oracle.com/orarss" operation="delete"/> </item> <item> <link>http://my.company.com/contacts?id=robert</link> <itemDesc xmlns="http://xmlns.oracle.com/orarss" operation="insert"> <documentMetadata> <author>Administrator</author> <accessURL>http://foo.com</accessURL> <lastModifiedDate>2009-12-12T12:22:22.00Z</lastModifiedDate> <keywords>Content Contact </keywords> <summary>This is the summary of the document</summary> <sourceHierarchy> <path>company</path> <path>department</path> <path>group</path> </sourceHierarchy> <docAttr name="organization">Sales</docAttr> <docAttr name="country">China</docAttr> </documentMetadata> <documentAcl> <securityAttr name="EMPLOYEE_ID">I23489</securityAttr> </documentAcl> <documentInfo> <status>STATUS_OK_FOR_INDEX</status> </documentInfo> <documentContent> <contentLink contentType="text/html">http://my.company.com/sales.html</contentLink > <content contentType="text/plain">Robert Mogambo, C318, Lakeside Avenue</content> </documentContent> </itemDesc> </item> </channel> </rss>
Following is the XSD for the data feed.
<?xml version="1.0" encoding="windows-1252"?> <!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Oracle XDB (Oracle XDB) --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:oss="http://xmlns.oracle.com/orarss" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://xmlns.oracle.com/orarss" elementFormDefault="qualified"> <xsd:complexType name="descriptionType" abstract="true"/> <xsd:complexType name="channelDescType"> <xsd:complexContent> <xsd:extension base="oss:descriptionType"> <xsd:sequence> <xsd:element name="sourceName" type="xsd:string" minOccurs="0"> <xsd:annotation> <xsd:documentation> The business Object for which this channel corresponds to - if missing then the channel contains information from multiple sources. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="feedType" default="incremental" maxOccurs="0" minOccurs="0"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="incremental"/> <xsd:enumeration value="full"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="batchId" type="xsd:string" minOccurs="0"/> <xsd:element name="itemCount" type="xsd:positiveInteger" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="itemType"> <xsd:sequence> <xsd:element name="title" type="xsd:string"/> <xsd:element name="link" type="xsd:anyURI"> <xsd:annotation> <xsd:documentation> Display URL of the item. This URL should be UTF-8 encoded. </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="description" type="xsd:string"/> <xsd:element name="itemDesc"> <xsd:complexType> <xsd:complexContent> <xsd:extension base="oss:itemDescType"> <xsd:attribute name="operation" type="oss:operationType" default="insert"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="rssChannelType"> <xsd:sequence> <xsd:element name="title" type="xsd:string"/> <xsd:element name="link" type="xsd:anyURI"> <xsd:annotation> <xsd:documentation> display URL </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:element name="description" type="xsd:string"/> <xsd:element name="lastBuildDate" type="xsd:dateTime"> <xsd:annotation> <xsd:documentation> This is the publishing date for this channel </xsd:documentation> </xsd:annotation> </xsd:element> <xsd:any namespace="##other" minOccurs="0"/> <xsd:element name="channelDesc" type="oss:channelDescType" /> <xsd:element name="item" maxOccurs="unbounded"> <xsd:complexType> <xsd:complexContent> <xsd:extension base="oss:itemType"/> </xsd:complexContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="infoType"> <xsd:sequence> <xsd:element name="status" type="oss:statusType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="itemDescType"> <xsd:complexContent> <xsd:extension base="oss:descriptionType"> <xsd:sequence> <xsd:element name="documentMetadata" type="oss:metadataType" minOccurs="0"/> <xsd:element name="documentAcl" type="oss:securityType" minOccurs="0"/> <xsd:element name="documentInfo" type="oss:infoType" minOccurs="0"/> <xsd:element name="documentContent" type="oss:bodyType" minOccurs="0"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="sourceHierType"> <xsd:sequence> <xsd:element name="path" type="xsd:string" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="metadataType"> <xsd:sequence> <xsd:element name="author" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/> <xsd:element name="accessURL" type="xsd:string" minOccurs="0"/> <xsd:element name="lastModifiedDate" type="xsd:dateTime" minOccurs="0"/> <xsd:element name="keywords" type="xsd:string" minOccurs="0"/> <xsd:element name="summary" type="xsd:string" minOccurs="0"/> <xsd:element name="language" type="xsd:string" minOccurs="0"/> <xsd:element name="sourceHierarchy" type="oss:sourceHierType" minOccurs="0"/> <xsd:element name="docAttr" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="oss:docAttrType"> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:complexType name="securityType"> <xsd:choice> <xsd:element name="principal" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="idType" type="oss:idAttrType" use="optional" default="user"> <xsd:annotation> <xsd:documentation> User or group. </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="format" type="xsd:string" use="required"/> <xsd:attribute name="grant" type="xsd:boolean" use="optional" default="true"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="securityAttr" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="name" type="xsd:string"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> </xsd:choice> <xsd:attribute name="ownerGuid" type="xsd:string"> <xsd:annotation> <xsd:documentation> OwnerGUID - useful if the principal includes OWNER </xsd:documentation> </xsd:annotation> </xsd:attribute> </xsd:complexType> <xsd:simpleType name="statusType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="STATUS_OK_FOR_INDEX"/> <xsd:enumeration value="STATUS_BAD_REQUEST"/> <xsd:enumeration value="STATUS_AUTH_REQUIRED"/> <xsd:enumeration value="STATUS_ACCESS_FORBIDDEN"/> <xsd:enumeration value="STATUS_NOTFOUND"/> <xsd:enumeration value="STATUS_PROXY_REQUIRED"/> <xsd:enumeration value="STATUS_REQUEST_TIMEOUT"/> <xsd:enumeration value="STATUS_SERVER_ERROR"/> <xsd:enumeration value="STATUS_BAD_GATEWAY"/> <xsd:enumeration value="STATUS_FETCH_ERROR"/> <xsd:enumeration value="STATUS_READ_TIMEOUT"/> <xsd:enumeration value="STATUS_FILTER_ERROR"/> <xsd:enumeration value="STATUS_OUT_OF_MEMORY"/> <xsd:enumeration value="STATUS_IO_EXCEPTION"/> <xsd:enumeration value="STATUS_CONNECTION_REFUSED"/> <xsd:enumeration value="STATUS_DUPLICATE_DOC"/> <xsd:enumeration value="STATUS_EMPTY_DOC"/> <xsd:enumeration value="STATUS_LOGIN_FAILED"/> <xsd:enumeration value="STATUS_OK_BUT_NO_INDEX"/> <xsd:enumeration value="STATUS_OK_CRAWLED"/> <xsd:enumeration value="STATUS_CANNOT_READ"/> <xsd:enumeration value="STATUS_DOC_SIZE_TOO_BIG"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="operationType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="insert"/> <xsd:enumeration value="replace"/> <xsd:enumeration value="delete"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="idAttrType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="user"/> <xsd:enumeration value="group"/> <xsd:enumeration value="owner"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="bodyType"> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="contentLink" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:anyURI"> <xsd:attribute name="contentType" default="text/html"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="content" minOccurs="0"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="contentType" type="xsd:string" default="text/plain"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element> <xsd:element name="xhtmlContent" minOccurs="0" maxOccurs="1"> <xsd:complexType> <xsd:complexContent> <xsd:extension base="xsd:anyType"> <xsd:attribute name="lang" type="xsd:string"/> <xsd:anyAttribute namespace="##other"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> <xsd:simpleType name="docAttrType"> <xsd:union memberTypes="xsd:dateTime xsd:decimal xsd:string"/> </xsd:simpleType> <xsd:element name="rss"> <xsd:annotation> <xsd:documentation>RSS data file</xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="channel" type="oss:rssChannelType"/> </xsd:sequence> <xsd:attribute name="version" type="xsd:decimal" use="required" fixed="2.0/> </xsd:complexType> </xsd:element> </xsd:schema>