renamed abstractElement, changed xs:any to processContents='lax', and added bundleContent element to separate bundle entities and bundle sets of provenance statements.
--- a/examples/eg-40-xml-examples-by-term/xml/Bundle.xml Tue Feb 12 20:58:47 2013 +0000
+++ b/examples/eg-40-xml-examples-by-term/xml/Bundle.xml Wed Feb 13 17:12:45 2013 -0700
@@ -1,175 +1,175 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- based on PROV-DM's Example 39 from http://www.w3.org/TR/prov-dm/#anexample-provenance-of-provenance
- see also http://www.w3.org/TR/prov-dm/#element_bundle -->
+see also http://www.w3.org/TR/prov-dm/#element_bundle -->
<prov:document
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:prov="http://www.w3.org/ns/prov#"
- xmlns:ex="http://example.com/ns/ex#"
- xmlns:bob="http://example.com/ns/bob#"
- xmlns:alice="http://example.com/ns/alice#"
- xmlns:agg="http://example.com/ns/agg#">
-
- <!-- Let us consider two entities ex:report1 and ex:report2. -->
-
- <prov:entity prov:id="ex:report1">
- <prov:type xsi:type="xsd:QName">report</prov:type>
- <ex:version>1</ex:version>
- </prov:entity>
-
- <prov:wasGeneratedBy>
- <prov:entity prov:ref="ex:report1" />
- <prov:time>2012-05-24T10:00:01</prov:time>
- </prov:wasGeneratedBy>
-
- <prov:entity prov:id="ex:report2">
- <prov:type xsi:type="xsd:QName">report</prov:type>
- <ex:version>2</ex:version>
- </prov:entity>
-
- <prov:wasGeneratedBy>
- <prov:entity prov:ref="ex:report2" />
- <prov:time>2012-05-25T11:00:01</prov:time>
- </prov:wasGeneratedBy>
-
- <prov:wasDerivedFrom>
- <prov:generatedEntity prov:ref="ex:report2" />
- <prov:usedEntity prov:ref="ex:report1" />
- </prov:wasDerivedFrom>
-
- <!-- Let us assume that Bob observed the creation of ex:report1. A
- first bundle can be expressed. -->
-
- <prov:bundle prov:id="bob:bundle1">
-
- <prov:entity prov:id="ex:report1">
- <prov:type xsi:type="xsd:QName">report</prov:type>
- <ex:version>1</ex:version>
- </prov:entity>
-
- <prov:wasGeneratedBy>
- <prov:entity prov:ref="ex:report1"/>
- <prov:time>2012-05-24T10:00:01</prov:time>
- </prov:wasGeneratedBy>
-
- </prov:bundle>
-
- <!-- In contrast, Alice observed the creation of ex:report2 and
- its derivation from ex:report1. A separate bundle can also be
- expressed. -->
-
- <prov:bundle prov:id="alice:bundle2">
-
- <prov:entity prov:id="ex:report1"/>
-
- <prov:entity prov:id="ex:report2">
- <prov:type xsi:type="xsd:QName">report</prov:type>
- <ex:version>2</ex:version>
- </prov:entity>
-
- <prov:wasGeneratedBy>
- <prov:entity prov:ref="ex:report2"/>
- <prov:time>2012-05-25T11:00:01</prov:time>
- </prov:wasGeneratedBy>
-
- <prov:wasDerivedFrom>
- <prov:generatedEntity prov:ref="ex:report2"/>
- <prov:usedEntity prov:ref="ex:report1"/>
- </prov:wasDerivedFrom>
-
- </prov:bundle>
-
- <!-- The first
- bundle contains the descriptions corresponding to Bob observing
- the creation of ex:report1. Its provenance can be described as
- follows. -->
+ xmlns:prov="http://www.w3.org/ns/prov#"
+ xmlns:ex="http://example.com/ns/ex#"
+ xmlns:bob="http://example.com/ns/bob#"
+ xmlns:alice="http://example.com/ns/alice#"
+ xmlns:agg="http://example.com/ns/agg#">
- <prov:wasGeneratedBy>
- <prov:entity prov:ref="bob:bundle1"/>
- <prov:time>2012-05-24T10:30:00</prov:time>
- </prov:wasGeneratedBy>
-
- <prov:wasAttributedTo>
- <prov:entity prov:ref="bob:bundle1"/>
- <prov:agent prov:ref="ex:Bob"/>
- </prov:wasAttributedTo>
-
- <!-- In contrast, the second bundle is attributed to Alice
- who observed the derivation of ex:report2 from ex:report1. -->
-
- <prov:wasGeneratedBy>
- <prov:entity prov:ref="alice:bundle2"/>
- <prov:time>2012-05-25T11:15:00</prov:time>
- </prov:wasGeneratedBy>
-
- <prov:wasAttributedTo>
- <prov:entity prov:ref="alice:bundle2"/>
- <prov:agent prov:ref="ex:Alice"/>
- </prov:wasAttributedTo>
-
- <!-- Example 40 from http://www.w3.org/TR/prov-dm/#anexample-provenance-aggregation -->
-
- <!-- A provenance aggregator could merge two bundles, resulting in a
- novel bundle, whose provenance is described as follows. -->
-
- <prov:bundle prov:id="agg:bundle3">
-
- <prov:entity prov:id="ex:report1">
- <prov:type xsi:type="xsd:QName">report</prov:type>
- <ex:version>1</ex:version>
- </prov:entity>
-
- <prov:wasGeneratedBy>
- <prov:entity prov:ref="ex:report1"/>
- <prov:time>2012-05-24T10:00:01</prov:time>
- </prov:wasGeneratedBy>
+ <!-- Let us consider two entities ex:report1 and ex:report2. -->
- <prov:entity prov:id="ex:report2">
- <prov:type xsi:type="xsd:QName">report</prov:type>
- <ex:version>2</ex:version>
- </prov:entity>
-
- <prov:wasGeneratedBy>
- <prov:entity prov:ref="ex:report2"/>
- <prov:time>2012-05-25T11:00:01</prov:time>
- </prov:wasGeneratedBy>
-
- <prov:wasDerivedFrom>
- <prov:generatedEntity prov:ref="ex:report2"/>
- <prov:usedEntity prov:ref="ex:report1"/>
- </prov:wasDerivedFrom>
-
- </prov:bundle>
+ <prov:entity prov:id="ex:report1">
+ <prov:type xsi:type="xsd:QName">report</prov:type>
+ <ex:version>1</ex:version>
+ </prov:entity>
- <!-- defining the bundle entity inside the bundle entity?
- <prov:entity prov:id="agg:bundle3">
- <prov:type xsi:type="xsd:QName">prov:Bundle</prov:type>
- </prov:entity>
- -->
-
- <prov:agent prov:id="ex:aggregator01">
- <prov:type xsi:type="xsd:QName">ex:Aggregator</prov:type>
- </prov:agent>
+ <prov:wasGeneratedBy>
+ <prov:entity prov:ref="ex:report1" />
+ <prov:time>2012-05-24T10:00:01</prov:time>
+ </prov:wasGeneratedBy>
- <prov:wasAttributedTo>
- <prov:entity prov:ref="agg:bundle3"/>
- <prov:agent prov:ref="ex:aggregator01"/>
- </prov:wasAttributedTo>
+ <prov:entity prov:id="ex:report2">
+ <prov:type xsi:type="xsd:QName">report</prov:type>
+ <ex:version>2</ex:version>
+ </prov:entity>
- <prov:wasDerivedFrom>
- <prov:generatedEntity prov:ref="agg:bundle3"/>
- <prov:usedEntity prov:ref="bob:bundle1"/>
- </prov:wasDerivedFrom>
+ <prov:wasGeneratedBy>
+ <prov:entity prov:ref="ex:report2" />
+ <prov:time>2012-05-25T11:00:01</prov:time>
+ </prov:wasGeneratedBy>
- <prov:wasDerivedFrom>
- <prov:generatedEntity prov:ref="agg:bundle3"/>
- <prov:usedEntity prov:ref="alice:bundle2"/>
- </prov:wasDerivedFrom>
+ <prov:wasDerivedFrom>
+ <prov:generatedEntity prov:ref="ex:report2" />
+ <prov:usedEntity prov:ref="ex:report1" />
+ </prov:wasDerivedFrom>
- <!-- The new bundle is given a new identifier agg:bundle3 and is
- attributed to the ex:aggregator01 agent. -->
+ <!-- Let us assume that Bob observed the creation of ex:report1. A
+ first bundle can be expressed. -->
+
+ <prov:bundle prov:id="bob:bundle1"/>
+
+ <prov:bundleContent prov:id="bob:bundle1">
+
+ <prov:entity prov:id="ex:report1">
+ <prov:type xsi:type="xsd:QName">report</prov:type>
+ <ex:version>1</ex:version>
+ </prov:entity>
+
+ <prov:wasGeneratedBy>
+ <prov:entity prov:ref="ex:report1"/>
+ <prov:time>2012-05-24T10:00:01</prov:time>
+ </prov:wasGeneratedBy>
+
+ </prov:bundleContent>
+
+ <!-- In contrast, Alice observed the creation of ex:report2 and
+ its derivation from ex:report1. A separate bundle can also be
+ expressed. -->
+
+ <prov:bundle prov:id="alice:bundle2"/>
+
+ <prov:bundleContent prov:id="alice:bundle2">
+
+ <prov:entity prov:id="ex:report1"/>
+
+ <prov:entity prov:id="ex:report2">
+ <prov:type xsi:type="xsd:QName">report</prov:type>
+ <ex:version>2</ex:version>
+ </prov:entity>
+
+ <prov:wasGeneratedBy>
+ <prov:entity prov:ref="ex:report2"/>
+ <prov:time>2012-05-25T11:00:01</prov:time>
+ </prov:wasGeneratedBy>
+
+ <prov:wasDerivedFrom>
+ <prov:generatedEntity prov:ref="ex:report2"/>
+ <prov:usedEntity prov:ref="ex:report1"/>
+ </prov:wasDerivedFrom>
+
+ </prov:bundleContent>
+
+ <!-- The first
+ bundle contains the descriptions corresponding to Bob observing
+ the creation of ex:report1. Its provenance can be described as
+ follows. -->
+
+ <prov:wasGeneratedBy>
+ <prov:entity prov:ref="bob:bundle1"/>
+ <prov:time>2012-05-24T10:30:00</prov:time>
+ </prov:wasGeneratedBy>
+
+ <prov:wasAttributedTo>
+ <prov:entity prov:ref="bob:bundle1"/>
+ <prov:agent prov:ref="ex:Bob"/>
+ </prov:wasAttributedTo>
+
+ <!-- In contrast, the second bundle is attributed to Alice
+ who observed the derivation of ex:report2 from ex:report1. -->
+
+ <prov:wasGeneratedBy>
+ <prov:entity prov:ref="alice:bundle2"/>
+ <prov:time>2012-05-25T11:15:00</prov:time>
+ </prov:wasGeneratedBy>
+
+ <prov:wasAttributedTo>
+ <prov:entity prov:ref="alice:bundle2"/>
+ <prov:agent prov:ref="ex:Alice"/>
+ </prov:wasAttributedTo>
+
+ <!-- Example 40 from http://www.w3.org/TR/prov-dm/#anexample-provenance-aggregation -->
+
+ <!-- A provenance aggregator could merge two bundles, resulting in a
+ novel bundle, whose provenance is described as follows. -->
+
+ <prov:bundle prov:id="agg:bundle3"/>
+
+ <prov:bundleContent prov:id="agg:bundle3">
+
+ <prov:entity prov:id="ex:report1">
+ <prov:type xsi:type="xsd:QName">report</prov:type>
+ <ex:version>1</ex:version>
+ </prov:entity>
+
+ <prov:wasGeneratedBy>
+ <prov:entity prov:ref="ex:report1"/>
+ <prov:time>2012-05-24T10:00:01</prov:time>
+ </prov:wasGeneratedBy>
+
+ <prov:entity prov:id="ex:report2">
+ <prov:type xsi:type="xsd:QName">report</prov:type>
+ <ex:version>2</ex:version>
+ </prov:entity>
+
+ <prov:wasGeneratedBy>
+ <prov:entity prov:ref="ex:report2"/>
+ <prov:time>2012-05-25T11:00:01</prov:time>
+ </prov:wasGeneratedBy>
+
+ <prov:wasDerivedFrom>
+ <prov:generatedEntity prov:ref="ex:report2"/>
+ <prov:usedEntity prov:ref="ex:report1"/>
+ </prov:wasDerivedFrom>
+
+ </prov:bundleContent>
+
+ <prov:agent prov:id="ex:aggregator01">
+ <prov:type xsi:type="xsd:QName">ex:Aggregator</prov:type>
+ </prov:agent>
+
+ <prov:wasAttributedTo>
+ <prov:entity prov:ref="agg:bundle3"/>
+ <prov:agent prov:ref="ex:aggregator01"/>
+ </prov:wasAttributedTo>
+
+ <prov:wasDerivedFrom>
+ <prov:generatedEntity prov:ref="agg:bundle3"/>
+ <prov:usedEntity prov:ref="bob:bundle1"/>
+ </prov:wasDerivedFrom>
+
+ <prov:wasDerivedFrom>
+ <prov:generatedEntity prov:ref="agg:bundle3"/>
+ <prov:usedEntity prov:ref="alice:bundle2"/>
+ </prov:wasDerivedFrom>
+
+ <!-- The new bundle is given a new identifier agg:bundle3 and is
+ attributed to the ex:aggregator01 agent. -->
</prov:document>
--- a/xml/schema/extensions/prov-dictionary.xsd Tue Feb 12 20:58:47 2013 +0000
+++ b/xml/schema/extensions/prov-dictionary.xsd Wed Feb 13 17:12:45 2013 -0700
@@ -13,7 +13,7 @@
</xs:complexContent>
</xs:complexType>
- <xs:element name="dictionary" type="prov:Dictionary" substitutionGroup="prov:abstractElement" />
+ <xs:element name="dictionary" type="prov:Dictionary" substitutionGroup="prov:internalElement" />
<!-- Empty Dictionary -->
<xs:complexType name="EmptyDictionary">
@@ -23,7 +23,7 @@
</xs:complexContent>
</xs:complexType>
- <xs:element name="emptyDictionary" type="prov:EmptyDictionary" substitutionGroup="prov:abstractElement" />
+ <xs:element name="emptyDictionary" type="prov:EmptyDictionary" substitutionGroup="prov:internalElement" />
<!-- Key-Value Pair -->
<xs:complexType name="KeyValuePair">
@@ -34,7 +34,7 @@
</xs:complexType>
<!-- do we need to have this use the substitutionGroup? -->
- <xs:element name="keyValuePair" type="prov:KeyValuePair" substitutionGroup="prov:abstractElement"/>
+ <xs:element name="keyValuePair" type="prov:KeyValuePair" substitutionGroup="prov:internalElement"/>
<!-- Dictionary Membership -->
<xs:complexType name="DictionaryMembership">
@@ -44,7 +44,7 @@
</xs:sequence>
</xs:complexType>
- <xs:element name="hadDictionaryMember" type="prov:DictionaryMembership" substitutionGroup="prov:abstractElement"/>
+ <xs:element name="hadDictionaryMember" type="prov:DictionaryMembership" substitutionGroup="prov:internalElement"/>
<!-- Insertion -->
<xs:complexType name="Insertion">
@@ -55,7 +55,7 @@
</xs:sequence>
</xs:complexType>
- <xs:element name="derivedByInsertionFrom" type="prov:Insertion" substitutionGroup="prov:abstractElement"/>
+ <xs:element name="derivedByInsertionFrom" type="prov:Insertion" substitutionGroup="prov:internalElement"/>
<!-- Removal -->
<xs:complexType name="Removal">
@@ -66,6 +66,6 @@
</xs:sequence>
</xs:complexType>
- <xs:element name="derivedByRemovalFrom" type="prov:Removal" substitutionGroup="prov:abstractElement"/>
+ <xs:element name="derivedByRemovalFrom" type="prov:Removal" substitutionGroup="prov:internalElement"/>
</xs:schema>
--- a/xml/schema/extensions/prov-links.xsd Tue Feb 12 20:58:47 2013 +0000
+++ b/xml/schema/extensions/prov-links.xsd Wed Feb 13 17:12:45 2013 -0700
@@ -13,6 +13,6 @@
</xs:sequence>
</xs:complexType>
- <xs:element name="mentionOf" type="prov:Mention" substitutionGroup="prov:abstractElement" />
+ <xs:element name="mentionOf" type="prov:Mention" substitutionGroup="prov:internalElement" />
</xs:schema>
\ No newline at end of file
--- a/xml/schema/prov-core.xsd Tue Feb 12 20:58:47 2013 +0000
+++ b/xml/schema/prov-core.xsd Wed Feb 13 17:12:45 2013 -0700
@@ -29,7 +29,7 @@
<xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:value" minOccurs="0"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -42,7 +42,7 @@
<xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -57,7 +57,7 @@
<xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -72,7 +72,7 @@
<xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -84,7 +84,7 @@
<!-- prov attributes -->
<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:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -100,7 +100,7 @@
<xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -116,7 +116,7 @@
<xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -131,7 +131,7 @@
<xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -148,7 +148,7 @@
<!-- prov attributes -->
<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:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -182,7 +182,7 @@
<xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -215,7 +215,7 @@
<!-- prov attributes -->
<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:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -229,7 +229,7 @@
<xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -242,7 +242,7 @@
<!-- prov attributes -->
<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:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -254,7 +254,7 @@
<!-- prov attributes -->
<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:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="prov:id"/>
</xs:complexType>
@@ -266,14 +266,18 @@
<xs:complexType name="Bundle">
<xs:complexContent>
<xs:extension base="prov:Entity">
- <xs:sequence maxOccurs="unbounded">
- <xs:group ref="prov:documentElements"/>
- <!--><xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>-->
- </xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
+ <xs:complexType name="BundleConstructor">
+ <xs:sequence maxOccurs="unbounded">
+ <xs:group ref="prov:documentElements"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
<!-- Component 5 -->
<xs:complexType name="Specialization">
@@ -428,7 +432,7 @@
<xs:element ref="prov:emptyCollection" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:hadMember" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="prov:plan" minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="prov:abstractElement" minOccurs="0" maxOccurs="unbounded" />
+ <xs:element ref="prov:internalElement" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:group>
@@ -436,12 +440,13 @@
<xs:complexType name="Document">
<xs:sequence maxOccurs="unbounded">
<xs:group ref="prov:documentElements" minOccurs="0"/>
- <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="bundleContent" type="prov:BundleConstructor" minOccurs="0"/>
+ <xs:any namespace="##other" processContents="lax" minOccurs="0" />
</xs:sequence>
</xs:complexType>
<!-- abstract element used by extensions -->
- <xs:element name="abstractElement" abstract="true" />
+ <xs:element name="internalElement" abstract="true" />
</xs:schema>