<?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-schema SYSTEM "../../../../component-schema.dtd">
<oor:component-schema oor:package="org.openoffice.Office"
                      oor:name="TabBrowse"
                      xmlns:oor="http://openoffice.org/2001/registry"
                      xmlns:xs="http://www.w3.org/2001/XMLSchema"
                      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                      xml:lang="en-US">
    <info>
		<author>AS</author>
		<desc>Contain all needed properties for the tabbed document interface of OOo.</desc>
	</info>

	<templates>
	</templates>

	<component>

        <group oor:name="TaskCreatorService">
            <info>
        		<desc>The TaskCreatorService is used to create new document windows.
                      It must be replaced if the logic behind creation of such windows should be changed.</desc>
        	</info>
            <prop oor:name="ImplementationName" oor:type="xs:string">
                <info>
            		<desc>Because there can exists more then one implementations of such TaskCreatorService,
                          the actual one must be specified with it's UNO implementation name.
                          Otherwise it's not guaranteed, which implementation is really used at runtime.</desc>
            	</info>
            </prop>
        </group>

	</component>

</oor:component-schema>
