--- a/xml/schema/prov.xsd Tue Sep 18 11:03:46 2012 +0100
+++ b/xml/schema/prov.xsd Tue Sep 18 09:59:50 2012 -0400
@@ -31,174 +31,124 @@
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+ <xs:group name="commonAttributes">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:value"/>
+ <xs:element ref="prov:role"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:group>
+
<!-- Component 1 -->
- <xs:element name="entity" type="prov:Entity"/>
<xs:complexType name="Entity">
- <xs:sequence>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:value" minOccurs="0" maxOccurs="1"/>
-
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
+ <xs:group ref="prov:commonAttributes"/>
<xs:attribute ref="prov:id"/>
</xs:complexType>
- <xs:element name="activity" type="prov:Activity"/>
<xs:complexType name="Activity">
<xs:sequence>
<xs:element name="startTime" type="xs:dateTime" minOccurs="0"/>
<xs:element name="endTime" type="xs:dateTime" minOccurs="0"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
-
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
-
+
+ <xs:complexType name="WasGeneratedBy">
+ <xs:sequence>
+ <xs:element name="entity" type="prov:EntityRef"/>
+ <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:group ref="prov:commonAttributes"/>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
<xs:complexType name="Used">
<xs:sequence>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="entity" type="prov:EntityRef"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="entity" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
-
- <xs:complexType name="WasGeneratedBy">
+
+ <xs:complexType name="WasInformedBy">
<xs:sequence>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
- <xs:element name="entity" type="prov:EntityRef"/>
- <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
-
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="informed" type="prov:ActivityRef"/>
+ <xs:element name="informant" type="prov:ActivityRef"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
<xs:complexType name="WasStartedBy">
<xs:sequence>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:element name="activity" type="prov:ActivityRef"/>
<xs:element name="trigger" type="prov:EntityRef" minOccurs="0"/>
<xs:element name="starter" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
<xs:complexType name="WasEndedBy">
<xs:sequence>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:element name="activity" type="prov:ActivityRef"/>
<xs:element name="trigger" type="prov:EntityRef" minOccurs="0"/>
<xs:element name="ender" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
<xs:complexType name="WasInvalidatedBy">
<xs:sequence>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:element name="entity" type="prov:EntityRef"/>
<xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
-
- <xs:complexType name="WasInformedBy">
- <xs:sequence>
- <xs:element name="informed" type="prov:ActivityRef"/>
- <xs:element name="informant" type="prov:ActivityRef"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
<!-- Component 2 -->
-
<xs:complexType name="WasDerivedFrom">
<xs:sequence>
- <xs:element name="generation" type="prov:DependencyRef" minOccurs="0"/>
- <xs:element name="usage" type="prov:DependencyRef" minOccurs="0"/>
- <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
<xs:element name="generatedEntity" type="prov:EntityRef"/>
<xs:element name="usedEntity" type="prov:EntityRef"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="WasRevisionOf">
- <xs:sequence>
- <xs:element name="generation" type="prov:DependencyRef" minOccurs="0"/>
- <xs:element name="usage" type="prov:DependencyRef" minOccurs="0"/>
- <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element name="newer" type="prov:EntityRef"/>
- <xs:element name="older" type="prov:EntityRef"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="HadPrimarySource">
- <xs:sequence>
- <xs:element name="generation" type="prov:DependencyRef" minOccurs="0"/>
- <xs:element name="usage" type="prov:DependencyRef" minOccurs="0"/>
- <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element name="derived" type="prov:EntityRef"/>
- <xs:element name="source" type="prov:EntityRef"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
+ <xs:element name="generation" type="prov:GenerationRef" minOccurs="0"/>
+ <xs:element name="usage" type="prov:UsageRef" minOccurs="0"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
<!-- Component 3 -->
- <xs:element name="agent" type="prov:Agent"/>
<xs:complexType name="Agent">
<xs:sequence>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="prov:commonAttributes"/>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="WasAttributedTo">
+ <xs:sequence>
+ <xs:element name="entity" type="prov:EntityRef"/>
+ <xs:element name="agent" type="prov:AgentRef"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -206,24 +156,9 @@
<xs:complexType name="WasAssociatedWith">
<xs:sequence>
<xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="agent" type="prov:AgentRef"/>
+ <xs:element name="agent" type="prov:AgentRef" minOccurs="0"/>
<xs:element name="plan" type="prov:EntityRef" minOccurs="0"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
-
- <xs:complexType name="WasAttributedTo">
- <xs:sequence>
- <xs:element name="entity" type="prov:EntityRef"/>
- <xs:element name="agent" type="prov:AgentRef"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -233,21 +168,16 @@
<xs:element name="delegate" type="prov:AgentRef"/>
<xs:element name="responsible" type="prov:AgentRef"/>
<xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
-
<xs:complexType name="WasInfluencedBy">
<xs:sequence>
<xs:element name="influencee" type="prov:AnyRef"/>
<xs:element name="influencer" type="prov:AnyRef"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:group ref="prov:commonAttributes"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -256,13 +186,6 @@
<!-- Component 5 -->
- <xs:complexType name="AlternateOf">
- <xs:sequence>
- <xs:element name="alternate1" type="prov:EntityRef"/>
- <xs:element name="alternate2" type="prov:EntityRef"/>
- </xs:sequence>
- </xs:complexType>
-
<xs:complexType name="SpecializationOf">
<xs:sequence>
<xs:element name="specificEntity" type="prov:EntityRef"/>
@@ -270,79 +193,33 @@
</xs:sequence>
</xs:complexType>
+ <xs:complexType name="AlternateOf">
+ <xs:sequence>
+ <xs:element name="alternate1" type="prov:EntityRef"/>
+ <xs:element name="alternate2" type="prov:EntityRef"/>
+ </xs:sequence>
+ </xs:complexType>
+
<xs:complexType name="MentionOf">
<xs:sequence>
<xs:element name="specificEntity" type="prov:EntityRef"/>
<xs:element name="generalEntity" type="prov:EntityRef"/>
- <xs:element name="bundle" type="prov:EntityRef" minOccurs="1"/>
+ <xs:element name="bundle" type="prov:EntityRef"/>
</xs:sequence>
</xs:complexType>
<!-- Component 6 -->
-<!--
- <xs:complexType name="DerivedByInsertionFrom">
- <xs:sequence>
- <xs:element name="after" type="prov:EntityRef"/>
- <xs:element name="before" type="prov:EntityRef"/>
- <xs:element name="entry" type="prov:Entry" minOccurs="1" maxOccurs="unbounded"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="DerivedByRemovalFrom">
- <xs:sequence>
- <xs:element name="after" type="prov:EntityRef"/>
- <xs:element name="before" type="prov:EntityRef"/>
- <xs:element name="key" type="xs:anySimpleType" minOccurs="1" maxOccurs="unbounded"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
--->
-
<xs:complexType name="CollectionMemberOf">
<xs:sequence>
<xs:element name="collection" type="prov:EntityRef"/>
- <xs:element name="complete" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
- <xs:element name="member" type="prov:EntityRef" minOccurs="1" maxOccurs="unbounded"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="complete" type="xs:boolean" minOccurs="0"/>
+ <xs:element name="member" type="prov:EntityRef" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
-<!--
- <xs:complexType name="DictionaryMemberOf">
- <xs:sequence>
- <xs:element name="entity" type="prov:EntityRef"/>
- <xs:element name="complete" type="xs:boolean"/>
- <xs:element name="entry" type="prov:Entry" minOccurs="1" maxOccurs="unbounded"/>
- <xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:element name="key" type="xs:anySimpleType"/>
-
- <xs:complexType name="Entry">
- <xs:sequence>
- <xs:element ref="prov:key" minOccurs="1" maxOccurs="1"/>
- <xs:element name="entity" type="prov:EntityRef" minOccurs="1" maxOccurs="1"/>
- </xs:sequence>
- </xs:complexType>
--->
-
-
<xs:complexType name="InternationalizedString">
<xs:simpleContent>
<xs:extension base="xs:string">
@@ -372,95 +249,68 @@
<xs:attribute name="ref" type="xs:QName"/>
<xs:complexType name="ActivityRef">
- <xs:attribute ref="prov:ref"/>
+ <xs:attribute ref="prov:ref" use="required" />
</xs:complexType>
<xs:complexType name="EntityRef">
- <xs:attribute ref="prov:ref"/>
+ <xs:attribute ref="prov:ref" use="required"/>
</xs:complexType>
<xs:complexType name="AgentRef">
- <xs:attribute ref="prov:ref"/>
+ <xs:attribute ref="prov:ref" use="required"/>
</xs:complexType>
-
- <xs:complexType name="DependencyRef">
- <xs:attribute ref="prov:ref"/>
+ <xs:complexType name="UsageRef">
+ <xs:attribute ref="prov:ref" use="required"/>
</xs:complexType>
-
+ <xs:complexType name="GenerationRef">
+ <xs:attribute ref="prov:ref" use="required"/>
+ </xs:complexType>
<xs:complexType name="AnyRef">
- <xs:attribute ref="prov:ref"/>
+ <xs:attribute ref="prov:ref" use="required"/>
</xs:complexType>
- <xs:complexType name="Dependencies">
+ <xs:group name="documentElements">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
-
- <xs:element name="used" type="prov:Used"/>
- <xs:element name="wasGeneratedBy" type="prov:WasGeneratedBy"/>
- <xs:element name="wasStartedBy" type="prov:WasStartedBy"/>
- <xs:element name="wasEndedBy" type="prov:WasEndedBy"/>
- <xs:element name="wasInvalidatedBy" type="prov:WasInvalidatedBy"/>
- <xs:element name="wasInformedBy" type="prov:WasInformedBy"/>
-
-
- <xs:element name="wasDerivedFrom" type="prov:WasDerivedFrom"/>
- <xs:element name="wasRevisionOf" type="prov:WasRevisionOf"/>
- <xs:element name="hadPrimarySource" type="prov:HadPrimarySource"/>
+ <xs:element name="entity" type="prov:Entity"/>
+ <xs:element name="activity" type="prov:Activity"/>
+ <xs:element name="wasGeneratedBy" type="prov:WasGeneratedBy"/>
+ <xs:element name="used" type="prov:Used"/>
+ <xs:element name="wasInformedBy" type="prov:WasInformedBy"/>
+ <xs:element name="wasStartedBy" type="prov:WasStartedBy"/>
+ <xs:element name="wasEndedBy" type="prov:WasEndedBy"/>
+ <xs:element name="wasInvalidatedBy" type="prov:WasInvalidatedBy"/>
- <xs:element name="wasAttributedTo" type="prov:WasAttributedTo"/>
- <xs:element name="wasAssociatedWith" type="prov:WasAssociatedWith"/>
- <xs:element name="actedOnBehalfOf" type="prov:ActedOnBehalfOf"/>
- <xs:element name="wasInfluencedBy" type="prov:WasInfluencedBy"/>
-
- <xs:element name="alternateOf" type="prov:AlternateOf"/>
- <xs:element name="specializationOf" type="prov:SpecializationOf"/>
- <xs:element name="mentionOf" type="prov:MentionOf"/>
+ <xs:element name="wasDerivedFrom" type="prov:WasDerivedFrom"/>
- <!--
- <xs:element name="derivedByInsertionFrom" type="prov:DerivedByInsertionFrom"/>
- <xs:element name="derivedByRemovalFrom" type="prov:DerivedByRemovalFrom"/>
- -->
+ <xs:element name="agent" type="prov:Agent"/>
+ <xs:element name="wasAttributedTo" type="prov:WasAttributedTo"/>
+ <xs:element name="wasAssociatedWith" type="prov:WasAssociatedWith"/>
+ <xs:element name="actedOnBehalfOf" type="prov:ActedOnBehalfOf"/>
+ <xs:element name="wasInfluencedBy" type="prov:WasInfluencedBy"/>
+
+ <xs:element name="specializationOf" type="prov:SpecializationOf"/>
+ <xs:element name="alternateOf" type="prov:AlternateOf"/>
+ <xs:element name="mentionOf" type="prov:MentionOf"/>
- <xs:element name="collectionMemberOf" type="prov:CollectionMemberOf"/>
-
- <!--
- <xs:element name="dictionaryMemberOf" type="prov:DictionaryMemberOf"/>
- -->
-
+ <xs:element name="collectionMemberOf" type="prov:CollectionMemberOf"/>
</xs:choice>
</xs:sequence>
- </xs:complexType>
-
-
- <!-- BUNDLES -->
-
- <xs:element name="bundle" type="prov:Bundle">
- <xs:annotation>
- <xs:documentation>A set of assertions about the provenance of things</xs:documentation>
- </xs:annotation>
- </xs:element>
-
- <!-- a wrapper element for all records, used in Bundle or NamedBundle -->
- <xs:element name="records" type="prov:Records"/>
- <xs:complexType name="Records">
+ </xs:group>
+
+ <xs:element name="document" type="prov:Document" />
+ <xs:complexType name="Document">
<xs:sequence>
- <xs:element ref="prov:activity" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:entity" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:agent" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element name="dependencies" type="prov:Dependencies" minOccurs="0"/>
+ <xs:choice maxOccurs="unbounded">
+ <xs:group ref="prov:documentElements"/>
+ <xs:element name="bundle" type="prov:Bundle"/>
+ </xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Bundle">
<xs:sequence>
- <xs:element ref="prov:records"/>
- <xs:element name="bundle" type="prov:NamedBundle" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="NamedBundle">
- <xs:sequence>
- <xs:element ref="prov:records"/>
+ <xs:group ref="prov:documentElements"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
-
+
</xs:schema>