prov-xml
authorLuc Moreau <l.moreau@ecs.soton.ac.uk>
Tue, 03 Apr 2012 21:11:33 +0100
changeset 2242 fd54e7d19835
parent 2241 ca8d6e43b7f3
child 2243 2007198a8dfe
prov-xml
xml/prov-xml.html
xml/schema/prov-20120110.xsd
xml/schema/prov.xsd
--- a/xml/prov-xml.html	Tue Apr 03 21:08:06 2012 +0100
+++ b/xml/prov-xml.html	Tue Apr 03 21:11:33 2012 +0100
@@ -446,7 +446,7 @@
 
 <div class="glossary-ref" data-ref="glossary-entity"></div>
 
-<pre class='schema' data-name='entity' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaEntity'  ></pre> 
+<pre class='schema' data-name='entity' data-include='schema/prov.xsd' data-oninclude='insertSchemaEntity'  ></pre> 
 
 
 </section> 
@@ -458,7 +458,7 @@
 
 <div class="glossary-ref" data-ref="glossary-activity"></div>
 
-<pre class='schema' data-name='entity' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaActivity'  ></pre> 
+<pre class='schema' data-name='entity' data-include='schema/prov.xsd' data-oninclude='insertSchemaActivity'  ></pre> 
 
 </section>
 
@@ -469,7 +469,7 @@
 
 <div class="glossary-ref" data-ref="glossary-generation"></div>
 
-<pre class='schema' data-name='wasGeneratedBy' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasGeneratedBy'  ></pre> 
+<pre class='schema' data-name='wasGeneratedBy' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasGeneratedBy'  ></pre> 
 
 </section>
 
@@ -479,7 +479,7 @@
 
 <div class="glossary-ref" data-ref="glossary-usage"></div>
 
-<pre class='schema' data-name='used' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaUsed'  ></pre> 
+<pre class='schema' data-name='used' data-include='schema/prov.xsd' data-oninclude='insertSchemaUsed'  ></pre> 
 
 </section>
 
@@ -489,7 +489,7 @@
 
 <div class="glossary-ref" data-ref="glossary-start"></div>
 
-<pre class='schema' data-name='wasStartedBy' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasStartedBy'  ></pre> 
+<pre class='schema' data-name='wasStartedBy' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasStartedBy'  ></pre> 
 
 </section>
 
@@ -498,7 +498,7 @@
 
 <div class="glossary-ref" data-ref="glossary-end"></div>
 
-<pre class='schema' data-name='wasEndedBy' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasEndedBy'  ></pre> 
+<pre class='schema' data-name='wasEndedBy' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasEndedBy'  ></pre> 
 
 </section>
 
@@ -507,7 +507,7 @@
 
 <div class="glossary-ref" data-ref="glossary-communication"></div>
 
-<pre class='schema' data-name='wasInformedBy' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasInformedBy'  ></pre> 
+<pre class='schema' data-name='wasInformedBy' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasInformedBy'  ></pre> 
 </section>
 
 <section id="term-wasStartedByActivity">
@@ -515,7 +515,7 @@
 
 <div class="glossary-ref" data-ref="glossary-startByActivity"></div>
 
-<pre class='schema' data-name='wasStartedByActivity' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasStartedByActivity'  ></pre> 
+<pre class='schema' data-name='wasStartedByActivity' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasStartedByActivity'  ></pre> 
 </section>
 
 
@@ -534,7 +534,7 @@
 
 <div class="glossary-ref" data-ref="glossary-agent"></div>
 
-<pre class='schema' data-name='agent' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaAgent'  ></pre> 
+<pre class='schema' data-name='agent' data-include='schema/prov.xsd' data-oninclude='insertSchemaAgent'  ></pre> 
 
 
 </section>
@@ -544,7 +544,7 @@
 
 <div class="glossary-ref" data-ref="glossary-attribution"></div>
 
-<pre class='schema' data-name='wasAttributedTo' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasAttributedTo'  ></pre> 
+<pre class='schema' data-name='wasAttributedTo' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasAttributedTo'  ></pre> 
 
 
 </section>  <!-- end attribution -->
@@ -555,7 +555,7 @@
 
 <div class="glossary-ref" data-ref="glossary-activityAssociation"></div>
 
