added section for prov:other and updated inline schema to reflect prov:other updates
authorStephan Zednik <zednis@rpi.edu>
Thu, 04 Apr 2013 02:42:42 -0600
changeset 6042 9958d71b8bed
parent 6041 df2c1edaa842
child 6043 3390b59ebcf5
added section for prov:other and updated inline schema to reflect prov:other updates
xml/prov-xml.html
--- a/xml/prov-xml.html	Thu Apr 04 02:41:39 2013 -0600
+++ b/xml/prov-xml.html	Thu Apr 04 02:42:42 2013 -0600
@@ -1764,8 +1764,7 @@
 <pre class="schema-type">
 &lt;xs:complexType name="BundleConstructor"&gt;
   &lt;xs:sequence maxOccurs="unbounded"&gt;
-    &lt;xs:group ref="prov:documentElements"/&gt;
-    &lt;xs:any namespace="##other" processContents="lax" minOccurs="0"/&gt;
+    &lt;-- references to standard non-PROV attribute PROV elements --&gt;
   &lt;/xs:sequence&gt;
   &lt;xs:attribute ref="prov:id"/&gt;
 &lt;/xs:complexType&gt;
@@ -1775,9 +1774,8 @@
 <pre>
 &lt;xs:complexType name="Document"&gt;
   &lt;xs:sequence maxOccurs="unbounded"&gt;
-    &lt;xs:group ref="prov:documentElements" minOccurs="0"/&gt;
+    &lt;!-- references to standard non-PROV attribute PROV elements --&gt;
     &lt;xs:element name="bundleContent" type="prov:BundleConstructor" minOccurs="0"/&gt;
-    &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" /&gt;
   &lt;/xs:sequence&gt;
 &lt;/xs:complexType&gt;
 </pre>
@@ -2228,15 +2226,14 @@
 <pre class="schema-type">
 &lt;xs:complexType name="Document"&gt;
   &lt;xs:sequence maxOccurs="unbounded"&gt;
-    &lt;xs:group ref="prov:documentElements" minOccurs="0"/&gt;
+    &lt;!-- references to standard non-PROV attribute PROV elements --&gt;
     &lt;xs:element name="bundleContent" type="prov:BundleConstructor" minOccurs="0"/&gt;
-    &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" /&gt;
   &lt;/xs:sequence&gt;
 &lt;/xs:complexType&gt;
 </pre>
 
 <p>The element <code>prov:document</code> may only be used as the root element of a a PROV-XML document.</p>
-<pre class="schema-element" element="prov:document" schemaType="prov:Document" ignore>
+<pre>
 &lt;xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="document" type="prov:Document"/&gt;
 </pre>
 <pre class="example" title="prov:document">
@@ -2252,6 +2249,41 @@
 </pre>
 </section> <!-- end term-Document-->
 
+<section id="term-Other">
+<h4>Other</h4>
+<p>The <code>prov:other</code> element provides a place to include non-PROV XML elements inside a <code>prov:document</code> or <code>prov:bundleContent</code>.</p>
+<pre class="schema-type">
+&lt;xs:complexType name="Other"&gt;
+  &lt;xs:sequence&gt;
+    &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+  &lt;/xs:sequence&gt;
+&lt;/xs:complexType&gt;
+</pre>
+<p>The element <code>prov:other</code> may be used in a <code>prov:document</code> or a <code>prov:bundleContent</code> but may not be used inside a relation, entity, or activity element.</p>
+<pre>
+&lt;xs:element name="other" type="prov:Other"/&gt;
+</pre>
+<pre class="example" title="prov:other">
+&lt;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#"&gt;
+
+  &lt;!-- prov statements go here --&gt;
+  
+  <b>&lt;prov:other&gt;
+    &lt;ex:foo&gt;
+      &lt;ex:content&gt;bar&lt;/ex:content&gt;
+    &lt;/ex:foo&gt;
+  &lt;/prov:other&gt;</b>
+  
+  &lt;!-- more prov statements can go here --&gt;
+
+&lt;/prov:document&gt;
+</pre>
+</section> <!-- end term-Other -->
+
 </section> <!-- end structural-elements -->
 
 </section> <!-- end schema-components -->
