Merged
authorT Dong Huynh <tdh@ecs.soton.ac.uk>
Thu, 11 Oct 2012 16:06:51 +0100
changeset 4521 b276b292cd9d
parent 4520 5f129ccacfe3 (current diff)
parent 4519 c11c8894fb3a (diff)
child 4522 03ae9f690108
Merged
--- a/xml/schema/prov.xsd	Thu Oct 11 16:05:27 2012 +0100
+++ b/xml/schema/prov.xsd	Thu Oct 11 16:06:51 2012 +0100
@@ -325,32 +325,65 @@
     <xs:attribute ref="prov:ref" use="required"/>
   </xs:complexType>
 
+  <!--
+     top-level definition of elements following the salami slice XSD design pattern
+     to encourage integration within existing non-prov XML documents.
+  -->
+
+  <!-- Component 1 elements -->
+
+  <xs:element name="entity"               type="prov:Entity"/>
+  <xs:element name="activity"             type="prov:Activity"/>
+  <xs:element name="wasGeneratedBy"       type="prov:Generation"/>
+  <xs:element name="used"                 type="prov:Usage"/>
+  <xs:element name="wasInformedBy"        type="prov:Communication"/>
+  <xs:element name="wasStartedBy"         type="prov:Start"/>
+  <xs:element name="wasEndedBy"           type="prov:End"/>
+  <xs:element name="wasInvalidatedBy"     type="prov:Invalidation"/>
+
+  <!-- Component 2 elements -->
+
+  <xs:element name="wasDerivedFrom"       type="prov:Derivation"/>
+
+  <!-- Component 3 elements -->
+
+  <xs:element name="agent"                type="prov:Agent"/>
+  <xs:element name="wasAttributedTo"      type="prov:Attribution"/>
+  <xs:element name="wasAssociatedWith"    type="prov:Association"/>
+  <xs:element name="actedOnBehalfOf"      type="prov:Delegation"/>
+  <xs:element name="wasInfluencedBy"      type="prov:Influence"/>
+  
+  <!-- Component 5 elements -->
+
+  <xs:element name="specializationOf"     type="prov:Specialization"/>
+  <xs:element name="alternateOf"          type="prov:Alternate"/>
+  <xs:element name="mentionOf"            type="prov:Mention"/>
+
+  <!-- Component 6 elements -->
+
+  <xs:element name="hadMember"            type="prov:Membership"/>
+
   <xs:group name="documentElements">
     <xs:sequence>
       <xs:choice minOccurs="0" maxOccurs="unbounded">
-        <xs:element name="entity"               type="prov:Entity"/>
-        <xs:element name="activity"             type="prov:Activity"/>
-        <xs:element name="wasGeneratedBy"       type="prov:Generation"/>
-        <xs:element name="used"                 type="prov:Usage"/>
-        <xs:element name="wasInformedBy"        type="prov:Communication"/>
-        <xs:element name="wasStartedBy"         type="prov:Start"/>
-        <xs:element name="wasEndedBy"           type="prov:End"/>
-        <xs:element name="wasInvalidatedBy"     type="prov:Invalidation"/>
-
-        <xs:element name="wasDerivedFrom"       type="prov:Derivation"/>
-
-        <xs:element name="agent"                type="prov:Agent"/>
-        <xs:element name="wasAttributedTo"      type="prov:Attribution"/>
-        <xs:element name="wasAssociatedWith"    type="prov:Association"/>
-        <xs:element name="actedOnBehalfOf"      type="prov:Delegation"/>
-        <xs:element name="wasInfluencedBy"      type="prov:Influence"/>
-        
-        <xs:element name="specializationOf"     type="prov:Specialization"/>
-        <xs:element name="alternateOf"          type="prov:Alternate"/>
-        <xs:element name="mentionOf"            type="prov:Mention"/>
-
-        <xs:element name="hadMember"   			type="prov:Membership"/>
-
+        <xs:element ref="prov:entity"/>
+        <xs:element ref="prov:activity"/>
+        <xs:element ref="prov:wasGeneratedBy"/>
+        <xs:element ref="prov:used"/>
+        <xs:element ref="prov:wasInformedBy"/>
+        <xs:element ref="prov:wasStartedBy"/>
+        <xs:element ref="prov:wasEndedBy"/>
+        <xs:element ref="prov:wasInvalidatedBy"/>
+        <xs:element ref="prov:wasDerivedFrom"/>
+        <xs:element ref="prov:agent"/>
+        <xs:element ref="prov:wasAttributedTo"/>
+        <xs:element ref="prov:wasAssociatedWith"/>
+        <xs:element ref="prov:actedOnBehalfOf"/>
+        <xs:element ref="prov:wasInfluencedBy"/>
+        <xs:element ref="prov:specializationOf"/>
+        <xs:element ref="prov:alternateOf"/>
+        <xs:element ref="prov:mentionOf"/>
+        <xs:element ref="prov:hadMember"/>
 		<xs:any namespace="##other"/>
       </xs:choice>
     </xs:sequence>