-<pre class='schema' data-name='wasAssociatedWith' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasAssociatedWith'  ></pre> 
+<pre class='schema' data-name='wasAssociatedWith' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasAssociatedWith'  ></pre> 
 
 </section>  <!-- end wasAssociatedWith -->
 
@@ -565,7 +565,7 @@
 
 <div class="glossary-ref" data-ref="glossary-responsibility"></div>
 
-<pre class='schema' data-name='actedOnBehalfOf' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaActedOnBehalfOf'  ></pre> 
+<pre class='schema' data-name='actedOnBehalfOf' data-include='schema/prov.xsd' data-oninclude='insertSchemaActedOnBehalfOf'  ></pre> 
 
 </section>
 
@@ -592,7 +592,7 @@
 
 <div class="glossary-ref" data-ref="glossary-derivation"></div>
 
-<pre class='schema' data-name='wasDerivedFrom' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasDerivedFrom'  ></pre> 
+<pre class='schema' data-name='wasDerivedFrom' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasDerivedFrom'  ></pre> 
 
 </section>
 
@@ -601,7 +601,7 @@
 
 <p><span class="glossary-ref" data-ref="glossary-revision"></span></p>
 
-<pre class='schema' data-name='wasRevisionOf' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasRevisionOf'  ></pre> 
+<pre class='schema' data-name='wasRevisionOf' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasRevisionOf'  ></pre> 
 
 
 
@@ -614,7 +614,7 @@
 <span class="glossary-ref" data-ref="glossary-quotation"></span>
 </p>
 
-<pre class='schema' data-name='wasQuotedFrom' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaWasQuotedFrom'  ></pre> 
+<pre class='schema' data-name='wasQuotedFrom' data-include='schema/prov.xsd' data-oninclude='insertSchemaWasQuotedFrom'  ></pre> 
 
 </section>  <!-- end quotation -->
 
@@ -626,7 +626,7 @@
 <span class="glossary-ref" data-ref="glossary-original-source"></span>
 </p>
 
-<pre class='schema' data-name='hadOriginalSource' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaHadOriginalSource'  ></pre> 
+<pre class='schema' data-name='hadOriginalSource' data-include='schema/prov.xsd' data-oninclude='insertSchemaHadOriginalSource'  ></pre> 
 
 </section>  <!-- end original source -->
 
@@ -637,7 +637,7 @@
 <span class="glossary-ref" data-ref="glossary-traceability"></span>
 </p>
 
-<pre class='schema' data-name='tracedTo' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaTracedTo'  ></pre> 
+<pre class='schema' data-name='tracedTo' data-include='schema/prov.xsd' data-oninclude='insertSchemaTracedTo'  ></pre> 
 
 </section>
 
@@ -659,7 +659,7 @@
 
 <span class="glossary-ref" data-ref="glossary-specialization"></span> 
 
-<pre class='schema' data-name='specializationOf' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaSpecializationOf'  ></pre> 
+<pre class='schema' data-name='specializationOf' data-include='schema/prov.xsd' data-oninclude='insertSchemaSpecializationOf'  ></pre> 
 
 </section>
 
@@ -670,7 +670,7 @@
 
 <span class="glossary-ref" data-ref="glossary-alternate"></span>
 
-<pre class='schema' data-name='alternateOf' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaAlternateOf'  ></pre> 
+<pre class='schema' data-name='alternateOf' data-include='schema/prov.xsd' data-oninclude='insertSchemaAlternateOf'  ></pre> 
   
 </section>
 
@@ -740,7 +740,7 @@
 
 <span class="glossary-ref" data-ref="glossary-note"></span>
 
-<pre class='schema' data-name='note' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaNote'  ></pre> 
+<pre class='schema' data-name='note' data-include='schema/prov.xsd' data-oninclude='insertSchemaNote'  ></pre> 
 
    </section> 
 
@@ -749,7 +749,7 @@
 
 <span class="glossary-ref" data-ref="glossary-annotation"></span>
 
-<pre class='schema' data-name='hasAnnotation' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchemaHasAnnotation'  ></pre> 
+<pre class='schema' data-name='hasAnnotation' data-include='schema/prov.xsd' data-oninclude='insertSchemaHasAnnotation'  ></pre> 
 
 
 
