Version 4 (modified by 11 years ago) (diff) | ,
---|
Contents
- XSD Schema
-
Scenario XML's validated vs the given schema
- Responding GET api/user
- Responding GET api/annotations?source="http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia"&access=read
- Responding GET api/annotations/AID02 (for resolvable targets)
- Responding GET api/annotations/AID01 (non-resolvable, obsolete target sources)
- Responding GET api/annotations/AID01/sources (for non-resolvable target sources)
- Responding GET api/sources/SID05/cached (for unresolvable target sources)
- Responding GET api/sources/SID05/cached/CID005A (for unresolvable target sources)
- Request body for POST
XSD Schema
<?xml version="1.1" encoding="UTF-8"?> <xs:schema targetNamespace="http://www.dasish.eu/ns/addit" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.dasish.eu/ns/addit" elementFormDefault="qualified"> <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2005/08/xml.xsd"/> <!--////////////////////////////////////////////////////--> <!-- Annotation-body types according to the UML diagram --> <!-- Body --> <xs:complexType name="Body"> <xs:sequence> <xs:any processContents="lax" maxOccurs="unbounded"/> </xs:sequence> <xs:anyAttribute processContents="lax"/> </xs:complexType> <!--////////////////////////--> <!--Cached representations --> <xs:complexType name="CachedRepresentation"> <xs:attribute ref="xml:id" use="required"/> <xs:attribute name="URI" type="xs:anyURI" use="required"/> <xs:attribute name="mimeType" type="xs:string" use="required"/> <xs:attribute name="tool" type="xs:string" use="required"/> <xs:attribute name="type" type="xs:string" use="required"/> </xs:complexType> <xs:complexType name="listCachedRepresentations"> <xs:sequence> <xs:element name="cachedRepresentation" type="CachedRepresentation" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!--////////////////////////////--> <!-- Versions --> <xs:complexType name="sourceREF"> <xs:attribute name="ref" type="xs:NCName" use="required"/> </xs:complexType> <xs:complexType name="listVersionREFs"> <xs:sequence> <xs:element name="version" type="sourceREF" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!--////////////////////////////--> <!-- Sources (== Targets in OA) --> <xs:complexType name="Source"> <xs:sequence> <xs:element name="URI" type="xs:anyURI" minOccurs="1"/> <xs:element name="versionString" type="xs:string" minOccurs="1"/> <xs:element name="versions" type="listVersionREFs" minOccurs="1"/> <xs:element name="cachedRepresentations" type="listCachedRepresentations" minOccurs="1"/> </xs:sequence> <xs:attribute ref="xml:id" use="required"/> <xs:attribute name="lastModified" type="xs:dateTime" use="required"/> </xs:complexType> <xs:complexType name="SourceInfoForAnnotation"> <xs:sequence> <xs:element name="URI" type="xs:anyURI" minOccurs="1"/> <xs:element name="versionString" type="xs:string" minOccurs="1"/> </xs:sequence> <xs:attribute ref="xml:id" use="required"/> </xs:complexType> <!--////////////////////////////--> <!-- Human Agents (Users) --> <xs:complexType name="userREF"> <xs:annotation> <xs:documentation xml:lang="nl">De referentiele integriteit moet door de backend afgedwongen worden.</xs:documentation> <xs:documentation xml:lang="en">The integrity of the references must be forced via the backend</xs:documentation> </xs:annotation> <xs:attribute name="ref" type="xs:NCName" use="required"/> </xs:complexType> <!--////////////////////////////--> <!-- Annotation --> <xs:complexType name="listReaderREFs"> <xs:sequence> <xs:element name="reader" type="userREF" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="listWriterREFs"> <xs:sequence> <xs:element name="writer" type="userREF" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="listSourceInfoForAnnotation"> <xs:sequence> <xs:element name="targetSource" type="SourceInfoForAnnotation" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="notebookInfo"> <xs:sequence> <xs:element name="title" type="xs:string" minOccurs="1"/> </xs:sequence> <xs:attribute name="ref" type="xs:NCName" use="required"/> </xs:complexType> <xs:complexType name="listNotebookInfos"> <xs:sequence> <xs:element name="notebook" type="notebookInfo" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Annotation"> <xs:sequence> <xs:element name="owner" type="userREF" minOccurs="1"/> <xs:element name="headline" type="xs:string" minOccurs="1"/> <!-- schematron checks the length <== 100 --> <xs:element name="body" type="Body" minOccurs="1"/> <xs:element name="targetSources" type="listSourceInfoForAnnotation" minOccurs="1"/> <xs:element name="readers" type="listReaderREFs" minOccurs="1"/> <xs:element name="writers" type="listWriterREFs" minOccurs="1"/> <xs:element name="notebooks" type="listNotebookInfos" minOccurs="1"/> </xs:sequence> <xs:attribute ref="xml:id" use="required"/> <xs:attribute name="URI" type="xs:anyURI" use="required"/> <xs:attribute name="timeStamp" type="xs:dateTime" use="required"/> </xs:complexType> <!--////////////////////////////--> <!-- Notebook --> <xs:complexType name="listAnnotations"> <xs:sequence> <xs:element name="annotation" type="Annotation" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="Notebook"> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="annotations" type="listAnnotations"/> <xs:element name="readers" type="listReaderREFs"/> <xs:element name="writers" type="listWriterREFs"/> </xs:sequence> <xs:attribute ref="xml:id" use="required"/> <xs:attribute name="URI" type="xs:anyURI" use="required"/> <xs:attribute name="timeStamp" type="xs:dateTime" use="required"/> </xs:complexType> <xs:complexType name="NotebookInfo"> <xs:sequence> <xs:element name="title" type="xs:string"/> </xs:sequence> <xs:attribute name="ref" type="xs:NCName" use="required"/> </xs:complexType> <xs:complexType name="listNotebooks"> <xs:sequence> <xs:element name="notebook" type="NotebookInfo" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <!--/////////////////////////////////////--> <!-- GET api/user respond --> <xs:complexType name="GetApiUserRespond"> <xs:sequence> <xs:element name="myID" type="xs:string"></xs:element> <xs:element name="notebooksToRead" type="listNotebooks"></xs:element> <xs:element name="notebooksToWrite" type="listNotebooks"></xs:element> </xs:sequence> </xs:complexType> <xs:element name="getApiUserScenario" type="GetApiUserRespond"/> <!--/////////////////////////////////////--> <!-- GET api/annotations?source="http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia"&access=read respond --> <xs:complexType name="SourceInfoForRespond"> <xs:sequence> <xs:element name="URI" type="xs:anyURI" minOccurs="1"/> <xs:element name="versionString" type="xs:string" minOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType name="listSourceInfoForRespond"> <xs:sequence> <xs:element name="targetSource" type="SourceInfoForRespond" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="AnnotationInfoForRespond"> <xs:sequence> <xs:element name="ownerIDref" type="xs:NCName" minOccurs="1"/> <xs:element name="headline" type="xs:string" minOccurs="1"/> <xs:element name="targetSources" type="listSourceInfoForRespond" minOccurs="1"/> <xs:element name="notebooks" type="listNotebookInfos" minOccurs="1"/> </xs:sequence> <xs:attribute name="IDRef" type="xs:NCName" use="required"/> </xs:complexType> <xs:complexType name="listAnnotationInfoForRespond"> <xs:sequence> <xs:element name="annotation" type="AnnotationInfoForRespond" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType name="GetApiAnnotationsRespond"> <xs:sequence> <xs:element name="annotations" type="listAnnotationInfoForRespond"></xs:element> </xs:sequence> </xs:complexType> <xs:element name="getApiAnnotationsScenario" type="GetApiAnnotationsRespond"/> <!--/////////////////////////////////////--> <!-- GET api/annotations/AID02 respond --> <xs:element name="annotation" type="Annotation"/> <!--/////////////////////////////////////--> <!-- GET api/annotations/AID01/sources respond (non-resolvable, obsolete target sources)--> <xs:complexType name="listSources"> <xs:sequence> <xs:element name="targetSource" type="Source" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:element name="sources" type="listSources"/> <!--/////////////////////////////////////--> <!-- GET api/sources/SID05/cached respond --> <xs:element name="cashedRepresentations" type="listCachedRepresentations"/> <!--/////////////////////////////////////--> <!-- GET api/sources/SID05/cached/CID005A respond --> <xs:element name="cashedRepresentation" type="CachedRepresentation"/> <!-- POST api/annotation, annotation body --> <xs:element name="newAnnotation" type="Annotation"/> </xs:schema>
Scenario XML's validated vs the given schema
See https://trac.clarin.eu/wiki/DASISH/Scenario|Scenario.
Responding GET api/user
<?xml version="1.0" encoding="UTF-8"?> <getApiUserScenario xmlns="http://www.dasish.eu/ns/addit" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dasish.eu/ns/addit file:/Users/olhsha/repositories/DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd"> <myID>ID01</myID> <notebooksToRead> <notebook ref="NID01"> <title>Sagrada Famiglia</title> </notebook> <notebook ref="NID02"> <title>Buildings</title> </notebook> </notebooksToRead> <notebooksToWrite> <notebook ref="NID01"> <title>Sagrada Famiglia</title> </notebook> </notebooksToWrite> </getApiUserScenario>
Responding GET api/annotations?source="http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia"&access=read
<?xml version="1.0" encoding="UTF-8"?> <getApiAnnotationsScenario xmlns="http://www.dasish.eu/ns/addit" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dasish.eu/ns/addit file:/Users/olhsha/repositories/DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd"> <annotations> <annotation IDRef="AID03"> <ownerIDref>ID02</ownerIDref> <headline>My client is not in a hurry</headline> <targetSources> <targetSource> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#cite_note-Time-15</URI> <versionString>2013-04-15T15:15:00-05:30</versionString> </targetSource> </targetSources> <notebooks> <notebook ref="NID01"> <title>Sagrada Famiglia</title> </notebook> <notebook ref="NID02"> <title>Buildings</title> </notebook> </notebooks> </annotation> <annotation IDRef="AID02"> <ownerIDref>ID01</ownerIDref> <headline>Nativity Facade</headline> <targetSources> <targetSource> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Nativity_Fa.C3.A7ade</URI> <versionString>5.0</versionString> </targetSource> <targetSource> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Passion_Fa.C3.A7ade</URI> <versionString>4.1</versionString> </targetSource> </targetSources> <notebooks> <notebook ref="NID01"> <title>Sagrada Famiglia</title> </notebook> </notebooks> </annotation> <annotation IDRef="AID01"> <ownerIDref>ID01</ownerIDref> <headline>Nativity Facade (old site)</headline> <targetSources> <targetSource> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Nativity_Fa.C3.A7ade</URI> <versionString>1.0</versionString> </targetSource> <targetSource> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Passion_Fa.C3.A7ade</URI> <versionString>1.0</versionString> </targetSource> </targetSources> <notebooks> <notebook ref="NID01"> <title>Sagrada Famiglia</title> </notebook> </notebooks> </annotation> </annotations> </getApiAnnotationsScenario>
Responding GET api/annotations/AID02 (for resolvable targets)
<?xml version="1.0" encoding="UTF-8"?> <sources xmlns="http://www.dasish.eu/ns/addit" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dasish.eu/ns/addit file:/Users/olhsha/repositories/DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd"> <targetSource xml:id="SID005" lastModified="2006-05-04T18:13:51.0Z"> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Nativity_Fa.C3.A7ade</URI> <versionString>1.0</versionString> <versions> <version ref="SID005"/> <version ref="SID015"/> </versions> <cachedRepresentations> <cachedRepresentation xml:id="CID005" URI="http://www.dasish.eu/DB/CID005" mimeType="text/html" tool="tool1" type="text"/> <cachedRepresentation xml:id="CID005A" URI="http://www.dasish.eu/DB/CID005A" mimeType="image/png" tool="tool2" type="screenshot"/> <cachedRepresentation xml:id="CID015" URI="http://www.dasish.eu/DB/CID015" mimeType="mimeType3" tool="tool3" type="type3"/> </cachedRepresentations> </targetSource> <targetSource xml:id="SID007" lastModified="2006-05-04T18:13:51.0Z"> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Passion_Fa.C3.A7ade</URI> <versionString>1.0</versionString> <versions> <version ref="SID007"/> <version ref="SID017"/> </versions> <cachedRepresentations> <cachedRepresentation xml:id="CID007" URI="http://www.dasish.eu/DB/CID007" mimeType="mimeType5" tool="tool5" type="type5"/> <cachedRepresentation xml:id="CID017" URI="http://www.dasish.eu/DB/CID017" mimeType="mimeType7" tool="tool7" type="type7"/> </cachedRepresentations> </targetSource> </sources>
Responding GET api/annotations/AID01 (non-resolvable, obsolete target sources)
<?xml version="1.0" encoding="UTF-8"?> <annotation xmlns="http://www.dasish.eu/ns/addit" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dasish.eu/ns/addit file:/Users/olhsha/repositories/DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd" xml:id="AID002" URI="http://www.dasish.eu/DB/AID002" timeStamp="2010-05-04T18:13:51.0Z"> <owner ref="ID01"/> <headline>Nativity Facade (old site)</headline> <body type="relation"> <relation>different</relation> <this ref="SID005"/> <that ref="SID007"/> </body> <targetSources> <targetSource xml:id="SID005"> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Nativity_Fa.C3.A7ade</URI> <versionString>1.0</versionString> </targetSource> <targetSource xml:id="SID007"> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Passion_Fa.C3.A7ade</URI> <versionString>1.0</versionString> </targetSource> </targetSources> <readers> <reader ref="ID01"/> <reader ref="ID03"/> <reader ref="ID04"/> </readers> <writers> <writer ref="ID01"/> <writer ref="ID03"/> </writers> <notebooks> </notebooks> </annotation>
Responding GET api/annotations/AID01/sources (for non-resolvable target sources)
<?xml version="1.0" encoding="UTF-8"?> <sources xmlns="http://www.dasish.eu/ns/addit" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dasish.eu/ns/addit file:/Users/olhsha/repositories/DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd"> <targetSource xml:id="SID005" lastModified="2006-05-04T18:13:51.0Z"> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Nativity_Fa.C3.A7ade</URI> <versionString>1.0</versionString> <versions> <version ref="SID005"/> <version ref="SID015"/> </versions> <cachedRepresentations> <cachedRepresentation xml:id="CID005" URI="http://www.dasish.eu/DB/CID005" mimeType="text/html" tool="tool1" type="text"/> <cachedRepresentation xml:id="CID005A" URI="http://www.dasish.eu/DB/CID005A" mimeType="image/png" tool="tool2" type="screenshot"/> <cachedRepresentation xml:id="CID015" URI="http://www.dasish.eu/DB/CID015" mimeType="mimeType3" tool="tool3" type="type3"/> </cachedRepresentations> </targetSource> <targetSource xml:id="SID007" lastModified="2006-05-04T18:13:51.0Z"> <URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Passion_Fa.C3.A7ade</URI> <versionString>1.0</versionString> <versions> <version ref="SID007"/> <version ref="SID017"/> </versions> <cachedRepresentations> <cachedRepresentation xml:id="CID007" URI="http://www.dasish.eu/DB/CID007" mimeType="mimeType5" tool="tool5" type="type5"/> <cachedRepresentation xml:id="CID017" URI="http://www.dasish.eu/DB/CID017" mimeType="mimeType7" tool="tool7" type="type7"/> </cachedRepresentations> </targetSource> </sources>
Responding GET api/sources/SID05/cached (for unresolvable target sources)
<?xml version="1.0" encoding="UTF-8"?> <cashedRepresentations xmlns="http://www.dasish.eu/ns/addit" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dasish.eu/ns/addit file:/Users/olhsha/repositories/DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd"> <cachedRepresentation xml:id="CID005" URI="http://www.dasish.eu/DB/CID005" mimeType="text/html" tool="tool1" type="text"/> <cachedRepresentation xml:id="CID005A" URI="http://www.dasish.eu/DB/CID005A" mimeType="image/png" tool="tool2" type="screenshot"/> </cashedRepresentations>
Responding GET api/sources/SID05/cached/CID005A (for unresolvable target sources)
<?xml version="1.0" encoding="UTF-8"?> <cashedRepresentation xmlns="http://www.dasish.eu/ns/addit" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dasish.eu/ns/addit file:/Users/olhsha/repositories/DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd" xml:id="CID005A" URI="http://www.dasish.eu/DB/CID005A" mimeType="image/png" tool="tool2" type="screenshot"/>
Request body for POST
<?xml version="1.0" encoding="UTF-8"?> <newAnnotation xmlns="http://www.dasish.eu/ns/addit"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dasish.eu/ns/addit file:/Users/olhsha/repositories/DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd" xml:id="AID0010" URI="http://www.dasish.eu/ns/addit/DB" timeStamp="2013-05-04T18:13:51.0Z">
<owner ref="ID02"/> <headline>Organ</headline> <body>
<note>installed in 2010</note>
</body> <targetSources>
<targetSource xml:id="SID018">
<URI>http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia#Organ</URI> <versionString></versionString>
</targetSource>
</targetSources> <readers>
<reader ref="ID02"/>
</readers> <writers>
<writer ref="ID02"/>
</writers> <notebooks> </notebooks>
</newAnnotation>