--- a/examples/eg-40-xml-examples-by-term/xml/Alternate_43.xml Sun Jan 20 11:38:03 2013 -0500
+++ b/examples/eg-40-xml-examples-by-term/xml/Alternate_43.xml Wed Jan 23 13:04:02 2013 -0700
@@ -12,7 +12,6 @@
<prov:entity prov:id="bbc:science-environment-17526723">
<prov:type xsi:type="xsd:string">a news item for desktop</prov:type>
</prov:entity>
-
<prov:entity prov:id="bbcmobile:science-environment-17526723">
<prov:type xsi:type="xsd:string">a news item for mobile devices</prov:type>
</prov:entity>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/schema/extensions/prov-dictionary.xsd Wed Jan 23 13:04:02 2013 -0700
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/ns/prov#" xmlns:prov="http://www.w3.org/ns/prov#"
+ elementFormDefault="qualified">
+
+ <xs:include schemaLocation="../prov-core.xsd" />
+
+ <xs:complexType name="Dictionary">
+ <xs:complexContent>
+ <xs:extension base="prov:Collection">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="DictionaryMembership">
+ <xs:sequence>
+ <xs:element name="dictionary" type="prov:IDRef" />
+ <xs:element name="member" type="prov:IDRef" />
+ <xs:element name="key" type="xs:string" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="dictionary" type="prov:Dictionary" substitutionGroup="prov:abstractElement" />
+
+</xs:schema>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/schema/extensions/prov-links.xsd Wed Jan 23 13:04:02 2013 -0700
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.w3.org/ns/prov#" xmlns:prov="http://www.w3.org/ns/prov#"
+ elementFormDefault="qualified">
+
+ <xs:include schemaLocation="../prov-core.xsd" />
+
+ <xs:complexType name="Mention">
+ <xs:sequence>
+ <xs:element name="specificEntity" type="prov:IDRef" />
+ <xs:element name="generalEntity" type="prov:IDRef" />
+ <xs:element name="bundle" type="prov:IDRef" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="mentionOf" type="prov:Mention" substitutionGroup="prov:abstractElement" />
+
+</xs:schema>
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/xml/schema/prov-core.xsd Wed Jan 23 13:04:02 2013 -0700
@@ -0,0 +1,464 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ 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.
+ -->
+
+
+<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/"
+ xmlns:xml="http://www.w3.org/XML/1998/namespace"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified">
+
+
+
+ <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" />
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ <!-- Component 1 -->
+
+ <xs:complexType name="Entity">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:value"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <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:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Generation">
+ <xs:sequence>
+ <xs:element name="entity" type="prov:IDRef"/>
+ <xs:element name="activity" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Usage">
+ <xs:sequence>
+ <xs:element name="activity" type="prov:IDRef"/>
+ <xs:element name="entity" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Communication">
+ <xs:sequence>
+ <xs:element name="informed" type="prov:IDRef"/>
+ <xs:element name="informant" type="prov:IDRef"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Start">
+ <xs:sequence>
+ <xs:element name="activity" type="prov:IDRef"/>
+ <xs:element name="trigger" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="starter" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="End">
+ <xs:sequence>
+ <xs:element name="activity" type="prov:IDRef"/>
+ <xs:element name="trigger" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="ender" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Invalidation">
+ <xs:sequence>
+ <xs:element name="entity" type="prov:IDRef"/>
+ <xs:element name="activity" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <!-- Component 2 -->
+
+ <xs:complexType name="Derivation">
+ <xs:sequence>
+ <xs:element name="generatedEntity" type="prov:IDRef"/>
+ <xs:element name="usedEntity" type="prov:IDRef"/>
+ <xs:element name="activity" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="generation" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="usage" type="prov:IDRef" minOccurs="0"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Revision">
+ <xs:complexContent>
+ <xs:extension base="prov:Derivation">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Quotation">
+ <xs:complexContent>
+ <xs:extension base="prov:Derivation">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="PrimarySource">
+ <xs:complexContent>
+ <xs:extension base="prov:Derivation">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Component 3 -->
+
+ <xs:complexType name="Agent">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:location"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Person">
+ <xs:complexContent>
+ <xs:extension base="prov:Agent">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Organization">
+ <xs:complexContent>
+ <xs:extension base="prov:Agent">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="SoftwareAgent">
+ <xs:complexContent>
+ <xs:extension base="prov:Agent">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Attribution">
+ <xs:sequence>
+ <xs:element name="entity" type="prov:IDRef"/>
+ <xs:element name="agent" type="prov:IDRef"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Association">
+ <xs:sequence>
+ <xs:element name="activity" type="prov:IDRef"/>
+ <xs:element name="agent" type="prov:IDRef" minOccurs="0"/>
+ <xs:element name="plan" type="prov:IDRef" minOccurs="0"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:role"/>
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Delegation">
+ <xs:sequence>
+ <xs:element name="delegate" type="prov:IDRef"/>
+ <xs:element name="responsible" type="prov:IDRef"/>
+ <xs:element name="activity" type="prov:IDRef" minOccurs="0"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <xs:complexType name="Influence">
+ <xs:sequence>
+ <xs:element name="influencee" type="prov:IDRef"/>
+ <xs:element name="influencer" type="prov:IDRef"/>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:label"/>
+ <xs:element ref="prov:type"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute ref="prov:id"/>
+ </xs:complexType>
+
+ <!-- Component 4 -->
+
+ <xs:complexType name="Bundle">
+ <xs:complexContent>
+ <xs:extension base="prov:Entity">
+ <xs:sequence>
+ <xs:group ref="prov:documentElements"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <!-- Component 5 -->
+
+ <xs:complexType name="Specialization">
+ <xs:sequence>
+ <xs:element name="specificEntity" type="prov:IDRef"/>
+ <xs:element name="generalEntity" type="prov:IDRef"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Alternate">
+ <xs:sequence>
+ <xs:element name="alternate1" type="prov:IDRef"/>
+ <xs:element name="alternate2" type="prov:IDRef"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- Component 6 -->
+
+ <xs:complexType name="Collection">
+ <xs:complexContent>
+ <xs:extension base="prov:Entity">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="EmptyCollection">
+ <xs:complexContent>
+ <xs:extension base="prov:Collection">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="Membership">
+ <xs:sequence>
+ <xs:element name="collection" type="prov:IDRef"/>
+ <xs:element name="entity" type="prov:IDRef" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="Plan">
+ <xs:complexContent>
+ <xs:extension base="prov:Entity">
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="InternationalizedString">
+ <xs:simpleContent>
+ <xs:extension base="xs:string">
+ <xs:attribute ref="xml:lang" use="optional"/>
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+
+ <!--
+ Typed literals are encoded by means
+ of xsi:type that represent the prov:datatype.
+
+ -->
+
+ <xs:element name="label" type="prov:InternationalizedString"/>
+ <xs:element name="role" type="xs:anySimpleType"/>
+ <xs:element name="type" type="xs:anySimpleType"/>
+ <xs:element name="location" type="xs:anySimpleType"/>
+ <xs:element name="value" type="xs:anySimpleType"/>
+
+ <xs:attribute name="id" type="xs:anyURI"/>
+ <xs:attribute name="ref" type="xs:anyURI"/>
+
+ <xs:complexType name="IDRef">
+ <xs:attribute ref="prov:ref" use="required" />
+ </xs:complexType>
+
+ <!--
+ top-level definition of elements following the salami slice XSD design pattern
+ to encourage integration within existing non-prov XML documents.
+ -->
+
+ <!-- Component 1 elements -->
+
+ <xs:element name="entity" type="prov:Entity"/>
+ <xs:element name="activity" type="prov:Activity"/>
+ <xs:element name="wasGeneratedBy" type="prov:Generation"/>
+ <xs:element name="used" type="prov:Usage"/>
+ <xs:element name="wasInformedBy" type="prov:Communication"/>
+ <xs:element name="wasStartedBy" type="prov:Start"/>
+ <xs:element name="wasEndedBy" type="prov:End"/>
+ <xs:element name="wasInvalidatedBy" type="prov:Invalidation"/>
+
+ <!-- Component 2 elements -->
+
+ <xs:element name="wasDerivedFrom" type="prov:Derivation"/>
+ <xs:element name="wasRevisionOf" type="prov:Revision"/>
+ <xs:element name="wasQuotedFrom" type="prov:Quotation"/>
+ <xs:element name="hadPrimarySource" type="prov:PrimarySource"/>
+
+ <!-- Component 3 elements -->
+
+ <xs:element name="agent" type="prov:Agent"/>
+ <xs:element name="person" type="prov:Person"/>
+ <xs:element name="organization" type="prov:Organization"/>
+ <xs:element name="softwareAgent" type="prov:SoftwareAgent"/>
+ <xs:element name="wasAttributedTo" type="prov:Attribution"/>
+ <xs:element name="wasAssociatedWith" type="prov:Association"/>
+ <xs:element name="actedOnBehalfOf" type="prov:Delegation"/>
+ <xs:element name="wasInfluencedBy" type="prov:Influence"/>
+
+ <!-- Component 5 elements -->
+
+ <xs:element name="bundle" type="prov:Bundle"/>
+ <xs:element name="specializationOf" type="prov:Specialization"/>
+ <xs:element name="alternateOf" type="prov:Alternate"/>
+
+ <!-- Component 6 elements -->
+
+ <xs:element name="hadMember" type="prov:Membership"/>
+ <xs:element name="collection" type="prov:Collection"/>
+ <xs:element name="emptyCollection" type="prov:EmptyCollection"/>
+
+ <!-- Component 7 elements -->
+
+ <xs:element name="plan" type="prov:Plan"/>
+
+ <!-- document elements -->
+
+ <xs:group name="documentElements">
+ <xs:sequence>
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
+ <xs:element ref="prov:entity"/>
+ <xs:element ref="prov:activity"/>
+ <xs:element ref="prov:wasGeneratedBy"/>
+ <xs:element ref="prov:used"/>
+ <xs:element ref="prov:wasInformedBy"/>
+ <xs:element ref="prov:wasStartedBy"/>
+ <xs:element ref="prov:wasEndedBy"/>
+ <xs:element ref="prov:wasInvalidatedBy"/>
+ <xs:element ref="prov:wasDerivedFrom"/>
+ <xs:element ref="prov:wasRevisionOf"/>
+ <xs:element ref="prov:wasQuotedFrom"/>
+ <xs:element ref="prov:hadPrimarySource"/>
+ <xs:element ref="prov:agent"/>
+ <xs:element ref="prov:person"/>
+ <xs:element ref="prov:organization"/>
+ <xs:element ref="prov:softwareAgent"/>
+ <xs:element ref="prov:wasAttributedTo"/>
+ <xs:element ref="prov:wasAssociatedWith"/>
+ <xs:element ref="prov:actedOnBehalfOf"/>
+ <xs:element ref="prov:wasInfluencedBy"/>
+ <xs:element ref="prov:bundle"/>
+ <xs:element ref="prov:specializationOf"/>
+ <xs:element ref="prov:alternateOf"/>
+ <xs:element ref="prov:collection"/>
+ <xs:element ref="prov:emptyCollection"/>
+ <xs:element ref="prov:hadMember"/>
+ <xs:element ref="prov:plan"/>
+ <xs:any namespace="##other"/>
+ </xs:choice>
+ <xs:element ref="prov:abstractElement" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:group>
+
+ <xs:element name="document" type="prov:Document" />
+ <xs:complexType name="Document">
+ <xs:sequence>
+ <xs:choice maxOccurs="unbounded">
+ <xs:group ref="prov:documentElements"/>
+ <xs:element ref="prov:bundle"/>
+ </xs:choice>
+ </xs:sequence>
+ </xs:complexType>
+
+ <!-- abstract element used by extensions -->
+
+ <xs:element name="abstractElement" abstract="true" />
+
+</xs:schema>
--- a/xml/schema/prov.alt.xsd Sun Jan 20 11:38:03 2013 -0500
+++ b/xml/schema/prov.alt.xsd Wed Jan 23 13:04:02 2013 -0700
@@ -1,19 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
- *warning*
- transformation of the opm opmx schema into prov compatible.
- purely tentative at this stage.
-
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.
-
-
- ISSUES to tackle:
- - How do we support internationalization?
- There is explicit support for internationalization for label.
- How can we support xml:lang for any string, as per prov-dm?
-
-->
@@ -48,8 +37,8 @@
<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 name="startTime" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="endTime" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:label"/>
@@ -62,9 +51,9 @@
<xs:complexType name="Generation">
<xs:sequence>
- <xs:element name="entity" type="prov:EntityRef"/>
+ <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:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -79,8 +68,8 @@
<xs:complexType name="Usage">
<xs:sequence>
<xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="entity" type="prov:EntityRef" minOccurs="0"/>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="entity" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -94,7 +83,7 @@
<xs:complexType name="Communication">
<xs:sequence>
- <xs:element name="informed" type="prov:ActivityRef"/>
+ <xs:element name="informed" type="prov:ActivityRef"/>
<xs:element name="informant" type="prov:ActivityRef"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
@@ -108,9 +97,9 @@
<xs:complexType name="Start">
<xs:sequence>
<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 name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="trigger" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="starter" type="prov:ActivityRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -125,9 +114,9 @@
<xs:complexType name="End">
<xs:sequence>
<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 name="time" type="xs:dateTime" minOccurs="0"/>
+ <xs:element name="trigger" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="ender" type="prov:ActivityRef" minOccurs="0"/>
+ <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -141,9 +130,9 @@
<xs:complexType name="Invalidation">
<xs:sequence>
- <xs:element name="entity" type="prov:EntityRef"/>
+ <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:element name="time" type="xs:dateTime" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:location"/>
<xs:element ref="prov:role"/>
@@ -159,11 +148,11 @@
<xs:complexType name="Derivation">
<xs:sequence>
- <xs:element name="generatedEntity" type="prov:EntityRef"/>
- <xs:element name="usedEntity" type="prov:EntityRef"/>
- <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:element name="generatedEntity" type="prov:EntityRef"/>
+ <xs:element name="usedEntity" type="prov:EntityRef"/>
+ <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:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
<xs:element ref="prov:type"/>
@@ -176,7 +165,6 @@
<xs:complexType name="Revision">
<xs:complexContent>
<xs:extension base="prov:Derivation">
- <!-- add any additional properties here -->
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -184,7 +172,6 @@
<xs:complexType name="Quotation">
<xs:complexContent>
<xs:extension base="prov:Derivation">
- <!-- add any additional properties here -->
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -192,7 +179,6 @@
<xs:complexType name="PrimarySource">
<xs:complexContent>
<xs:extension base="prov:Derivation">
- <!-- add any additional properties here -->
</xs:extension>
</xs:complexContent>
</xs:complexType>
@@ -235,7 +221,7 @@
<xs:complexType name="Attribution">
<xs:sequence>
<xs:element name="entity" type="prov:EntityRef"/>
- <xs:element name="agent" type="prov:AgentRef"/>
+ <xs:element name="agent" type="prov:AgentRef"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
<xs:element ref="prov:type"/>
@@ -248,8 +234,8 @@
<xs:complexType name="Association">
<xs:sequence>
<xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="agent" type="prov:AgentRef" minOccurs="0"/>
- <xs:element name="plan" type="prov:EntityRef" minOccurs="0"/>
+ <xs:element name="agent" type="prov:AgentRef" minOccurs="0"/>
+ <xs:element name="plan" type="prov:PlanRef" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:role"/>
<xs:element ref="prov:label"/>
@@ -264,7 +250,7 @@
<xs:sequence>
<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 name="activity" type="prov:ActivityRef" minOccurs="0"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
<xs:element ref="prov:type"/>
@@ -276,8 +262,8 @@
<xs:complexType name="Influence">
<xs:sequence>
- <xs:element name="influencee" type="prov:AnyRef"/>
- <xs:element name="influencer" type="prov:AnyRef"/>
+ <xs:element name="influencee" type="prov:AnyRef"/>
+ <xs:element name="influencer" type="prov:AnyRef"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="prov:label"/>
<xs:element ref="prov:type"/>
@@ -300,15 +286,15 @@
<xs:complexType name="Specialization">
<xs:sequence>
- <xs:element name="specificEntity" type="prov:EntityRef"/>
- <xs:element name="generalEntity" type="prov:EntityRef"/>
+ <xs:element name="specificEntity" type="prov:EntityRef"/>
+ <xs:element name="generalEntity" type="prov:EntityRef"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Alternate">
<xs:sequence>
- <xs:element name="alternate1" type="prov:EntityRef"/>
- <xs:element name="alternate2" type="prov:EntityRef"/>
+ <xs:element name="alternate1" type="prov:EntityRef"/>
+ <xs:element name="alternate2" type="prov:EntityRef"/>
</xs:sequence>
</xs:complexType>
@@ -330,8 +316,8 @@
<xs:complexType name="Membership">
<xs:sequence>
- <xs:element name="collection" type="prov:EntityRef"/>
- <xs:element name="entity" type="prov:EntityRef" maxOccurs="unbounded"/>
+ <xs:element name="collection" type="prov:CollectionRef"/>
+ <xs:element name="entity" type="prov:EntityRef" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
@@ -357,11 +343,11 @@
-->
- <xs:element name="label" type="prov:InternationalizedString"/>
- <xs:element name="role" type="xs:anySimpleType"/>
- <xs:element name="type" type="xs:anySimpleType"/>
+ <xs:element name="label" type="prov:InternationalizedString"/>
+ <xs:element name="role" type="xs:anySimpleType"/>
+ <xs:element name="type" type="xs:anySimpleType"/>
<xs:element name="location" type="xs:anySimpleType"/>
- <xs:element name="value" type="xs:anySimpleType"/>
+ <xs:element name="value" type="xs:anySimpleType"/>
<!-- See comment in preamble.
These should be prov:QualifiedName
@@ -373,7 +359,7 @@
<xs:attribute name="ref" type="xs:anyURI"/>
-->
- <xs:attribute name="id" type="xs:QName"/>
+ <xs:attribute name="id" type="xs:QName"/>
<xs:attribute name="ref" type="xs:QName"/>
<xs:complexType name="ActivityRef">
@@ -385,8 +371,8 @@
<xs:complexType name="CollectionRef">
<xs:attribute ref="prov:ref" use="required"/>
</xs:complexType>
- <xs:complexType name="EmptyCollectionRef">
- <xs:attribute ref="prov:ref" use="required"/>
+ <xs:complexType name="PlanRef">
+ <xs:attribute ref="prov:ref" use="required"/>
</xs:complexType>
<xs:complexType name="AgentRef">
<xs:attribute ref="prov:ref" use="required"/>
--- a/xml/schema/prov.xsd Sun Jan 20 11:38:03 2013 -0500
+++ b/xml/schema/prov.xsd Wed Jan 23 13:04:02 2013 -0700
@@ -1,490 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
-
-<!--
- 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.
- -->
-
-
<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/"
- xmlns:xml="http://www.w3.org/XML/1998/namespace"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
-
-
- <xs:import namespace="http://www.w3.org/1999/xhtml/datatypes/" />
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
- <!-- Component 1 -->
-
- <xs:complexType name="Entity">
- <xs:sequence>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:location"/>
- <xs:element ref="prov:value"/>
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <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:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:location"/>
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Generation">
- <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:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:location"/>
- <xs:element ref="prov:role"/>
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Usage">
- <xs:sequence>
- <xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="entity" type="prov:EntityRef" minOccurs="0"/>
- <xs:element name="time" type="xs:dateTime" minOccurs="0"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:location"/>
- <xs:element ref="prov:role"/>
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Communication">
- <xs:sequence>
- <xs:element name="informed" type="prov:ActivityRef"/>
- <xs:element name="informant" type="prov:ActivityRef"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Start">
- <xs:sequence>
- <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 name="time" type="xs:dateTime" minOccurs="0"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:location"/>
- <xs:element ref="prov:role"/>
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="End">
- <xs:sequence>
- <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 name="time" type="xs:dateTime" minOccurs="0"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:location"/>
- <xs:element ref="prov:role"/>
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Invalidation">
- <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:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:location"/>
- <xs:element ref="prov:role"/>
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <!-- Component 2 -->
-
- <xs:complexType name="Derivation">
- <xs:sequence>
- <xs:element name="generatedEntity" type="prov:EntityRef"/>
- <xs:element name="usedEntity" type="prov:EntityRef"/>
- <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:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Revision">
- <xs:complexContent>
- <xs:extension base="prov:Derivation">
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:complexType name="Quotation">
- <xs:complexContent>
- <xs:extension base="prov:Derivation">
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:complexType name="PrimarySource">
- <xs:complexContent>
- <xs:extension base="prov:Derivation">
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <!-- Component 3 -->
-
- <xs:complexType name="Agent">
- <xs:sequence>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:location"/>
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Person">
- <xs:complexContent>
- <xs:extension base="prov:Agent">
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:complexType name="Organization">
- <xs:complexContent>
- <xs:extension base="prov:Agent">
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:complexType name="SoftwareAgent">
- <xs:complexContent>
- <xs:extension base="prov:Agent">
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:complexType name="Attribution">
- <xs:sequence>
- <xs:element name="entity" type="prov:EntityRef"/>
- <xs:element name="agent" type="prov:AgentRef"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Association">
- <xs:sequence>
- <xs:element name="activity" type="prov:ActivityRef"/>
- <xs:element name="agent" type="prov:AgentRef" minOccurs="0"/>
- <xs:element name="plan" type="prov:PlanRef" minOccurs="0"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:role"/>
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Delegation">
- <xs:sequence>
- <xs:element name="delegate" type="prov:AgentRef"/>
- <xs:element name="responsible" type="prov:AgentRef"/>
- <xs:element name="activity" type="prov:ActivityRef" minOccurs="0"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <xs:complexType name="Influence">
- <xs:sequence>
- <xs:element name="influencee" type="prov:AnyRef"/>
- <xs:element name="influencer" type="prov:AnyRef"/>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:label"/>
- <xs:element ref="prov:type"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- <xs:attribute ref="prov:id"/>
- </xs:complexType>
-
- <!-- Component 4 -->
-
- <xs:complexType name="Bundle">
- <xs:complexContent>
- <xs:extension base="prov:Entity">
- <xs:sequence>
- <xs:group ref="prov:documentElements"/>
- </xs:sequence>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <!-- Component 5 -->
-
- <xs:complexType name="Specialization">
- <xs:sequence>
- <xs:element name="specificEntity" type="prov:EntityRef"/>
- <xs:element name="generalEntity" type="prov:EntityRef"/>
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="Alternate">
- <xs:sequence>
- <xs:element name="alternate1" type="prov:EntityRef"/>
- <xs:element name="alternate2" type="prov:EntityRef"/>
- </xs:sequence>
- </xs:complexType>
-
- <!-- Component 6 -->
-
- <xs:complexType name="Collection">
- <xs:complexContent>
- <xs:extension base="prov:Entity">
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:complexType name="EmptyCollection">
- <xs:complexContent>
- <xs:extension base="prov:Collection">
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:complexType name="Membership">
- <xs:sequence>
- <xs:element name="collection" type="prov:CollectionRef"/>
- <xs:element name="entity" type="prov:EntityRef" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
-
- <xs:complexType name="Plan">
- <xs:complexContent>
- <xs:extension base="prov:Entity">
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
-
- <xs:complexType name="InternationalizedString">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute ref="xml:lang" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
-
-
- <!--
- Typed literals are encoded by means
- of xsi:type that represent the prov:datatype.
-
- -->
-
- <xs:element name="label" type="prov:InternationalizedString"/>
- <xs:element name="role" type="xs:anySimpleType"/>
- <xs:element name="type" type="xs:anySimpleType"/>
- <xs:element name="location" type="xs:anySimpleType"/>
- <xs:element name="value" type="xs:anySimpleType"/>
-
- <!-- See comment in preamble.
- These should be prov:QualifiedName
- but instead are xsd:QName for tools to process them -->
-
- <!-- Possible alternative, but may cause us
- to lose benefit of existing XML tooling
- <xs:attribute name="id" type="xs:anyURI"/>
- <xs:attribute name="ref" type="xs:anyURI"/>
- -->
-
- <xs:attribute name="id" type="xs:QName"/>
- <xs:attribute name="ref" type="xs:QName"/>
-
- <xs:complexType name="ActivityRef">
- <xs:attribute ref="prov:ref" use="required" />
- </xs:complexType>
- <xs:complexType name="EntityRef">
- <xs:attribute ref="prov:ref" use="required"/>
- </xs:complexType>
- <xs:complexType name="CollectionRef">
- <xs:attribute ref="prov:ref" use="required"/>
- </xs:complexType>
- <xs:complexType name="PlanRef">
- <xs:attribute ref="prov:ref" use="required"/>
- </xs:complexType>
- <xs:complexType name="AgentRef">
- <xs:attribute ref="prov:ref" use="required"/>
- </xs:complexType>
- <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" use="required"/>
- </xs:complexType>
-
- <!--
- top-level definition of elements following the salami slice XSD design pattern
- to encourage integration within existing non-prov XML documents.
- -->
-
- <!-- Component 1 elements -->
-
- <xs:element name="entity" type="prov:Entity"/>
- <xs:element name="activity" type="prov:Activity"/>
- <xs:element name="wasGeneratedBy" type="prov:Generation"/>
- <xs:element name="used" type="prov:Usage"/>
- <xs:element name="wasInformedBy" type="prov:Communication"/>
- <xs:element name="wasStartedBy" type="prov:Start"/>
- <xs:element name="wasEndedBy" type="prov:End"/>
- <xs:element name="wasInvalidatedBy" type="prov:Invalidation"/>
-
- <!-- Component 2 elements -->
-
- <xs:element name="wasDerivedFrom" type="prov:Derivation"/>
- <xs:element name="wasRevisionOf" type="prov:Revision"/>
- <xs:element name="wasQuotedFrom" type="prov:Quotation"/>
- <xs:element name="hadPrimarySource" type="prov:PrimarySource"/>
-
- <!-- Component 3 elements -->
-
- <xs:element name="agent" type="prov:Agent"/>
- <xs:element name="person" type="prov:Person"/>
- <xs:element name="organization" type="prov:Organization"/>
- <xs:element name="softwareAgent" type="prov:SoftwareAgent"/>
- <xs:element name="wasAttributedTo" type="prov:Attribution"/>
- <xs:element name="wasAssociatedWith" type="prov:Association"/>
- <xs:element name="actedOnBehalfOf" type="prov:Delegation"/>
- <xs:element name="wasInfluencedBy" type="prov:Influence"/>
-
- <!-- Component 5 elements -->
-
- <xs:element name="bundle" type="prov:Bundle"/>
- <xs:element name="specializationOf" type="prov:Specialization"/>
- <xs:element name="alternateOf" type="prov:Alternate"/>
-
- <!-- Component 6 elements -->
-
- <xs:element name="hadMember" type="prov:Membership"/>
- <xs:element name="collection" type="prov:Collection"/>
- <xs:element name="emptyCollection" type="prov:EmptyCollection"/>
-
- <!-- Component 7 elements -->
-
- <xs:element name="plan" type="prov:Plan"/>
-
- <!-- document elements -->
-
- <xs:group name="documentElements">
- <xs:sequence>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element ref="prov:entity"/>
- <xs:element ref="prov:activity"/>
- <xs:element ref="prov:wasGeneratedBy"/>
- <xs:element ref="prov:used"/>
- <xs:element ref="prov:wasInformedBy"/>
- <xs:element ref="prov:wasStartedBy"/>
- <xs:element ref="prov:wasEndedBy"/>
- <xs:element ref="prov:wasInvalidatedBy"/>
- <xs:element ref="prov:wasDerivedFrom"/>
- <xs:element ref="prov:wasRevisionOf"/>
- <xs:element ref="prov:wasQuotedFrom"/>
- <xs:element ref="prov:hadPrimarySource"/>
- <xs:element ref="prov:agent"/>
- <xs:element ref="prov:person"/>
- <xs:element ref="prov:organization"/>
- <xs:element ref="prov:softwareAgent"/>
- <xs:element ref="prov:wasAttributedTo"/>
- <xs:element ref="prov:wasAssociatedWith"/>
- <xs:element ref="prov:actedOnBehalfOf"/>
- <xs:element ref="prov:wasInfluencedBy"/>
- <xs:element ref="prov:bundle"/>
- <xs:element ref="prov:specializationOf"/>
- <xs:element ref="prov:alternateOf"/>
- <xs:element ref="prov:collection"/>
- <xs:element ref="prov:emptyCollection"/>
- <xs:element ref="prov:hadMember"/>
- <xs:element ref="prov:plan"/>
- <xs:any namespace="##other"/>
- </xs:choice>
- </xs:sequence>
- </xs:group>
-
- <xs:element name="document" type="prov:Document" />
- <xs:complexType name="Document">
- <xs:sequence>
- <xs:choice maxOccurs="unbounded">
- <xs:group ref="prov:documentElements"/>
- <xs:element ref="prov:bundle"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
-
+ <xs:include schemaLocation="prov-core.xsd"/>
+ <xs:include schemaLocation="extensions/prov-dictionary.xsd"/>
+ <xs:include schemaLocation="extensions/prov-links.xsd"/>
+
</xs:schema>