You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2005/03/26 10:20:53 UTC
svn commit: r159099 - in cocoon/trunk/src/schema: cob-schema-1.0.xsd
test-block.xml
Author: reinhard
Date: Sat Mar 26 01:20:51 2005
New Revision: 159099
URL: http://svn.apache.org/viewcvs?view=rev&rev=159099
Log:
support that blocks can implement more than one interface; make it more explicit that a reference refers to an interface and not to an implementation
Modified:
cocoon/trunk/src/schema/cob-schema-1.0.xsd
cocoon/trunk/src/schema/test-block.xml
Modified: cocoon/trunk/src/schema/cob-schema-1.0.xsd
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/schema/cob-schema-1.0.xsd?view=diff&r1=159098&r2=159099
==============================================================================
--- cocoon/trunk/src/schema/cob-schema-1.0.xsd (original)
+++ cocoon/trunk/src/schema/cob-schema-1.0.xsd Sat Mar 26 01:20:51 2005
@@ -89,10 +89,10 @@
</xs:element>
<xs:element name="property">
<xs:complexType>
- <xs:sequence>
+ <xs:all>
<xs:element name="default" minOccurs="0" maxOccurs="1" type="xs:string"/>
- <xs:element name="description" minOccurs="0" maxOccurs="1" type="xs:string"/>
- </xs:sequence>
+ <xs:element name="description" minOccurs="1" maxOccurs="1" type="xs:string"/>
+ </xs:all>
<xs:attribute name="name" use="required"/>
</xs:complexType>
</xs:element>
@@ -107,7 +107,8 @@
</xs:element>
<xs:element name="requires">
<xs:complexType>
- <xs:attribute name="block" type="xs:anyURI" use="required"/>
+ <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>
</xs:element>
@@ -115,7 +116,14 @@
<!-- implements -->
<xs:element name="implements">
<xs:complexType>
- <xs:attribute name="block" type="xs:anyURI" use="required"/>
+ <xs:sequence>
+ <xs:element ref="interface" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="interface">
+ <xs:complexType>
+ <xs:attribute name="id" type="xs:anyURI" use="required"/>
</xs:complexType>
</xs:element>
Modified: cocoon/trunk/src/schema/test-block.xml
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/schema/test-block.xml?view=diff&r1=159098&r2=159099
==============================================================================
--- cocoon/trunk/src/schema/test-block.xml (original)
+++ cocoon/trunk/src/schema/test-block.xml Sat Mar 26 01:20:51 2005
@@ -17,17 +17,36 @@
<block xmlns="http://apache.org/cocoon/blocks/cob/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://apache.org/cocoon/blocks/cob/1.0 cob-schema-1.0.xsd"
- id="someidhere">
- <name>irgendein block</name>
- <description href="xxxx">yyyy</description>
- <state href="" community="committed" interfaces="unstable" implementation="unstable"/>
- <license href=""></license>
- <author></author>
- <sitemap href=""></sitemap>
- <properties>
- <property name="">
- <default></default>
- <description></description>
+ id="http://cocoon.apache.org/blocks/anyblock/1.0">
+ <name>anyblock</name>
+ <description href="http://cocoon.apache.org/blocks/anyblock/1.0">
+ A block based on the Apache Cocoon portal
+ </description>
+ <state
+ href="http://cocoon.apache.org/blocks/anyblock/1.0/state.html"
+ community="committed"
+ interfaces="unstable"
+ implementation="stable"/>
+ <license href="http://www.apache.org/licenses/">Apache License 2.0</license>
+ <author href="http://cocoon.apache.org">Apache Cocoon community</author>
+ <properties>
+ <property name="mailserver">
+ <default>localhost</default>
+ <description>The IP adress or the DNS name of a server that can send mails.</description>
</property>
+ <property name="foo">
+ <description>bar</description>
+ </property>
</properties>
+ <requirements>
+ <requires
+ interface="http://cocoon.apache.org/interface/portal/1.0"
+ name="portal"
+ default="http://cocoon.apache.org/blocks/portal/1.0.2"
+ />
+ </requirements>
+ <extends block="http://cocoon.apache.org/blocks/another-block/1.0"/>
+ <implements>
+ <interface id="http://cocoon.apache.org/interface/bla/1.0"/>
+ </implements>
</block>