Changeset 2842


Ignore:
Timestamp:
04/26/13 14:30:49 (11 years ago)
Author:
olhsha
Message:

update for the schema, but there still things to fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd

    r2797 r2842  
    11<?xml version="1.1" encoding="UTF-8"?>
    22<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"
    54    elementFormDefault="qualified">
    65    <xs:import namespace="http://www.w3.org/XML/1998/namespace"
     
    109    <!--////////////////////////////////////////////////////-->
    1110    <!-- 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   
    2324    <!--////////////////////////-->
    2425    <!--Cached representations -->
    2526
    2627    <xs:complexType name="CachedRepresentation">
    27         <xs:attribute ref="xml:id" use="required"/>
    2828        <xs:attribute name="URI" type="xs:anyURI" use="required"/>
    2929        <xs:attribute name="mimeType" type="xs:string" use="required"/>
     
    3131        <xs:attribute name="type" type="xs:string" use="required"/>
    3232    </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"/>
    5038        </xs:sequence>
    5139    </xs:complexType>
     
    5442    <!-- Sources (== Targets in OA) -->
    5543
     44
    5645    <xs:complexType name="Source">
    5746        <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   
    6865    <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   
    76208   
    77209    <!--////////////////////////////-->
    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"/>
    132220        <xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
    133221    </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 -->
    164267    <xs:element name="annotation" type="Annotation"/>
    165268
     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  -->
    166284    <xs:element name="newAnnotation" type="Annotation"/>
    167 
    168     <xs:element name="source" type="Source"/>
    169 
    170     <xs:element name="notebook" type="Notebook"/>
    171285
    172286</xs:schema>
Note: See TracChangeset for help on using the changeset viewer.