<?xml version="1.0" encoding="UTF-8"?>
<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->


<!DOCTYPE oor:component-data SYSTEM "../../../component-update.dtd">
<oor:component-data oor:name="Interaction" oor:package="org.openoffice" xmlns:oor="http://openoffice.org/2001/registry" xmlns:install="http://openoffice.org/2004/installation" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <node oor:name="InteractionHandlers">
    <!-- The interaction handler for SQLExceptions (and derived exceptions), implemented in the Base module.
    -->
    <node oor:name="org.openoffice.Office.Base.DatabaseInteractions" oor:op="replace">
      <node oor:name="HandledRequestTypes">
        <node oor:name="com.sun.star.sdbc.SQLException" oor:op="replace">
          <prop oor:name="Propagation" oor:type="xs:string">
            <value>named-and-derived</value>
          </prop>
        </node>
        <node oor:name="com.sun.star.sdb.ParametersRequest" oor:op="replace">
          <prop oor:name="Propagation" oor:type="xs:string">
            <value>named-and-derived</value>
          </prop>
        </node>
        <node oor:name="com.sun.star.sdb.DocumentSaveRequest" oor:op="replace">
          <prop oor:name="Propagation" oor:type="xs:string">
            <value>named-and-derived</value>
          </prop>
        </node>
      </node>
      <prop oor:name="ServiceName" oor:type="xs:string">
        <value>com.sun.star.comp.dbaccess.DatabaseInteractionHandler</value>
      </prop>
    </node>
    <node oor:name="org.openoffice.Filter.PDFExport.Interactions" oor:op="replace">
      <node oor:name="HandledRequestTypes">
        <node oor:name="com.sun.star.task.PDFExportException" oor:op="replace">
          <prop oor:name="Propagation" oor:type="xs:string">
            <value>named-and-derived</value>
          </prop>
        </node>
      </node>
      <prop oor:name="ServiceName" oor:type="xs:string">
        <value>com.sun.star.filter.pdfexport.PDFExportInteractionHandler</value>
      </prop>
    </node>
  </node>
</oor:component-data>
