<?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.
 *
 ***********************************************************-->



<component loader="com.sun.star.loader.SharedLibrary"
    xmlns="http://openoffice.org/2010/uno-components">
  <implementation name="StringRepresentation">
    <service name="com.sun.star.inspection.StringRepresentation"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.ButtonNavigationHandler">
    <service name="com.sun.star.form.inspection.ButtonNavigationHandler"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.CellBindingPropertyHandler">
    <service name="com.sun.star.form.inspection.CellBindingPropertyHandler"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.EFormsPropertyHandler">
    <service name="com.sun.star.form.inspection.XMLFormsPropertyHandler"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.EditPropertyHandler">
    <service name="com.sun.star.form.inspection.EditPropertyHandler"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.EventHandler">
    <service name="com.sun.star.form.inspection.EventHandler"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.FormComponentPropertyHandler">
    <service name="com.sun.star.form.inspection.FormComponentPropertyHandler"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.FormGeometryHandler">
    <service name="com.sun.star.form.inspection.FormGeometryHandler"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.GenericPropertyHandler">
    <service name="com.sun.star.inspection.GenericPropertyHandler"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.SubmissionPropertyHandler">
    <service name="com.sun.star.form.inspection.SubmissionPropertyHandler"/>
  </implementation>
  <implementation name="com.sun.star.comp.extensions.XSDValidationPropertyHandler">
    <service name="com.sun.star.form.inspection.XSDValidationPropertyHandler"/>
  </implementation>
  <implementation name="org.openoffice.comp.extensions.DefaultFormComponentInspectorModel">
    <service name="com.sun.star.form.inspection.DefaultFormComponentInspectorModel"/>
  </implementation>
  <implementation name="org.openoffice.comp.extensions.DefaultHelpProvider">
    <service name="com.sun.star.inspection.DefaultHelpProvider"/>
  </implementation>
  <implementation name="org.openoffice.comp.extensions.DialogController">
    <service name="com.sun.star.awt.PropertyBrowserController"/>
  </implementation>
  <implementation name="org.openoffice.comp.extensions.FormController">
    <service name="com.sun.star.form.PropertyBrowserController"/>
  </implementation>
  <implementation name="org.openoffice.comp.extensions.ObjectInspector">
    <service name="com.sun.star.inspection.ObjectInspector"/>
  </implementation>
  <implementation name="org.openoffice.comp.extensions.ObjectInspectorModel">
    <service name="com.sun.star.inspection.ObjectInspectorModel"/>
  </implementation>
  <implementation name="org.openoffice.comp.form.ui.MasterDetailLinkDialog">
    <service name="com.sun.star.form.MasterDetailLinkDialog"/>
  </implementation>
  <implementation name="org.openoffice.comp.form.ui.OControlFontDialog">
    <service name="com.sun.star.form.ControlFontDialog"/>
  </implementation>
  <implementation name="org.openoffice.comp.form.ui.OTabOrderDialog">
    <service name="com.sun.star.form.ui.TabOrderDialog"/>
  </implementation>
</component>