@@ -797,7 +797,7 @@
       <h2>Full XML Schema</h2> 
       <p> 
 
-<pre class='schema' data-name='wasGeneratedBy' data-include='schema/prov-20120110.xsd' data-oninclude='insertSchema'></pre> 
+<pre class='schema' data-name='wasGeneratedBy' data-include='schema/prov.xsd' data-oninclude='insertSchema'></pre> 
 
       </p> 
     </section> 
--- a/xml/schema/prov-20120110.xsd	Tue Apr 03 21:08:06 2012 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,381 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!-- work in progress.
-
-     In this schema, all ids are encoded as QNames. 
-
-     Instead, a more permissive definition should be used such as CURIEs.
-
-     Note that typical implementations won't recognize CURIEs :-(
-
-  -->
-
-
-<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#"
-           xmlns:cu="http://www.w3.org/1999/xhtml/datatypes/"
-           elementFormDefault="qualified"
-           attributeFormDefault="unqualified">
-
-
-
-<!-- CURIEs  <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" />  -->
-
-
-  <!-- Component 1 -->
-  
-  <xs:element name="entity" type="prov:Entity"/>
-  <xs:complexType name="Entity">
-    <xs:sequence>
-      <xs:element ref="prov:label" minOccurs="0"/> 
-      <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="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"/> 
-      <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="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: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="WasGeneratedBy">
-    <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: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="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 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="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 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="WasInformedBy">
-    <xs:sequence>
-      <xs:element name="time"    type="xs:dateTime" minOccurs="0"/>
-      <xs:element name="effect"  type="prov:ActivityRef"/>
-      <xs:element name="cause"   type="prov:ActivityRef"/>
-      <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="WasStartedByActivity">
-    <xs:sequence>
-      <xs:element name="started" type="prov:ActivityRef"/>
-      <xs:element name="starter" type="prov:ActivityRef"/>
-      <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>
-
-
-  <!-- Component 2 -->
-  
-  <xs:element name="agent" type="prov:Agent"/>
-  <xs:complexType name="Agent">
-    <xs:sequence>
-      <xs:element ref="prov:label" minOccurs="0"/> 
-      <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="WasAssociatedWith">
-    <xs:sequence>
-      <xs:element name="activity" type="prov:ActivityRef"/>
-      <xs:element name="agent"    type="prov:AgentRef"/>
-      <xs:element name="plan"     type="prov:EntityRef" minOccurs="0"/>
-      <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: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="ActedOnBehalfOf">
-    <xs:sequence>
-      <xs:element name="subordinate" type="prov:AgentRef"/>
-      <xs:element name="responsible" type="prov:AgentRef"/>
-      <xs:element name="activity"    type="prov:ActivityRef"/>
-      <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>
-
-
-  <!-- Component 3 -->
-
-  
-  <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: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="WasRevisionOf">
-    <xs:sequence>
-      <xs:element name="newer"           type="prov:EntityRef"/>
-      <xs:element name="older"           type="prov:EntityRef"/>
-      <xs:element name="responsibility"  type="prov:AgentRef" minOccurs="0"/>
-      <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="WasQuotedFrom">
-    <xs:sequence>
-      <xs:element name="quote"        type="prov:EntityRef"/>
-      <xs:element name="original"     type="prov:EntityRef"/>
-      <xs:element name="quoterAgent"  type="prov:AgentRef" minOccurs="0"/>
-      <xs:element name="quotedAgent"  type="prov:AgentRef" minOccurs="0"/>
-      <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="HadOriginalSource">
-    <xs:sequence>
-      <xs:element name="derived"     type="prov:EntityRef"/>
-      <xs:element name="source"      type="prov:EntityRef"/>
-      <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="TracedTo">
-    <xs:sequence>
-      <xs:element name="entity"      type="prov:EntityRef"/>
-      <xs:element name="ancestor"    type="prov:EntityRef"/>
-      <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>
-
-  <!-- Component 4 -->
-
-  <xs:complexType name="AlternateOf">
-    <xs:sequence>
-      <xs:element name="entity2"   type="prov:EntityRef"/>
-      <xs:element name="entity1"   type="prov:EntityRef"/>
-    </xs:sequence>
-  </xs:complexType>
-
-  <xs:complexType name="SpecializationOf">
-    <xs:sequence>
-      <xs:element name="specializedEntity"   type="prov:EntityRef"/>
-      <xs:element name="generalEntity"   type="prov:EntityRef"/>
-    </xs:sequence>
-  </xs:complexType>
-  
-  <!-- Component 5 -->
-
-
-  <!-- Component 6 -->
-  
-  <xs:element name="note" type="prov:Note"/>
-  <xs:complexType name="Note">
-    <xs:sequence>
-      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-  </xs:complexType>
-  
-  <xs:complexType name="HasAnnotation">
-    <xs:sequence>
-      <xs:element name="thing"   type="prov:NoteRef" minOccurs="1"/> <!-- note, just a ref to anything, really -->
-      <xs:element name="note"    type="prov:NoteRef" minOccurs="1"/>
-      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-  </xs:complexType>
-
-   <!--
-       Typed literals are encoded by means
-       of xsi:type that represent the prov:datatype.
-
-       -->
-  
-  <xs:element name="label" type="xs:string"/>
-  <xs:element name="role"  type="xs:anySimpleType"/>
-  <xs:element name="type"  type="xs:anySimpleType"/>
-
-  <xs:attribute name="id"  type="xs:QName"/>
-  <xs:attribute name="ref" type="xs:QName"/>
-
-  <xs:complexType name="ActivityRef">
-    <xs:attribute ref="prov:ref"/>
-  </xs:complexType>
-  <xs:complexType name="EntityRef">
-    <xs:attribute ref="prov:ref"/>
-  </xs:complexType>
-  <xs:complexType name="AgentRef">
-    <xs:attribute ref="prov:ref"/>
-  </xs:complexType>
-  
-  <xs:complexType name="DependencyRef">
-    <xs:attribute ref="prov:ref"/>
-  </xs:complexType>
-  
-  <xs:complexType name="NoteRef">
-    <xs:attribute ref="prov:ref"/>
-  </xs:complexType>
-  
-  <xs:complexType name="Dependencies">
-    <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="wasInformedBy"        type="prov:WasInformedBy"/>
-            <xs:element name="wasStartedByActivity" type="prov:WasStartedByActivity"/>
-
-            <xs:element name="wasAttributedTo"      type="prov:WasAttributedTo"/>
-            <xs:element name="wasAssociatedWith"    type="prov:WasAssociatedWith"/>
-            <xs:element name="actedOnBehalfOf"      type="prov:ActedOnBehalfOf"/>
-
-            <xs:element name="wasDerivedFrom"       type="prov:WasDerivedFrom"/>
-            <xs:element name="wasRevisionOf"        type="prov:WasRevisionOf"/>
-            <xs:element name="wasQuotedFrom"        type="prov:WasQuotedFrom"/>
-            <xs:element name="hadOriginalSource"    type="prov:HadOriginalSource"/>
-            <xs:element name="tracedTo"             type="prov:TracedTo"/>
-
-            <xs:element name="alternateOf"          type="prov:AlternateOf"/>
-            <xs:element name="specializationOf"     type="prov:SpecializationOf"/>
-
-            <xs:element name="hasAnnotation"        type="prov:HasAnnotation"/>
-      </xs:choice>
-    </xs:sequence>
-  </xs:complexType>
-  
-  
-  <!-- BUNDLES -->
-  
-  <xs:element name="account" type="prov:Account"/>
-  <xs:complexType name="Account">
-    <xs:sequence>
-      <xs:element name="asserter" type="prov:AgentRef"  minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element ref="prov:records"  minOccurs="1" maxOccurs="1"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-  </xs:complexType>
-  
-  <xs:element name="container" type="prov:Container">
-    <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 Container or Account -->
-  <xs:element name="records" type="prov:Records"/>
-  <xs:complexType name="Records">
-    <xs:sequence>
-      <xs:element ref="prov:account"  minOccurs="0" maxOccurs="unbounded"/>
-      <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 ref="prov:note"     minOccurs="0" maxOccurs="unbounded"/>
-      <xs:element name="dependencies" type="prov:Dependencies" minOccurs="0"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-  </xs:complexType>
-  
-  <xs:complexType name="Container">
-    <xs:sequence>
-      <xs:element ref="prov:records"  minOccurs="1" maxOccurs="1"/>
-    </xs:sequence>
-    <xs:attribute ref="prov:id"/>
-    <!-- tentative, this could allow us to annotate containers ... -->
-  </xs:complexType>
-  
-  
-  
-  
-  
-  
-  
-  
-  
-</xs:schema>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/schema/prov.xsd	Tue Apr 03 21:11:33 2012 +0100
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- work in progress.
+
+     In this schema, all ids are encoded as QNames. 
+
+     Instead, a more permissive definition should be used such as CURIEs.
+
+     Note that typical implementations won't recognize CURIEs :-(
+
+  -->
+
+
+<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#"
+           xmlns:cu="http://www.w3.org/1999/xhtml/datatypes/"
+           elementFormDefault="qualified"
+           attributeFormDefault="unqualified">
+
+
+
+<!-- CURIEs  <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" />  -->
+
+
+  <!-- Component 1 -->
+  
+  <xs:element name="entity" type="prov:Entity"/>
+  <xs:complexType name="Entity">
+    <xs:sequence>
+      <xs:element ref="prov:label" minOccurs="0"/> 
+      <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="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"/> 
+      <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="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: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="WasGeneratedBy">
+    <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: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="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 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="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 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="WasInformedBy">
+    <xs:sequence>
+      <xs:element name="time"    type="xs:dateTime" minOccurs="0"/>
+      <xs:element name="effect"  type="prov:ActivityRef"/>
+      <xs:element name="cause"   type="prov:ActivityRef"/>
+      <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="WasStartedByActivity">
+    <xs:sequence>
+      <xs:element name="started" type="prov:ActivityRef"/>
+      <xs:element name="starter" type="prov:ActivityRef"/>
+      <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>
+
+
+  <!-- Component 2 -->
+  
+  <xs:element name="agent" type="prov:Agent"/>
+  <xs:complexType name="Agent">
+    <xs:sequence>
+      <xs:element ref="prov:label" minOccurs="0"/> 
+      <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="WasAssociatedWith">
+    <xs:sequence>
+      <xs:element name="activity" type="prov:ActivityRef"/>
+      <xs:element name="agent"    type="prov:AgentRef"/>
+      <xs:element name="plan"     type="prov:EntityRef" minOccurs="0"/>
+      <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: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="ActedOnBehalfOf">
+    <xs:sequence>
+      <xs:element name="subordinate" type="prov:AgentRef"/>
+      <xs:element name="responsible" type="prov:AgentRef"/>
+      <xs:element name="activity"    type="prov:ActivityRef"/>
+      <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>
+
+
+  <!-- Component 3 -->
+
+  
+  <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: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="WasRevisionOf">
+    <xs:sequence>
+      <xs:element name="newer"           type="prov:EntityRef"/>
+      <xs:element name="older"           type="prov:EntityRef"/>
+      <xs:element name="responsibility"  type="prov:AgentRef" minOccurs="0"/>
+      <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="WasQuotedFrom">
+    <xs:sequence>
+      <xs:element name="quote"        type="prov:EntityRef"/>
+      <xs:element name="original"     type="prov:EntityRef"/>
+      <xs:element name="quoterAgent"  type="prov:AgentRef" minOccurs="0"/>
+      <xs:element name="quotedAgent"  type="prov:AgentRef" minOccurs="0"/>
+      <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="HadOriginalSource">
+    <xs:sequence>
+      <xs:element name="derived"     type="prov:EntityRef"/>
+      <xs:element name="source"      type="prov:EntityRef"/>
+      <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="TracedTo">
+    <xs:sequence>
+      <xs:element name="entity"      type="prov:EntityRef"/>
+      <xs:element name="ancestor"    type="prov:EntityRef"/>
+      <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>
+
+  <!-- Component 4 -->
+
+  <xs:complexType name="AlternateOf">
+    <xs:sequence>
+      <xs:element name="entity2"   type="prov:EntityRef"/>
+      <xs:element name="entity1"   type="prov:EntityRef"/>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="SpecializationOf">
+    <xs:sequence>
+      <xs:element name="specializedEntity"   type="prov:EntityRef"/>
+      <xs:element name="generalEntity"   type="prov:EntityRef"/>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <!-- Component 5 -->
+
+
+  <!-- Component 6 -->
+  
+  <xs:element name="note" type="prov:Note"/>
+  <xs:complexType name="Note">
+    <xs:sequence>
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+  
+  <xs:complexType name="HasAnnotation">
+    <xs:sequence>
+      <xs:element name="thing"   type="prov:NoteRef" minOccurs="1"/> <!-- note, just a ref to anything, really -->
+      <xs:element name="note"    type="prov:NoteRef" minOccurs="1"/>
+      <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+
+   <!--
+       Typed literals are encoded by means
+       of xsi:type that represent the prov:datatype.
+
+       -->
+  
+  <xs:element name="label" type="xs:string"/>
+  <xs:element name="role"  type="xs:anySimpleType"/>
+  <xs:element name="type"  type="xs:anySimpleType"/>
+
+  <xs:attribute name="id"  type="xs:QName"/>
+  <xs:attribute name="ref" type="xs:QName"/>
+
+  <xs:complexType name="ActivityRef">
+    <xs:attribute ref="prov:ref"/>
+  </xs:complexType>
+  <xs:complexType name="EntityRef">
+    <xs:attribute ref="prov:ref"/>
+  </xs:complexType>
+  <xs:complexType name="AgentRef">
+    <xs:attribute ref="prov:ref"/>
+  </xs:complexType>
+  
+  <xs:complexType name="DependencyRef">
+    <xs:attribute ref="prov:ref"/>
+  </xs:complexType>
+  
+  <xs:complexType name="NoteRef">
+    <xs:attribute ref="prov:ref"/>
+  </xs:complexType>
+  
+  <xs:complexType name="Dependencies">
+    <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="wasInformedBy"        type="prov:WasInformedBy"/>
+            <xs:element name="wasStartedByActivity" type="prov:WasStartedByActivity"/>
+
+            <xs:element name="wasAttributedTo"      type="prov:WasAttributedTo"/>
+            <xs:element name="wasAssociatedWith"    type="prov:WasAssociatedWith"/>
+            <xs:element name="actedOnBehalfOf"      type="prov:ActedOnBehalfOf"/>
+
+            <xs:element name="wasDerivedFrom"       type="prov:WasDerivedFrom"/>
+            <xs:element name="wasRevisionOf"        type="prov:WasRevisionOf"/>
+            <xs:element name="wasQuotedFrom"        type="prov:WasQuotedFrom"/>
+            <xs:element name="hadOriginalSource"    type="prov:HadOriginalSource"/>
+            <xs:element name="tracedTo"             type="prov:TracedTo"/>
+
+            <xs:element name="alternateOf"          type="prov:AlternateOf"/>
+            <xs:element name="specializationOf"     type="prov:SpecializationOf"/>
+
+            <xs:element name="hasAnnotation"        type="prov:HasAnnotation"/>
+      </xs:choice>
+    </xs:sequence>
+  </xs:complexType>
+  
+  
+  <!-- BUNDLES -->
+  
+  <xs:element name="account" type="prov:Account"/>
+  <xs:complexType name="Account">
+    <xs:sequence>
+      <xs:element name="asserter" type="prov:AgentRef"  minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element ref="prov:records"  minOccurs="1" maxOccurs="1"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+  
+  <xs:element name="container" type="prov:Container">
+    <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 Container or Account -->
+  <xs:element name="records" type="prov:Records"/>
+  <xs:complexType name="Records">
+    <xs:sequence>
+      <xs:element ref="prov:account"  minOccurs="0" maxOccurs="unbounded"/>
+      <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 ref="prov:note"     minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="dependencies" type="prov:Dependencies" minOccurs="0"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+  </xs:complexType>
+  
+  <xs:complexType name="Container">
+    <xs:sequence>
+      <xs:element ref="prov:records"  minOccurs="1" maxOccurs="1"/>
+    </xs:sequence>
+    <xs:attribute ref="prov:id"/>
+    <!-- tentative, this could allow us to annotate containers ... -->
+  </xs:complexType>
+  
+  
+  
+  
+  
+  
+  
+  
+  
+</xs:schema>