@@ -2347,9 +2379,9 @@
            elementFormDefault="qualified"
            attributeFormDefault="unqualified"&gt;
 
-	&lt;xs:include schemaLocation="prov-core.xsd"/&gt;
-	&lt;xs:include schemaLocation="prov-dictionary.xsd"/&gt;
-	&lt;xs:include schemaLocation="prov-links.xsd"/&gt;
+  &lt;xs:include schemaLocation="prov-core.xsd"/&gt;
+  &lt;xs:include schemaLocation="prov-dictionary.xsd"/&gt;
+  &lt;xs:include schemaLocation="prov-links.xsd"/&gt;
 
 &lt;/xs:schema&gt;
 </pre>
@@ -2359,6 +2391,13 @@
 <h3>prov-core.xsd</h3>
 <pre class="prov-core-schema">
 &lt;?xml version="1.0" encoding="utf-8"?&gt;
+
+&lt;!-- 
+  In PROV-DM, all ids are qualified names, specified as prov:QualifiedName in PROV-N.
+  In this schema, all ids are instead defined as xsd:QNames. 
+  --&gt;
+
+
 &lt;xs:schema targetNamespace="http://www.w3.org/ns/prov#"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:prov="http://www.w3.org/ns/prov#"
@@ -2377,114 +2416,114 @@
   
   &lt;xs:complexType name="Entity"&gt;
     &lt;xs:sequence&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:value" minOccurs="0"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:value" minOccurs="0"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;  
 
   &lt;xs:complexType name="Activity"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="startTime" type="xs:dateTime" minOccurs="0"/&gt; 
-        &lt;xs:element name="endTime" type="xs:dateTime" minOccurs="0"/&gt;
-        &lt;!-- prov attributes --&gt; 
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="startTime" type="xs:dateTime" minOccurs="0"/&gt; 
+      &lt;xs:element name="endTime" type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;!-- prov attributes --&gt; 
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="Generation"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="entity" type="prov:IDRef"/&gt;
-        &lt;xs:element name="activity" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="entity" type="prov:IDRef"/&gt;
+      &lt;xs:element name="activity" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="Usage"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="activity" type="prov:IDRef"/&gt;
-        &lt;xs:element name="entity" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="activity" type="prov:IDRef"/&gt;
+      &lt;xs:element name="entity" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="Communication"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="informed" type="prov:IDRef"/&gt;
-        &lt;xs:element name="informant" type="prov:IDRef"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="informed" type="prov:IDRef"/&gt;
+      &lt;xs:element name="informant" type="prov:IDRef"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="Start"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="activity" type="prov:IDRef"/&gt;
-        &lt;xs:element name="trigger" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;xs:element name="starter" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="activity" type="prov:IDRef"/&gt;
+      &lt;xs:element name="trigger" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;xs:element name="starter" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="End"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="activity" type="prov:IDRef"/&gt;
-        &lt;xs:element name="trigger" type="prov:IDRef"  minOccurs="0"/&gt;
-        &lt;xs:element name="ender" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="activity" type="prov:IDRef"/&gt;
+      &lt;xs:element name="trigger" type="prov:IDRef"  minOccurs="0"/&gt;
+      &lt;xs:element name="ender" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="Invalidation"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="entity" type="prov:IDRef"/&gt;
-        &lt;xs:element name="activity" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="entity" type="prov:IDRef"/&gt;
+      &lt;xs:element name="activity" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;xs:element name="time" type="xs:dateTime" minOccurs="0"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
@@ -2493,15 +2532,15 @@
   
   &lt;xs:complexType name="Derivation"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="generatedEntity" type="prov:IDRef"/&gt;
-        &lt;xs:element name="usedEntity" type="prov:IDRef"/&gt;
-        &lt;xs:element name="activity" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;xs:element name="generation" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;xs:element name="usage" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="generatedEntity" type="prov:IDRef"/&gt;
+      &lt;xs:element name="usedEntity" type="prov:IDRef"/&gt;
+      &lt;xs:element name="activity" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;xs:element name="generation" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;xs:element name="usage" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
@@ -2531,11 +2570,11 @@
   
   &lt;xs:complexType name="Agent"&gt;
     &lt;xs:sequence&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:location" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
