--- 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>