Changeset 2842
- Timestamp:
- 04/26/13 14:30:49 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd
r2797 r2842 1 1 <?xml version="1.1" encoding="UTF-8"?> 2 2 <xs:schema targetNamespace="http://www.dasish.eu/ns/addit" 3 xmlns:xs="http://www.w3.org/2001/XMLSchema" 4 xmlns="http://www.dasish.eu/ns/addit" 3 xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.dasish.eu/ns/addit" 5 4 elementFormDefault="qualified"> 6 5 <xs:import namespace="http://www.w3.org/XML/1998/namespace" … … 10 9 <!--////////////////////////////////////////////////////--> 11 10 <!-- Annotation-body types according to the UML diagram --> 12 13 14 <!-- Body --> 15 16 <xs:complexType name="Body"> 17 <xs:sequence> 18 <xs:any processContents="lax" maxOccurs="unbounded"/> 19 </xs:sequence> 20 <xs:anyAttribute processContents="lax"/> 21 </xs:complexType> 22 11 12 <!-- DASISH resources (cached representations, sources, users, annotations, notebooks) have an obligatory URIdasih element--> 13 <!-- The integrity of the references must be forced via the backend --> 14 15 16 17 <xs:complexType name="ResourceREF"> 18 <xs:attribute name="ref" type="xs:anyURI" use="required"></xs:attribute> 19 </xs:complexType> 20 <!-- for a new annotation the reference to the source is absent, that's why this attribute is not obligatory--> 21 22 23 23 24 <!--////////////////////////--> 24 25 <!--Cached representations --> 25 26 26 27 <xs:complexType name="CachedRepresentation"> 27 <xs:attribute ref="xml:id" use="required"/>28 28 <xs:attribute name="URI" type="xs:anyURI" use="required"/> 29 29 <xs:attribute name="mimeType" type="xs:string" use="required"/> … … 31 31 <xs:attribute name="type" type="xs:string" use="required"/> 32 32 </xs:complexType> 33 34 <xs:complexType name="listCachedRepresentations"> 35 <xs:sequence> 36 <xs:element name="cachedRepresentation" type="CachedRepresentation" 37 maxOccurs="unbounded"/> 38 </xs:sequence> 39 </xs:complexType> 40 41 <!--////////////////////////////--> 42 <!-- Versions --> 43 <xs:complexType name="sourceREF"> 44 <xs:attribute name="ref" type="xs:NCName" use="required"/> 45 </xs:complexType> 46 47 <xs:complexType name="listVersionREFs"> 48 <xs:sequence> 49 <xs:element name="version" type="sourceREF" minOccurs="1" maxOccurs="unbounded"/> 33 34 35 <xs:complexType name="CachedRepresentations"> 36 <xs:sequence> 37 <xs:element name="cachedRepresentation" type="ResourceREF" maxOccurs="unbounded"/> 50 38 </xs:sequence> 51 39 </xs:complexType> … … 54 42 <!-- Sources (== Targets in OA) --> 55 43 44 56 45 <xs:complexType name="Source"> 57 46 <xs:sequence> 58 <xs:element name="URI" type="xs:anyURI" minOccurs="1"/> 59 <xs:element name="versionString" type="xs:string" minOccurs="1"/> 60 <xs:element name="versions" type="listVersionREFs" minOccurs="1"/> 61 <xs:element name="cachedRepresentations" type="listCachedRepresentations" minOccurs="1"/> 62 </xs:sequence> 63 <xs:attribute ref="xml:id" use="required"/> 64 <xs:attribute name="lastModified" type="xs:dateTime" use="required"/> 65 </xs:complexType> 66 67 47 <xs:element name="cachedRepresentations" type="CachedRepresentations" minOccurs="1"/> 48 <xs:element name="action" type="Action" minOccurs="0"/> 49 <xs:element name="versions-siblings" type="Versions" minOccurs="1"/> 50 </xs:sequence> 51 <xs:attribute name="URI" type="xs:anyURI" use="required"/> 52 <xs:attribute name="timeSatmp" type="xs:dateTime" use="required"/> 53 <xs:attribute name="link" type="xs:anyURI" use="required"/> 54 <xs:attribute name="version" type="xs:string" use="required"/> 55 </xs:complexType> 56 57 58 <xs:complexType name="Sources"> 59 <xs:sequence> 60 <xs:element name="targetSource" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/> 61 </xs:sequence> 62 </xs:complexType> 63 64 68 65 <xs:complexType name="SourceInfo"> 69 <xs:sequence> 70 <xs:element name="URI" type="xs:anyURI" minOccurs="1"/> 71 <xs:element name="versionString" type="xs:string" minOccurs="1"/> 72 </xs:sequence> 73 <xs:attribute ref="xml:id" use="required"/> 74 </xs:complexType> 75 66 <xs:complexContent> 67 <xs:extension base="ResourceREF"> 68 <xs:sequence> 69 <xs:element name="link" type="xs:anyURI" minOccurs="1" maxOccurs="1"/> 70 <xs:element name="version" type="xs:string" minOccurs="1" maxOccurs="1"/> 71 </xs:sequence> 72 </xs:extension> 73 </xs:complexContent> 74 </xs:complexType> 75 76 <xs:complexType name="SourceInfos"> 77 <xs:sequence> 78 <xs:element name="targetSource" type="SourceInfo" minOccurs="1" maxOccurs="unbounded"/> 79 </xs:sequence> 80 </xs:complexType> 81 82 83 84 85 <xs:complexType name="Versions"> 86 <xs:sequence> 87 <xs:element name="version" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/> 88 </xs:sequence> 89 </xs:complexType> 90 91 <!--////////////////////////////--> 92 <!-- Human Agents (Users) --> 93 94 <xs:complexType name="User"> 95 <xs:sequence> 96 <xs:element name="notebooksToRead" type="NotebookInfos"/> 97 <xs:element name="notebooksToWrite" type="NotebookInfos"/> 98 <xs:element name="additionalInfo"> 99 <xs:complexType> 100 <xs:sequence> 101 <xs:any processContents="lax" maxOccurs="unbounded"/> 102 </xs:sequence> 103 <xs:anyAttribute processContents="lax"/> 104 </xs:complexType> 105 </xs:element> 106 </xs:sequence> 107 <xs:attribute name="URI" type="xs:anyURI" use="required"/> 108 <xs:attribute name="name" type="xs:string" use="required"/> 109 </xs:complexType> 110 111 <xs:complexType name="Users"> 112 <xs:sequence> 113 <xs:element name="user" type="ResourceREF" maxOccurs="unbounded"/> 114 </xs:sequence> 115 </xs:complexType> 116 117 118 <xs:complexType name="UserInfo"> 119 <xs:complexContent> 120 <xs:extension base="ResourceREF"> 121 <xs:sequence> 122 <xs:element name="notebooksToRead" type="NotebookInfos"/> 123 <xs:element name="notebooksToWrite" type="NotebookInfos"/> 124 </xs:sequence> 125 </xs:extension> 126 </xs:complexContent> 127 </xs:complexType> 128 129 130 <xs:complexType name="UserInfos"> 131 <xs:sequence> 132 <xs:element name="user" type="UserInfo" maxOccurs="unbounded"/> 133 </xs:sequence> 134 </xs:complexType> 135 136 <xs:complexType name="CurrentUserInfo"> 137 <xs:complexContent> 138 <xs:extension base="ResourceREF"> 139 <xs:attribute name="currentUser" type="xs:boolean" use="required"/> 140 </xs:extension> 141 </xs:complexContent> 142 </xs:complexType> 143 144 145 146 <!--////////////////////////////--> 147 <!-- Annotation --> 148 149 150 <xs:complexType name="Annotation"> 151 <xs:sequence> 152 <xs:element name="owner" type="ResourceREF" minOccurs="1"/> 153 <xs:element name="headline" type="xs:string" minOccurs="1"/> 154 <!-- schematron checks the length <== 100 --> 155 <xs:element name="body" type="Body" minOccurs="1"/> 156 <xs:element name="targetSources" type="SourceInfos" minOccurs="1"/> 157 <xs:element name="readers" type="Readers" minOccurs="1"/> 158 <xs:element name="writers" type="Writers" minOccurs="1"/> 159 </xs:sequence> 160 <xs:attribute name="URI" type="xs:anyURI" use="required"/> 161 <xs:attribute name="timeStamp" type="xs:dateTime" use="required"/> 162 </xs:complexType> 163 164 165 <xs:complexType name="Annotations"> 166 <xs:sequence> 167 <xs:element name="annotation" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/> 168 </xs:sequence> 169 </xs:complexType> 170 171 <xs:complexType name="AnnotationInfo"> 172 <xs:complexContent> 173 <xs:extension base="ResourceREF"> 174 <xs:sequence> 175 <xs:element name="owner" type="ResourceREF" minOccurs="1" maxOccurs="1"/> 176 <xs:element name="headline" type="xs:string" minOccurs="1" maxOccurs="1"/> 177 <xs:element name="targetSources" type="Sources" minOccurs="1" maxOccurs="1"/> 178 </xs:sequence> 179 </xs:extension> 180 </xs:complexContent> 181 </xs:complexType> 182 183 <xs:complexType name="AnnotationInfos"> 184 <xs:sequence> 185 <xs:element name="annotation" type="AnnotationInfo" maxOccurs="unbounded"/> 186 </xs:sequence> 187 </xs:complexType> 188 189 <xs:complexType name="Body"> 190 <xs:sequence> 191 <xs:any processContents="lax" maxOccurs="unbounded"/> 192 </xs:sequence> 193 <xs:anyAttribute processContents="lax"/> 194 </xs:complexType> 195 196 <xs:complexType name="Readers"> 197 <xs:sequence> 198 <xs:element name="reader" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/> 199 </xs:sequence> 200 </xs:complexType> 201 202 <xs:complexType name="Writers"> 203 <xs:sequence> 204 <xs:element name="writer" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/> 205 </xs:sequence> 206 </xs:complexType> 207 76 208 77 209 <!--////////////////////////////--> 78 <!-- Human Agents (Users) --> 79 80 <xs:complexType name="userREF"> 81 <xs:annotation> 82 <xs:documentation xml:lang="nl">De referentiele integriteit moet door de backend afgedwongen worden.</xs:documentation> 83 <xs:documentation xml:lang="en">The integrity of the references must be forced via the backend</xs:documentation> 84 </xs:annotation> 85 <xs:attribute name="ref" type="xs:NCName" use="required"/> 86 </xs:complexType> 87 88 89 <!--////////////////////////////--> 90 <!-- Annotation --> 91 92 <xs:complexType name="listReaderREFs"> 93 <xs:sequence> 94 <xs:element name="reader" type="userREF" minOccurs="1" maxOccurs="unbounded"/> 95 </xs:sequence> 96 </xs:complexType> 97 98 <xs:complexType name="listWriterREFs"> 99 <xs:sequence> 100 <xs:element name="writer" type="userREF" minOccurs="1" maxOccurs="unbounded"/> 101 </xs:sequence> 102 </xs:complexType> 103 104 <xs:complexType name="listSourceInfo"> 105 <xs:sequence> 106 <xs:element name="targetSource" type="SourceInfo" minOccurs="1" maxOccurs="unbounded"/> 107 </xs:sequence> 108 </xs:complexType> 109 110 <xs:complexType name="notebookREF"> 111 <xs:attribute name="ref" type="xs:NCName" use="required"/> 112 </xs:complexType> 113 114 <xs:complexType name="listNotebookREFs"> 115 <xs:sequence> 116 <xs:element name="notebook" type="notebookREF" minOccurs="0" maxOccurs="unbounded"/> 117 </xs:sequence> 118 </xs:complexType> 119 120 <xs:complexType name="Annotation"> 121 <xs:sequence> 122 <xs:element name="owner" type="userREF" minOccurs="1"/> 123 <xs:element name="headline" type="xs:string" minOccurs="1"/> <!-- schematron checks the length <== 100 --> 124 <xs:element name="body" type="Body" minOccurs="1"/> 125 <xs:element name="targetSources" type="listSourceInfo" minOccurs="1"/> 126 <xs:element name="readers" type="listReaderREFs" minOccurs="1"/> 127 <xs:element name="writers" type="listWriterREFs" minOccurs="1"/> 128 <xs:element name="notebooks" type="listNotebookREFs" minOccurs="1"/> 129 </xs:sequence> 130 <xs:attribute ref="xml:id" use="required"/> 131 <xs:attribute name="URI" type="xs:anyURI" use="required"/> 210 <!-- Notebook --> 211 212 <xs:complexType name="Notebook"> 213 <xs:sequence> 214 <xs:element name="title" type="xs:string"/> 215 <xs:element name="annotations" type="Annotations"/> 216 <xs:element name="readers" type="Readers"/> 217 <xs:element name="writers" type="Writers"/> 218 </xs:sequence> 219 <xs:attribute name="URI" type="xs:anyURI"/> 132 220 <xs:attribute name="timeStamp" type="xs:dateTime" use="required"/> 133 221 </xs:complexType> 134 135 136 137 138 <!--////////////////////////////--> 139 <!-- Notebook --> 140 141 <xs:complexType name="listAnnotations"> 142 <xs:sequence> 143 <xs:element name="annotation" type="Annotation" minOccurs="1" maxOccurs="unbounded"/> 144 </xs:sequence> 145 </xs:complexType> 146 147 <xs:complexType name="Notebook"> 148 <xs:sequence> 149 <xs:element name="title" type="xs:string"/> 150 <xs:element name="annotations" type="listAnnotations"/> 151 <xs:element name="readers" type="listReaderREFs"/> 152 <xs:element name="writers" type="listWriterREFs"/> 153 </xs:sequence> 154 <xs:attribute ref="xml:id" use="required"/> 155 <xs:attribute name="URI" type="xs:anyURI" use="required"/> 156 <xs:attribute name="timeStamp" type="xs:dateTime" use="required"/> 157 </xs:complexType> 158 159 160 161 <!--////////////////////////////--> 162 <!-- Elements --> 163 222 223 224 <xs:complexType name="Notebooks"> 225 <xs:sequence> 226 <xs:element name="notebook" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/> 227 </xs:sequence> 228 </xs:complexType> 229 230 <xs:complexType name="NotebookInfo"> 231 <xs:complexContent> 232 <xs:extension base="ResourceREF"> 233 <xs:sequence> 234 <xs:element name="notebook" type="ResourceREF"/> 235 <xs:element name="title" type="xs:string"/> 236 </xs:sequence> 237 </xs:extension> 238 </xs:complexContent> 239 </xs:complexType> 240 241 <xs:complexType name="NotebookInfos"> 242 <xs:sequence> 243 <xs:element name="notebook" type="NotebookInfo" maxOccurs="unbounded"/> 244 </xs:sequence> 245 </xs:complexType> 246 247 <!--- ACTION --> 248 249 <xs:simpleType name="Action"> 250 <xs:restriction base="xs:string"> 251 <xs:enumeration value="CREATE_CACHED_REPRESENTATION"/> 252 </xs:restriction> 253 </xs:simpleType> 254 255 256 <!--/////////////////////////////////////--> 257 <!-- GET api/user/uid respond --> 258 <xs:element name="currentUserInfo" type="CurrentUserInfo"/> 259 260 <!--/////////////////////////////////////--> 261 <!-- GET api/annotations?source="http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia"&access=read respond --> 262 <xs:element name="annotations" type="AnnotationInfos"></xs:element> 263 264 265 <!--/////////////////////////////////////--> 266 <!-- GET api/annotations/AIDxyz respond --> 164 267 <xs:element name="annotation" type="Annotation"/> 165 268 269 270 <!--/////////////////////////////////////--> 271 <!-- GET api/annotations/AID0xyz/sources respond (non-resolvable)--> 272 <xs:element name="sources" type="SourceInfos"/> 273 274 <!--/////////////////////////////////////--> 275 <!-- GET api/sources/SID0xyz/ respond --> 276 <xs:element name="source" type="Source "/> 277 278 <!--/////////////////////////////////////--> 279 <!-- GET api/sources/SID05/cached/CID0efef/metadata (example usage for unresolvable target sources) --> 280 <xs:element name="cashedRepresentation" type="CachedRepresentation"/> 281 282 <!--/////////////////////////////////////--> 283 <!-- POST api/annotation, annotation body --> 166 284 <xs:element name="newAnnotation" type="Annotation"/> 167 168 <xs:element name="source" type="Source"/>169 170 <xs:element name="notebook" type="Notebook"/>171 285 172 286 </xs:schema>
Note: See TracChangeset
for help on using the changeset viewer.