<?xml version="1.0" encoding="UTF-8"?> | |
<!-- | |
Copyright 1999-2004 The Apache Software Foundation | |
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. | |
--> | |
<xs:schema targetNamespace="http://apache.org/cocoon/blocks/cob/1.0" | |
xmlns="http://apache.org/cocoon/blocks/cob/1.0" | |
xmlns:xs="http://www.w3.org/2001/XMLSchema" | |
elementFormDefault="qualified"> | |
<xs:element name="block"> | |
<xs:complexType> | |
<xs:all> | |
<xs:element name="name" type="name"/> | |
<xs:element name="description" type="href"/> | |
<xs:element name="state" type="state"/> | |
<xs:element name="license" type="href"/> | |
<xs:element name="author" type="href"/> | |
<xs:element name="sitemap" type="src" minOccurs="0"/> | |
<xs:element name="properties" type="properties" minOccurs="0"/> | |
<xs:element name="requirements" type="requirements" minOccurs="0"/> | |
<xs:element name="implements" type="implements" minOccurs="0"/> | |
<xs:element name="extends" type="extends" minOccurs="0"/> | |
</xs:all> | |
<xs:attribute name="id" type="xs:anyURI" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
<!-- general meta data --> | |
<xs:complexType name="name"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"/> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="state"> | |
<xs:attribute name="href" type="xs:anyURI" use="required"/> | |
<xs:attribute name="community" type="community" use="required"/> | |
<xs:attribute name="interfaces" type="stability" use="required"/> | |
<xs:attribute name="implementation" type="stability" use="required"/> | |
</xs:complexType> | |
<xs:simpleType name="community"> | |
<xs:restriction base="xs:string"> | |
<xs:pattern value="committed|supported|deprecated|core"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:simpleType name="stability"> | |
<xs:restriction base="xs:string"> | |
<xs:pattern value="stable|unstable"/> | |
</xs:restriction> | |
</xs:simpleType> | |
<xs:complexType name="href"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute name="href" type="xs:anyURI"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<xs:complexType name="src"> | |
<xs:simpleContent> | |
<xs:extension base="xs:string"> | |
<xs:attribute name="src" type="xs:string" use="required"/> | |
</xs:extension> | |
</xs:simpleContent> | |
</xs:complexType> | |
<!-- properties --> | |
<xs:complexType name="properties"> | |
<xs:sequence> | |
<xs:element name="property" type="property" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="property"> | |
<xs:all> | |
<xs:element name="default" minOccurs="0" maxOccurs="1" type="xs:string"/> | |
<xs:element name="description" minOccurs="1" maxOccurs="1" type="xs:string"/> | |
</xs:all> | |
<xs:attribute name="name" use="required"/> | |
</xs:complexType> | |
<!-- requirements --> | |
<xs:complexType name="requirements"> | |
<xs:sequence> | |
<xs:element name="requires" type="requires" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="requires"> | |
<xs:attribute name="interface" type="xs:anyURI" use="required"/> | |
<xs:attribute name="default" type="xs:anyURI" use="optional"/> | |
<xs:attribute name="name" type="xs:string" use="required"/> | |
</xs:complexType> | |
<!-- implements --> | |
<xs:complexType name="implements"> | |
<xs:sequence> | |
<xs:element name="interface" type="interface" maxOccurs="unbounded"/> | |
</xs:sequence> | |
</xs:complexType> | |
<xs:complexType name="interface"> | |
<xs:attribute name="id" type="xs:anyURI" use="required"/> | |
</xs:complexType> | |
<!-- implements --> | |
<xs:complexType name="extends"> | |
<xs:attribute name="block" type="xs:anyURI" use="required"/> | |
</xs:complexType> | |
</xs:schema> |