@@ -2563,70 +2602,97 @@
 
   &lt;xs:complexType name="Attribution"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="entity" type="prov:IDRef"/&gt;
-        &lt;xs:element name="agent" type="prov:IDRef"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="entity" type="prov:IDRef"/&gt;
+      &lt;xs:element name="agent" type="prov:IDRef"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="Association"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="activity" type="prov:IDRef"/&gt;
-        &lt;xs:element name="agent" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;xs:element name="plan" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="activity" type="prov:IDRef"/&gt;
+      &lt;xs:element name="agent" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;xs:element name="plan" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:role" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="Delegation"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="delegate" type="prov:IDRef"/&gt;
-        &lt;xs:element name="responsible" type="prov:IDRef"/&gt;
-        &lt;xs:element name="activity" type="prov:IDRef" minOccurs="0"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="delegate" type="prov:IDRef"/&gt;
+      &lt;xs:element name="responsible" type="prov:IDRef"/&gt;
+      &lt;xs:element name="activity" type="prov:IDRef" minOccurs="0"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;xs:complexType name="Influence"&gt;
     &lt;xs:sequence&gt;
-        &lt;xs:element name="influencee" type="prov:IDRef"/&gt;
-        &lt;xs:element name="influencer" type="prov:IDRef"/&gt;
-        &lt;!-- prov attributes --&gt;
-        &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element name="influencee" type="prov:IDRef"/&gt;
+      &lt;xs:element name="influencer" type="prov:IDRef"/&gt;
+      &lt;!-- prov attributes --&gt;
+      &lt;xs:element ref="prov:label" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:element ref="prov:type" minOccurs="0" maxOccurs="unbounded"/&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
 
   &lt;!-- Component 4 --&gt;
 
-  &lt;!-- Is there a way to have this still extend prov:Entity? --&gt;
-
   &lt;xs:complexType name="Bundle"&gt;
     &lt;xs:complexContent&gt;
       &lt;xs:extension base="prov:Entity"&gt;
       &lt;/xs:extension&gt;
     &lt;/xs:complexContent&gt;
   &lt;/xs:complexType&gt;
-  
+
+  &lt;!-- bundle container and allowable PROV elements --&gt;
+
   &lt;xs:complexType name="BundleConstructor"&gt;
     &lt;xs:sequence maxOccurs="unbounded"&gt;
-      &lt;xs:group ref="prov:documentElements"/&gt;
-      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:entity" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:activity" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasGeneratedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:used" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasInformedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasStartedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasEndedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasInvalidatedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasDerivedFrom" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasRevisionOf" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasQuotedFrom" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:hadPrimarySource" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:agent" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:person" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:organization" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:softwareAgent" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasAttributedTo" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasAssociatedWith" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:actedOnBehalfOf" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasInfluencedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:bundle" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:specializationOf" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:alternateOf" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:collection" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:emptyCollection" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:hadMember" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:plan" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:other" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:internalElement" minOccurs="0"/&gt;
     &lt;/xs:sequence&gt;
     &lt;xs:attribute ref="prov:id"/&gt;
   &lt;/xs:complexType&gt;
@@ -2754,56 +2820,61 @@
 
   &lt;xs:element name="plan"                 type="prov:Plan"/&gt;
 
-  &lt;!-- document elements --&gt;
-
-  &lt;xs:group name="documentElements"&gt;
-    &lt;xs:sequence&gt;
-        &lt;xs:element ref="prov:entity" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:activity" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasGeneratedBy" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:used" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasInformedBy" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasStartedBy" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasEndedBy" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasInvalidatedBy" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasDerivedFrom" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasRevisionOf" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasQuotedFrom" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:hadPrimarySource" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:agent" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:person" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:organization" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:softwareAgent" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasAttributedTo" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasAssociatedWith" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:actedOnBehalfOf" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:wasInfluencedBy" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:bundle" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:specializationOf" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:alternateOf" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:collection" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:emptyCollection" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:hadMember" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:plan" minOccurs="0" maxOccurs="unbounded"/&gt;
-        &lt;xs:element ref="prov:internalElement" minOccurs="0" maxOccurs="unbounded" /&gt;
-    &lt;/xs:sequence&gt;
-  &lt;/xs:group&gt;
+  &lt;!-- document container and allowable PROV elements --&gt;
 
   &lt;xs:element name="document" type="prov:Document" /&gt;
