<?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 xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" oor:name="Scripting" oor:package="org.openoffice.Office" xml:lang="en-US">
	<info>
		<author>DF</author>
		<desc xml:lang="x-no-translate"></desc>
		<desc xml:lang="en-US">Contains the various settings needed by the Scripting Framework and its runtimes.</desc>
	</info>
	<templates>
		<group oor:name="RuntimeNode">
			<info>
			<desc xml:lang="x-no-translate"></desc>
			<desc xml:lang="en-US">Specifies the runtimes available to the Scripting Framework.</desc>
			</info>
			<prop oor:name="SupportedFileExtensions" oor:type="oor:string-list">
				<info>
				<desc xml:lang="x-no-translate"></desc>
				<desc xml:lang="en-US">Lists the file extensions that are recognized by this runtime.</desc>
				</info>
			</prop>
		</group>
	</templates>
	<component>
		<set oor:name="ScriptRuntimes" oor:node-type="RuntimeNode">
			<info>
			<desc xml:lang="x-no-translate"></desc>
			<desc xml:lang="en-US">Lists the registered Scripting Framework runtimes.</desc>
			</info>
		</set>
	</component>
</oor:component-schema>
