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>