blob: 75b4b23ef3f2aed2a576db7dadf6c3e18d0da568 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
* $Revision: 5655 $
*
* Copyright (c) OSGi Alliance (2005, 2008). All Rights Reserved.
*
* Licensed 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.
*/
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:app="http://www.osgi.org/xmlns/app/v1.1.0"
targetNamespace="http://www.osgi.org/xmlns/app/v1.1.0"
version="1.1.0">
<element name="descriptor" type="app:Tdescriptor">
<annotation>
<documentation xml:lang="en">
descriptor element encloses the application descriptors
provided in a document
</documentation>
</annotation>
</element>
<complexType name="Tdescriptor">
<sequence>
<element name="application" type="app:Tapplication"
minOccurs="1" maxOccurs="unbounded" />
<!-- It is non-deterministic, per W3C XML Schema 1.0: http://www.w3.org/TR/xmlschema-1/#cos-nonambig
to use namespace="##any" below. -->
<any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded" />
</sequence>
<anyAttribute />
</complexType>
<complexType name="Tapplication">
<annotation>
<documentation xml:lang="en">
describes the service dependencies of an application
</documentation>
</annotation>
<sequence>
<element name="reference" minOccurs="0"
maxOccurs="unbounded" type="app:Treference" />
<!-- It is non-deterministic, per W3C XML Schema 1.0: http://www.w3.org/TR/xmlschema-1/#cos-nonambig
to use namespace="##any" below. -->
<any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded" />
</sequence>
<attribute name="class" type="string" />
<anyAttribute />
</complexType>
<complexType name="Treference">
<sequence>
<any namespace="##any" processContents="lax" minOccurs="0"
maxOccurs="unbounded" />
</sequence>
<attribute name="name" type="NMTOKEN" use="required" />
<attribute name="interface" type="string" use="required" />
<attribute name="cardinality" default="1..1" use="optional"
type="app:Tcardinality" />
<attribute name="policy" use="optional" default="static"
type="app:Tpolicy" />
<attribute name="target" type="string" use="optional" />
<anyAttribute />
</complexType>
<simpleType name="Tcardinality">
<restriction base="string">
<enumeration value="0..1" />
<enumeration value="0..n" />
<enumeration value="1..1" />
<enumeration value="1..n" />
</restriction>
</simpleType>
<simpleType name="Tpolicy">
<restriction base="string">
<enumeration value="static" />
<enumeration value="dynamic" />
</restriction>
</simpleType>
<attribute name="must-understand" type="boolean">
<annotation>
<documentation xml:lang="en">
This attribute should be used by extensions to documents
to require that the document consumer understand the
extension.
</documentation>
</annotation>
</attribute>
</schema>