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



<!ELEMENT oor:component-schema (info?, import*, uses*, templates?, component)>
<!ATTLIST oor:component-schema
    oor:package CDATA #REQUIRED
    oor:name CDATA #REQUIRED
    oor:version NMTOKEN #IMPLIED
    xml:lang CDATA #IMPLIED
    xmlns:oor CDATA #FIXED "http://openoffice.org/2001/registry"
    xmlns:xs CDATA #FIXED "http://www.w3.org/2001/XMLSchema">

<!ELEMENT import EMPTY>
<!ATTLIST import
    oor:component CDATA #REQUIRED>

<!ELEMENT uses EMPTY>
<!ATTLIST uses
    oor:component CDATA #REQUIRED>

<!ELEMENT templates (info?, (set | group)*)>
<!ATTLIST templates>

<!ELEMENT info (deprecated?, author*, desc*, label*)>
<!ATTLIST info>

<!ELEMENT deprecated (#PCDATA)>
<!ATTLIST deprecated>

<!ELEMENT author (#PCDATA)>
<!ATTLIST author>

<!ELEMENT desc (#PCDATA)>
<!ATTLIST desc
    xml:lang CDATA #IMPLIED>

<!ELEMENT label (#PCDATA)>
<!ATTLIST label
    xml:lang CDATA #IMPLIED>

<!ELEMENT component (info?, (set | group | prop | node-ref)*)>
<!ATTLIST component>

<!ELEMENT set (info?, item*)>
<!ATTLIST set
    oor:name CDATA #REQUIRED
    oor:node-type CDATA #REQUIRED
    oor:component CDATA #IMPLIED>

<!ELEMENT item EMPTY>
<!ATTLIST item
    oor:node-type CDATA #REQUIRED
    oor:component CDATA #IMPLIED>

<!ELEMENT group (info?, (set | group | prop | node-ref)*)>
<!ATTLIST group
    oor:name CDATA #REQUIRED
    oor:extensible (false | true) #IMPLIED>

<!ELEMENT prop (info?, constraints?, value?)>
<!ATTLIST prop
    oor:name CDATA #REQUIRED
    oor:localized (false | true) #IMPLIED
    oor:type
        (oor:any | xs:boolean | xs:short | xs:int | xs:long | xs:double |
         xs:string | xs:hexBinary | oor:boolean-list | oor:short-list |
         oor:int-list | oor:long-list | oor:double-list | oor:string-list |
         oor:hexBinary-list)
        #REQUIRED
    oor:nillable (false | true) #IMPLIED>

<!ELEMENT constraints
    (enumeration*, length?, minLength?, maxLength?, minInclusive?,
     maxInclusive?, minExclusive?, maxExclusive?, whiteSpace?)>

<!ELEMENT enumeration (info?)>
<!ATTLIST enumeration
    oor:value CDATA #REQUIRED>

<!ELEMENT length (info?)>
<!ATTLIST length
    oor:value CDATA #REQUIRED>

<!ELEMENT minLength (info?)>
<!ATTLIST minLength
    oor:value CDATA #REQUIRED>

<!ELEMENT maxLength (info?)>
<!ATTLIST maxLength
    oor:value CDATA #REQUIRED>

<!ELEMENT minInclusive (info?)>
<!ATTLIST minInclusive
    oor:value CDATA #REQUIRED>

<!ELEMENT maxInclusive (info?)>
<!ATTLIST maxInclusive
    oor:value CDATA #REQUIRED>

<!ELEMENT minExclusive (info?)>
<!ATTLIST minExclusive
    oor:value CDATA #REQUIRED>

<!ELEMENT maxExclusive (info?)>
<!ATTLIST maxExclusive
    oor:value CDATA #REQUIRED>

<!ELEMENT whiteSpace (info?)>
<!ATTLIST whiteSpace
    oor:value CDATA #REQUIRED>

<!ELEMENT value (#PCDATA | it | unicode)*>
<!ATTLIST value
    oor:separator CDATA #IMPLIED>

<!ELEMENT it (#PCDATA | unicode)*>
<!ATTLIST it>

<!ELEMENT unicode EMPTY>
<!ATTLIST unicode
    oor:scalar NMTOKEN #REQUIRED>

<!ELEMENT node-ref (info?)>
<!ATTLIST node-ref
    oor:name CDATA #REQUIRED
    oor:node-type CDATA #REQUIRED
    oor:component CDATA #IMPLIED>
