--- a/xml/schema/extensions/prov-dictionary.xsd Tue Jan 29 15:15:59 2013 +0100
+++ b/xml/schema/extensions/prov-dictionary.xsd Tue Jan 29 16:16:23 2013 +0100
@@ -1,25 +1,50 @@
-<?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
+<?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" />
+
+ <!-- Key-Value Pair -->
+ <xs:complexType name="KeyValuePair">
+ <xs:sequence>
+ <xs:element name="entity" type="prov:IDRef" />
+ <xs:element name="key" type="xs:anySimpleType" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="keyValuePair" type="prov:KeyValuePair"/>
+
+ <!-- Dictionary Membership -->
+ <xs:complexType name="DictionaryMembership">
+ <xs:sequence>
+ <xs:element name="dictionary" type="prov:IDRef"/>
+ <xs:element name="keyValuePair" type="prov:KeyValuePair" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="hadDictionaryMember" type="prov:DictionaryMembership"/>
+
+ <!-- Insertion -->
+ <xs:complexType name="Insertion">
+ <xs:sequence>
+ <xs:element name="newDictionary" type="prov:IDRef"/>
+ <xs:element name="oldDictionary" type="prov:IDRef"/>
+ <xs:element name="keyValuePair" type="prov:KeyValuePair" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="derivedByInsertionFrom" type="prov:Insertion"/>
+
+ <!-- Removal -->
+ <xs:complexType name="Removal">
+ <xs:sequence>
+ <xs:element name="newDictionary" type="prov:IDRef"/>
+ <xs:element name="oldDictionary" type="prov:IDRef"/>
+ <xs:element name="key" type="xs:anySimpleType" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:element name="derivedByRemovalFrom" type="prov:Removal"/>
+
+</xs:schema>