+
   &lt;xs:complexType name="Document"&gt;
     &lt;xs:sequence maxOccurs="unbounded"&gt;
-      &lt;xs:group ref="prov:documentElements" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:entity" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:activity" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasGeneratedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:used" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasInformedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasStartedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasEndedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasInvalidatedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasDerivedFrom" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasRevisionOf" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasQuotedFrom" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:hadPrimarySource" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:agent" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:person" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:organization" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:softwareAgent" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasAttributedTo" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasAssociatedWith" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:actedOnBehalfOf" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:wasInfluencedBy" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:bundle" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:specializationOf" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:alternateOf" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:collection" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:emptyCollection" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:hadMember" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:plan" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:other" minOccurs="0"/&gt;
+      &lt;xs:element ref="prov:internalElement" minOccurs="0"/&gt;
       &lt;xs:element name="bundleContent" type="prov:BundleConstructor" minOccurs="0"/&gt;
-      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" /&gt;
     &lt;/xs:sequence&gt;
   &lt;/xs:complexType&gt;
 
-
-  &lt;!-- abstract element used by extensions --&gt;
+  &lt;!-- abstract element used by PROV extensions --&gt;
 
   &lt;xs:element name="internalElement" abstract="true" /&gt;
 
+  &lt;!-- 'others' element used to contain non-PROV elements --&gt;
+
+  &lt;xs:element name="other" type="prov:Other"/&gt;
+
+  &lt;xs:complexType name="Other"&gt;
+    &lt;xs:sequence&gt;
+      &lt;xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/&gt;
+    &lt;/xs:sequence&gt;
+  &lt;/xs:complexType&gt;
+
 &lt;/xs:schema&gt;
+
 </pre>
 </section> <!-- end prov-core-schema -->
 
@@ -2817,17 +2888,17 @@
 	targetNamespace="http://www.w3.org/ns/prov#" xmlns:prov="http://www.w3.org/ns/prov#"
 	elementFormDefault="qualified"&gt;
 	
-	&lt;xs:include schemaLocation="prov-core.xsd" /&gt;
+  &lt;xs:include schemaLocation="prov-core.xsd" /&gt;
 	
-	&lt;xs:complexType name="Mention"&gt;
-		&lt;xs:sequence&gt;
-			&lt;xs:element name="specificEntity" type="prov:IDRef" /&gt;
-			&lt;xs:element name="generalEntity" type="prov:IDRef" /&gt;
-			&lt;xs:element name="bundle" type="prov:IDRef" /&gt;
-		&lt;/xs:sequence&gt;
-	&lt;/xs:complexType&gt;
+  &lt;xs:complexType name="Mention"&gt;
+    &lt;xs:sequence&gt;
+      &lt;xs:element name="specificEntity" type="prov:IDRef" /&gt;
+      &lt;xs:element name="generalEntity" type="prov:IDRef" /&gt;
+      &lt;xs:element name="bundle" type="prov:IDRef" /&gt;
+    &lt;/xs:sequence&gt;
+  &lt;/xs:complexType&gt;
 	
-	&lt;xs:element name="mentionOf" type="prov:Mention" substitutionGroup="prov:internalElement" /&gt;
+  &lt;xs:element name="mentionOf" type="prov:Mention" substitutionGroup="prov:internalElement" /&gt;
 	
 &lt;/xs:schema&gt;
 </pre>
@@ -2840,6 +2911,9 @@
 <section>
 <h3>Change Log Since WD Working Draft 12 March 2013</h3>
 <ul>
+<li>Updated inline schema</li>
+<li>Updated BundleConstructor and Document sections to reflect changes to schema</li>
+<li>Added Other section for prov:other element and type</li>
 <li>Updated the Status of this Document section</li>
 <li>Added a note about potential OXM issues to Schema Modularization section, referenced FAQ entry on subject.</li>
 </ul>