Changeset 2886


Ignore:
Timestamp:
05/13/13 12:47:02 (11 years ago)
Author:
olhsha
Message:

adding envelopes and moving to persmissions lists

File:
1 edited

Legend:

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

    r2847 r2886  
    99    <!--////////////////////////////////////////////////////-->
    1010    <!-- Annotation-body types according to the UML diagram -->
    11    
     11
    1212    <!-- DASISH resources (cached representations, sources, users, annotations, notebooks) have an obligatory URIdasih element-->
    1313    <!-- The integrity of the references must be forced via the backend -->
    14    
    15      
    16    
     14
     15
     16
    1717    <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    
     18        <xs:attribute name="ref" type="xs:anyURI" use="required"/>
     19    </xs:complexType>
     20
     21
    2422    <!--////////////////////////-->
    2523    <!--Cached representations -->
     
    3129        <xs:attribute name="type" type="xs:string" use="required"/>
    3230    </xs:complexType>
    33    
     31
    3432
    3533    <xs:complexType name="CachedRepresentations">
     
    5553    </xs:complexType>
    5654
    57  
     55
    5856    <xs:complexType name="Sources">
    5957        <xs:sequence>
     
    6159        </xs:sequence>
    6260    </xs:complexType>
    63    
    64    
     61
     62
    6563    <xs:complexType name="SourceInfo">
    6664        <xs:complexContent>
     
    6967                    <xs:element name="link" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
    7068                    <xs:element name="version" type="xs:string" minOccurs="1" maxOccurs="1"/>
    71                 </xs:sequence> 
    72             </xs:extension>
    73         </xs:complexContent>
    74     </xs:complexType>
    75    
     69                </xs:sequence>
     70            </xs:extension>
     71        </xs:complexContent>
     72    </xs:complexType>
     73
    7674    <xs:complexType name="SourceInfos">
    7775        <xs:sequence>
     
    7977        </xs:sequence>
    8078    </xs:complexType>
    81    
    82        
     79
     80
    8381    <xs:complexType name="Versions">
    8482        <xs:sequence>
     
    8684        </xs:sequence>
    8785    </xs:complexType>
    88    
     86
    8987    <!-- News sources, new/old sources  -->
    90    
     88
    9189    <xs:complexType name="NewSourceInfo">
    92                 <xs:sequence>
    93                     <xs:element name="link" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
    94                     <xs:element name="version" type="xs:string" minOccurs="1" maxOccurs="1"/>
    95                 </xs:sequence> 
    96             <xs:attribute ref="xml:id" use="required"/>       
    97     </xs:complexType>
    98    
     90        <xs:sequence>
     91            <xs:element name="link" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
     92            <xs:element name="version" type="xs:string" minOccurs="1" maxOccurs="1"/>
     93        </xs:sequence>
     94        <xs:attribute ref="xml:id" use="required"/>
     95    </xs:complexType>
     96
    9997    <xs:complexType name="NewOrExistingSourceInfo">
    10098        <xs:choice>
    10199            <xs:element name="source" type="SourceInfo"/>
    102100            <xs:element name="newSource" type="NewSourceInfo"/>
    103         </xs:choice> 
    104     </xs:complexType>
    105    
    106    
     101        </xs:choice>
     102    </xs:complexType>
     103
     104
    107105    <xs:complexType name="NewOrExistingSourceInfos">
    108106        <xs:sequence>
    109             <xs:element name="target" type="NewOrExistingSourceInfo" minOccurs="1" maxOccurs="unbounded"/>
    110         </xs:sequence>
    111     </xs:complexType>
    112  
    113     <!--////////////////////////////-->
    114     <!-- Human Agents (Users) -->
     107            <xs:element name="target" type="NewOrExistingSourceInfo" minOccurs="1"
     108                maxOccurs="unbounded"/>
     109        </xs:sequence>
     110    </xs:complexType>
     111
     112    <!--////////////////////////////-->
     113    <!-- Users -->
    115114
    116115    <xs:complexType name="User">
    117116        <xs:sequence>
    118             <xs:element name="notebooksToRead" type="NotebookInfos"/>
    119             <xs:element name="notebooksToWrite" type="NotebookInfos"/>
    120117            <xs:element name="additionalInfo">
    121118                <xs:complexType>
     
    129126        <xs:attribute name="URI" type="xs:anyURI" use="required"/>
    130127        <xs:attribute name="name" type="xs:string" use="required"/>
    131     </xs:complexType>
    132    
     128        <xs:attribute name="eMail" type="xs:string" use="requred"/>
     129    </xs:complexType>
     130   
     131    <!-- TODO: make a type for e-mail string -->
     132
    133133    <xs:complexType name="Users">
    134134        <xs:sequence>
     
    141141        <xs:complexContent>
    142142            <xs:extension base="ResourceREF">
    143                 <xs:sequence>
    144                     <xs:element name="notebooksToRead" type="NotebookInfos"/>
    145                     <xs:element name="notebooksToWrite" type="NotebookInfos"/>
    146                 </xs:sequence>
    147             </xs:extension>
    148         </xs:complexContent>
    149     </xs:complexType>
    150    
    151    
     143            </xs:extension>
     144        </xs:complexContent>
     145        <xs:attribute name="eMail" type="xs:string" use="required"/>
     146    </xs:complexType>
     147
     148
    152149    <xs:complexType name="UserInfos">
    153150        <xs:sequence>
     
    159156        <xs:complexContent>
    160157            <xs:extension base="ResourceREF">
    161                 <xs:attribute name="currentUser" type="xs:boolean" use="required"/>   
    162             </xs:extension>
    163         </xs:complexContent>
    164     </xs:complexType>
    165    
    166 
     158                <xs:attribute name="currentUser" type="xs:boolean" use="required"/>
     159            </xs:extension>
     160        </xs:complexContent>
     161    </xs:complexType>
     162
     163    <!--////////////////////////////-->
     164    <!-- permission lists -->
     165
     166    <xs:simpleType name="Permission">
     167        <xs:restriction base="xs:string">
     168            <xs:enumeration value="owner"/>
     169            <xs:enumeration value="reader"/>
     170            <xs:enumeration value="writer"/>
     171        </xs:restriction>
     172    </xs:simpleType>
     173
     174    <xs:complexType name="UserWithPermission">
     175        <xs:complexContent>
     176            <xs:extension base="ResourceREF"></xs:extension>
     177        </xs:complexContent>
     178        <xs:attribute name="permission" type="Permission"/>
     179    </xs:complexType>
     180
     181    <xs:complexType name="PermissionList">
     182        <xs:sequence>
     183            <xs:element name="user" type="UserWithPermission" maxOccurs="unbounded"/>
     184        </xs:sequence>
     185        <xs:attribute name="URI" type="xs:anyURI" use="required"/>
     186    </xs:complexType>
     187   
     188    <!-- no permission-list info required so far, it is just a list -->
    167189
    168190    <!--////////////////////////////-->
    169191    <!-- Annotation -->
    170    
    171    
     192
    172193    <xs:complexType name="Annotation">
    173194        <xs:sequence>
     
    175196            <xs:element name="headline" type="xs:string" minOccurs="1"/>
    176197            <!-- schematron checks the length <== 100 -->
    177             <xs:element name="body" type="Body" minOccurs="1"/>
     198            <xs:element name="body" type="AnnotationBody" minOccurs="1"/>
    178199            <xs:element name="targetSources" type="NewOrExistingSourceInfos" minOccurs="1"/>
    179             <xs:element name="readers" type="Readers" minOccurs="1"/>
    180             <xs:element name="writers" type="Writers" minOccurs="1"/>
     200            <xs:element name="permissions" type="ResourceREF"/>
    181201        </xs:sequence>
    182202        <xs:attribute name="URI" type="xs:anyURI" use="required"/>
     
    184204    </xs:complexType>
    185205
    186  
     206
    187207    <xs:complexType name="Annotations">
    188208        <xs:sequence>
    189209            <xs:element name="annotation" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/>
    190210        </xs:sequence>
    191     </xs:complexType> 
    192    
     211    </xs:complexType>
     212
    193213    <xs:complexType name="AnnotationInfo">
    194214        <xs:complexContent>
    195             <xs:extension base="ResourceREF"> 
     215            <xs:extension base="ResourceREF">
    196216                <xs:sequence>
    197217                    <xs:element name="owner" type="ResourceREF" minOccurs="1" maxOccurs="1"/>
     
    200220                </xs:sequence>
    201221            </xs:extension>
    202         </xs:complexContent> 
    203     </xs:complexType>
    204    
     222        </xs:complexContent>
     223    </xs:complexType>
     224
    205225    <xs:complexType name="AnnotationInfos">
    206226        <xs:sequence>
     
    208228        </xs:sequence>
    209229    </xs:complexType>
    210    
    211     <xs:complexType name="Body">
     230
     231    <xs:complexType name="AnnotationBody">
    212232        <xs:sequence>
    213233            <xs:any processContents="lax" maxOccurs="unbounded"/>
     
    215235        <xs:anyAttribute processContents="lax"/>
    216236    </xs:complexType>
    217    
    218     <xs:complexType name="Readers">
    219         <xs:sequence>
    220             <xs:element name="reader" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/>
    221         </xs:sequence>
    222     </xs:complexType>
    223    
    224     <xs:complexType name="Writers">
    225         <xs:sequence>
    226             <xs:element name="writer" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/>
    227         </xs:sequence>
    228     </xs:complexType>
    229    
    230    
     237
     238
     239
    231240    <!--////////////////////////////-->
    232241    <!-- Notebook -->
     
    236245            <xs:element name="title" type="xs:string"/>
    237246            <xs:element name="annotations" type="Annotations"/>
    238             <xs:element name="readers" type="Readers"/>
    239             <xs:element name="writers" type="Writers"/>
     247            <xs:element name="permissions" type="ResourceREF"/>
    240248        </xs:sequence>
    241249        <xs:attribute name="URI" type="xs:anyURI"/>
    242250        <xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
    243251    </xs:complexType>
    244    
    245  
     252
     253
    246254    <xs:complexType name="Notebooks">
    247255        <xs:sequence>
     
    252260    <xs:complexType name="NotebookInfo">
    253261        <xs:complexContent>
    254             <xs:extension base="ResourceREF"> 
     262            <xs:extension base="ResourceREF">
    255263                <xs:sequence>
    256264                    <xs:element name="notebook" type="ResourceREF"/>
     
    258266                </xs:sequence>
    259267            </xs:extension>
    260         </xs:complexContent> 
     268        </xs:complexContent>
    261269    </xs:complexType>
    262270
     
    267275    </xs:complexType>
    268276
    269  <!--- ACTION -->
    270    
    271     <xs:simpleType name="Action">
     277    <!--- Actions (not a resource; used in the POST/PUT response envelope)-->
     278
     279    <xs:simpleType name="ActionNames">
    272280        <xs:restriction base="xs:string">
    273281            <xs:enumeration value="CREATE_CACHED_REPRESENTATION"/>
     282            <xs:enumeration value="ASK_USER_INFO"/>
    274283        </xs:restriction>
    275284    </xs:simpleType>
    276285   
     286    <xs:simpleType name="Action">
     287        <xs:attribute name="action" type="ActionName" use="required"/>
     288        <xs:attribute name="object" type="xs:anyURI"/>
     289    </xs:simpleType>
     290   
     291    <xs:complexType name="ActionList">
     292        <xs:sequence>
     293            <xs:element name="action" type="Action" minOccurs="0"/>
     294        </xs:sequence>   
     295    </xs:complexType>
     296   
     297    <!-- response envelope (not a resource, used for all response on POST/PUT requests) -->
     298   
     299    <!-- "envelope"-->
     300    <xs:complexType name="ResponseBody">
     301        <xs:sequence>
     302            <xs:element name="content" type="ResponseContent" minOccurs="0" maxOccurs="1"/>
     303            <xs:element name="actions" type="ActionList" minOccurs="1" maxOccurs="1"/>
     304        </xs:sequence>
     305    </xs:complexType>
     306   
     307    <!-- consistency check is left to "schematron":
     308        it has to check if the list objects for CREATE_CACHED_REPRESENTATION(s) conisides with unresolved targets in the content element-annotation
     309        -->
     310   
     311   <xs:complexType name="ResponceContent">
     312       <xs:complexContent>
     313           <xs:choice>
     314               <xs:element name="resolvedAnnotation" type="Annotation"/>
     315               <xs:element name="unResolvedAnnotation" type="Annotation"/>
     316               <!-- something else? -->
     317           </xs:choice>
     318       </xs:complexContent>
     319   </xs:complexType>
     320
     321    <!-- consistency check is left to "schematron":
     322        it has to check if the element with the name resolvedAnnotation indeed contains ALL target resolved; AND
     323        if the element with the name unResolvedAnnotation has at least one unresolved target -->
     324   
    277325
    278326    <!--/////////////////////////////////////-->
    279327    <!-- GET api/user/uid respond -->
    280328    <xs:element name="currentUserInfo" type="CurrentUserInfo"/>
    281    
     329
    282330    <!--/////////////////////////////////////-->
    283331    <!-- GET api/annotations?source="http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia"&access=read  respond -->
    284     <xs:element name="annotations" type="AnnotationInfos"></xs:element>
    285    
     332    <xs:element name="annotations" type="AnnotationInfos"/>
     333
    286334
    287335    <!--/////////////////////////////////////-->
     
    297345    <!--  GET api/sources/SID0xyz/  respond  -->
    298346    <xs:element name="source" type="Source  "/>
    299  
    300        <!--/////////////////////////////////////-->
     347
     348    <!--/////////////////////////////////////-->
    301349    <!-- GET api/sources/SID05/cached/CID0efef/metadata (example usage for unresolvable target sources)   -->
    302350    <xs:element name="cashedRepresentation" type="CachedRepresentation"/>
     
    305353    <!-- POST api/annotation, annotation body  -->
    306354    <xs:element name="newAnnotation" type="Annotation"/>
    307 
     355   
     356    <!--///////////////////////////////////-->
     357    <!-- GET api/annotations/<aid>/permissions -->
     358   
     359    <xs:element  name="listOfPermissions" type="PermissionList"/>
     360   
     361    <!-- PUT api/annotations/<aid> -->
     362   
     363    <!-- Body of the request-->
     364    <xs:element name="newBody" type="AnnotationBody"/>
     365   
     366    <xs:element name="AnnotationBodyUpdate" type="ResponseBody"/>
     367    <!-- example all targets resolved, since it is just a body correction, empty list of actions -->
     368   
    308369</xs:schema>
    309370
    310 <!-- "each" api-call has its specific schemata (input,output) using this bunch of types-->
    311 <!-- serialize/formalize the wordings describing api calls, see also lat-scenario's -->
    312 
    313 <!-- -->
    314 
    315 <!-- concrete node types: not for now
    316     Note extends Body
    317    
    318    
    319     <xs:complexType name="Note">
    320         <xs:complexContent>
    321             <xs:extension base="Body">
    322                 <xs:sequence>
    323                     <xs:element name="text" type="xs:string"/>
    324                 </xs:sequence>
    325             </xs:extension>
    326         </xs:complexContent>
    327     </xs:complexType>
    328    
    329     Colour Body extends Body
    330    
    331     <xs:simpleType name="palette">
    332         <xs:restriction base="xs:string">
    333             <xs:enumeration value="red"/>
    334             <xs:enumeration value="orange"/>
    335             <xs:enumeration value="yellow"/>
    336             <xs:enumeration value="green"/>
    337             <xs:enumeration value="blue"/>
    338             <xs:enumeration value="darkblue"/>
    339             <xs:enumeration value="violet"/>
    340             <xs:enumeration value="white"/>
    341             <xs:enumeration value="pink"/>
    342         </xs:restriction>
    343     </xs:simpleType>
    344    
    345     <xs:complexType name="ColourBody">
    346         <xs:complexContent>
    347             <xs:extension base="Body">
    348                 <xs:sequence>
    349                     <xs:element name="colour" type="palette"/>
    350                 </xs:sequence>
    351             </xs:extension>
    352         </xs:complexContent>
    353     </xs:complexType>
    354    
    355     Relation extends Body
    356    
    357     <xs:complexType name="Relation">
    358         <xs:complexContent>
    359             <xs:extension base="Body">
    360                 <xs:sequence>
    361                     <xs:any processContents="lax"/>
    362                 </xs:sequence>
    363             </xs:extension>
    364         </xs:complexContent>
    365     </xs:complexType>
    366    
    367     Tag extendd Relation
    368    
    369     <xs:complexType name="Tag">
    370         <xs:complexContent>
    371             <xs:extension base="Relation">
    372                 <xs:sequence>
    373                     <xs:element name="tag" type="xs:NMTOKEN"/>
    374                 </xs:sequence>
    375             </xs:extension>
    376         </xs:complexContent>
    377     </xs:complexType>
    378    
    379     Binary Relations extends Relation
    380    
    381     <xs:simpleType name="binaryRelationTag">
    382         <xs:restriction base="xs:string">
    383             <xs:enumeration value="implies"/>
    384             <xs:enumeration value="equivalent"/>
    385             <xs:enumeration value="contradicts"/>
    386         </xs:restriction>
    387     </xs:simpleType>
    388    
    389     <xs:complexType name="BinaryRelation">
    390         <xs:complexContent>
    391             <xs:extension base="Relation">
    392                 <xs:sequence>
    393                     <xs:element name="tag" type="binaryRelationTag"/>
    394                     <xs:element name="first" type="xs:anyURI"/>
    395                     <xs:element name="second" type="xs:anyURI"/>
    396                 </xs:sequence>
    397             </xs:extension>
    398         </xs:complexContent>
    399     </xs:complexType>
    400    
    401     Typed Tag extends Relation
    402    
    403    
    404     <xs:simpleType name="authorName">
    405         <xs:list itemType="xs:NCName"/>
    406     </xs:simpleType>
    407    
    408         <xs:list itemType="xs:NCName"/>
    409     </xs:simpleType>
    410    
    411    
    412     <xs:complexType name="TypedTag">
    413         <xs:complexContent>
    414             <xs:extension base="Relation">
    415                 <xs:choice>
    416                     <xs:element name="author" type="authorName"/>
    417                     <xs:element name="source" type="referenceTitle"/>
    418                     <xs:element name="discussWith" type="xs:string"/>
    419                     <xs:element name="link" type="xs:anyURI"/>
    420                 </xs:choice>
    421             </xs:extension>
    422         </xs:complexContent>
    423     </xs:complexType>
    424    
    425 -->
Note: See TracChangeset for help on using the changeset viewer.