Skip Headers
Oracle® Secure Enterprise Search Administrator's Guide
11g Release 1 (11.1.2.0.0)

Part Number E14130-04
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

A XML Connector Examples and Schemas

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"

Configuration File XML Schema Definition

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> 

Control Feed Example

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> 

Control Feed XML Schema Definition

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> 

Data Feed Example

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> 

Data Feed XML Schema Definition

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>