Changes between Version 33 and Version 34 of DASISH/XSD and XML


Ignore:
Timestamp:
04/26/13 13:38:45 (11 years ago)
Author:
olhsha
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DASISH/XSD and XML

    v33 v34  
    2828There is a number of auxiliary types as well. A commonly-used one is ResourceREF which contains the attribute "ref" of type {{{xs:anyURI}}}. It allows to have announce elements-references and avoid mixing-them-up with elements-resources, without adding REF to the name. For instance {{{<owner ref="http:/dasish.eu/users/UIDefef"  />}}}.
    2929
    30 
    31 {{{#!xml
    32 
    33 <?xml version="1.1" encoding="UTF-8"?>
    34 <xs:schema targetNamespace="http://www.dasish.eu/ns/addit"
    35     xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.dasish.eu/ns/addit"
    36     elementFormDefault="qualified">
    37     <xs:import namespace="http://www.w3.org/XML/1998/namespace"
    38         schemaLocation="http://www.w3.org/2005/08/xml.xsd"/>
    39 
    40 
    41     <!--////////////////////////////////////////////////////-->
    42     <!-- Annotation-body types according to the UML diagram -->
    43    
    44     <!-- DASISH resources (cached representations, sources, users, annotations, notebooks) have an obligatory URIdasih element-->
    45     <!-- The integrity of the references must be forced via the backend -->
    46    
    47        
    48    
    49     <xs:complexType name="ResourceREF">
    50         <xs:attribute name="ref" type="xs:anyURI"></xs:attribute>
    51     </xs:complexType>
    52     <!-- for a new annotation the reference to the source is absent, that's why this attribute is not obligatory-->
    53    
    54 
    55    
    56     <!--////////////////////////-->
    57     <!--Cached representations -->
    58 
    59     <xs:complexType name="CachedRepresentation">
    60         <xs:attribute name="URI" type="xs:anyURI" use="required"/>
    61         <xs:attribute name="mimeType" type="xs:string" use="required"/>
    62         <xs:attribute name="tool" type="xs:string" use="required"/>
    63         <xs:attribute name="type" type="xs:string" use="required"/>
    64     </xs:complexType>
    65    
    66 
    67     <xs:complexType name="CachedRepresentations">
    68         <xs:sequence>
    69             <xs:element name="cachedRepresentation" type="ResourceREF"
    70                 maxOccurs="unbounded"/>
    71         </xs:sequence>
    72     </xs:complexType>
    73 
    74     <!--////////////////////////////-->
    75     <!-- Sources (== Targets in OA) -->
    76 
    77 
    78     <xs:complexType name="Source">
    79         <xs:sequence>
    80             <xs:element name="cachedRepresentations" type="CachedRepresentations" minOccurs="1"/>
    81             <xs:element name="action" type="Action" minOccurs="0"/>
    82             <xs:element name="versions-siblings" type="Versions" minOccurs="1"/>
    83         </xs:sequence>
    84         <xs:attribute name="URI" type="xs:anyURI" use="required"/>
    85         <xs:attribute name="timeSatmp" type="xs:dateTime" use="required"/>
    86         <xs:attribute name="link" type="xs:anyURI" use="required"/>
    87         <xs:attribute name="version" type="xs:string" use="required"/>
    88     </xs:complexType>
    89 
    90  
    91     <xs:complexType name="Sources">
    92         <xs:sequence>
    93             <xs:element name="targetSource" type="ResourceREF" minOccurs="1"
    94                 maxOccurs="unbounded"/>
    95         </xs:sequence>
    96     </xs:complexType>
    97    
    98    
    99     <xs:complexType name="SourceInfo">
    100         <xs:complexContent>
    101             <xs:extension base="ResourceREF">
    102                 <xs:sequence>
    103                     <xs:element name="action" type="Action" minOccurs="0" maxOccurs="1"/>
    104                     <xs:element name="link" type="xs:anyURI" minOccurs="1" maxOccurs="1"/>
    105                     <xs:element name="version" type="xs:string" minOccurs="1" maxOccurs="1"/>
    106                 </xs:sequence> 
    107             </xs:extension>
    108         </xs:complexContent>
    109     </xs:complexType>
    110    
    111     <xs:complexType name="SourceInfos">
    112         <xs:sequence>
    113             <xs:element name="targetSource" type="SourceInfo" minOccurs="1" maxOccurs="unbounded"/>
    114         </xs:sequence>
    115     </xs:complexType>
    116    
    117 
    118     <xs:simpleType name="Action">
    119         <xs:restriction base="xs:string">
    120             <xs:enumeration value="CREATE_CACHED_REPRESENTATION"/>
    121         </xs:restriction>
    122     </xs:simpleType>
    123    
    124    
    125     <xs:complexType name="Versions">
    126         <xs:sequence>
    127             <xs:element name="version" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/>
    128         </xs:sequence>
    129     </xs:complexType>
    130  
    131     <!--////////////////////////////-->
    132     <!-- Human Agents (Users) -->
    133 
    134     <xs:complexType name="User">
    135         <xs:sequence>
    136             <xs:element name="notebooksToRead" type="NotebookInfos"/>
    137             <xs:element name="notebooksToWrite" type="NotebookInfos"/>
    138             <xs:element name="additionalInfo">
    139                 <xs:complexType>
    140                     <xs:sequence>
    141                         <xs:any processContents="lax" maxOccurs="unbounded"/>
    142                     </xs:sequence>
    143                     <xs:anyAttribute processContents="lax"/>
    144                 </xs:complexType>
    145             </xs:element>
    146         </xs:sequence>
    147         <xs:attribute name="URI" type="xs:anyURI" use="required"/>
    148         <xs:attribute name="name" type="xs:string" use="required"/>
    149     </xs:complexType>
    150    
    151     <xs:complexType name="Users">
    152         <xs:sequence>
    153             <xs:element name="user" type="ResourceREF" maxOccurs="unbounded"/>
    154         </xs:sequence>
    155     </xs:complexType>
    156 
    157 
    158     <xs:complexType name="UserInfo">
    159         <xs:complexContent>
    160             <xs:extension base="ResourceREF">
    161                 <xs:sequence>
    162                     <xs:element name="notebooksToRead" type="NotebookInfos"/>
    163                     <xs:element name="notebooksToWrite" type="NotebookInfos"/>
    164                 </xs:sequence>
    165             </xs:extension>
    166         </xs:complexContent>
    167     </xs:complexType>
    168    
    169    
    170     <xs:complexType name="UserInfos">
    171         <xs:sequence>
    172             <xs:element name="user" type="UserInfo" maxOccurs="unbounded"/>
    173         </xs:sequence>
    174     </xs:complexType>
    175 
    176     <xs:complexType name="CurrentUserInfo">
    177         <xs:complexContent>
    178             <xs:extension base="ResourceREF">
    179                 <xs:attribute name="currentUser" type="xs:boolean" use="required"/>   
    180             </xs:extension>
    181         </xs:complexContent>
    182     </xs:complexType>
    183    
    184 
    185 
    186     <!--////////////////////////////-->
    187     <!-- Annotation -->
    188    
    189    
    190     <xs:complexType name="Annotation">
    191         <xs:sequence>
    192             <xs:element name="owner" type="ResourceREF" minOccurs="1"/>
    193             <xs:element name="headline" type="xs:string" minOccurs="1"/>
    194             <!-- schematron checks the length <== 100 -->
    195             <xs:element name="body" type="Body" minOccurs="1"/>
    196             <xs:element name="targetSources" type="SourceInfos" minOccurs="1"/>
    197             <xs:element name="readers" type="Readers" minOccurs="1"/>
    198             <xs:element name="writers" type="Writers" minOccurs="1"/>
    199         </xs:sequence>
    200         <xs:attribute name="URI" type="xs:anyURI" use="required"/>
    201         <xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
    202     </xs:complexType>
    203 
    204  
    205     <xs:complexType name="Annotations">
    206         <xs:sequence>
    207             <xs:element name="annotation" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/>
    208         </xs:sequence>
    209     </xs:complexType>
    210    
    211     <xs:complexType name="AnnotationInfo">
    212         <xs:complexContent>
    213             <xs:extension base="ResourceREF">
    214                 <xs:sequence>
    215                     <xs:element name="owner" type="ResourceREF" minOccurs="1" maxOccurs="1"/>
    216                     <xs:element name="headline" type="xs:string" minOccurs="1" maxOccurs="1"/>
    217                     <xs:element name="targetSources" type="Sources" minOccurs="1" maxOccurs="1"/>
    218                 </xs:sequence>
    219             </xs:extension>
    220         </xs:complexContent>
    221     </xs:complexType>
    222    
    223     <xs:complexType name="AnnotationInfos">
    224         <xs:sequence>
    225             <xs:element name="annotation" type="AnnotationInfo" maxOccurs="unbounded"/>
    226         </xs:sequence>
    227     </xs:complexType>
    228    
    229     <xs:complexType name="Body">
    230         <xs:sequence>
    231             <xs:any processContents="lax" maxOccurs="unbounded"/>
    232         </xs:sequence>
    233         <xs:anyAttribute processContents="lax"/>
    234     </xs:complexType>
    235    
    236     <xs:complexType name="Readers">
    237         <xs:sequence>
    238             <xs:element name="reader" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/>
    239         </xs:sequence>
    240     </xs:complexType>
    241    
    242     <xs:complexType name="Writers">
    243         <xs:sequence>
    244             <xs:element name="writer" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/>
    245         </xs:sequence>
    246     </xs:complexType>
    247    
    248    
    249     <!--////////////////////////////-->
    250     <!-- Notebook -->
    251 
    252     <xs:complexType name="Notebook">
    253         <xs:sequence>
    254             <xs:element name="title" type="xs:string"/>
    255             <xs:element name="annotations" type="Annotations"/>
    256             <xs:element name="readers" type="Readers"/>
    257             <xs:element name="writers" type="Writers"/>
    258         </xs:sequence>
    259         <xs:attribute name="URI" type="xs:anyURI"/>
    260         <xs:attribute name="timeStamp" type="xs:dateTime" use="required"/>
    261     </xs:complexType>
    262    
    263  
    264     <xs:complexType name="Notebooks">
    265         <xs:sequence>
    266             <xs:element name="notebook" type="ResourceREF" minOccurs="1" maxOccurs="unbounded"/>
    267         </xs:sequence>
    268     </xs:complexType>
    269 
    270     <xs:complexType name="NotebookInfo">
    271         <xs:complexContent>
    272             <xs:extension base="ResourceREF">
    273                 <xs:sequence>
    274                     <xs:element name="notebook" type="ResourceREF"/>
    275                     <xs:element name="title" type="xs:string"/>
    276                 </xs:sequence>
    277             </xs:extension>
    278         </xs:complexContent>
    279     </xs:complexType>
    280 
    281     <xs:complexType name="NotebookInfos">
    282         <xs:sequence>
    283             <xs:element name="notebook" type="NotebookInfo" maxOccurs="unbounded"/>
    284         </xs:sequence>
    285     </xs:complexType>
    286 
    287 
    288 
    289     <!--/////////////////////////////////////-->
    290     <!-- GET api/user/uid respond -->
    291     <xs:element name="currentUserInfo" type="CurrentUserInfo"/>
    292    
    293     <!--/////////////////////////////////////-->
    294     <!-- GET api/annotations?source="http://en.wikipedia.org/wiki/Sagrada_Fam%C3%ADlia"&access=read  respond -->
    295     <xs:element name="annotationsOfLink" type="AnnotationInfos"></xs:element>
    296    
    297 
    298     <!--/////////////////////////////////////-->
    299     <!-- GET api/annotations/AIDxyz  respond -->
    300     <xs:element name="annotation" type="Annotation"/>
    301 
    302 
    303     <!--/////////////////////////////////////-->
    304     <!--  GET api/annotations/AID0xyz/sources   respond (non-resolvable)-->
    305     <xs:element name="sources" type="SourceInfos"/>
    306 
    307     <!--/////////////////////////////////////-->
    308     <!--  GET api/sources/SID0xyz/  respond  -->
    309     <xs:element name="source" type="Source  "/>
    310  
    311        <!--/////////////////////////////////////-->
    312     <!-- GET api/sources/SID05/cached/CID0efef/metadata (example usage for unresolvable target sources)   -->
    313     <xs:element name="cashedRepresentation" type="CachedRepresentation"/>
    314 
    315     <!--/////////////////////////////////////-->
    316     <!-- POST api/annotation, annotation body  -->
    317     <xs:element name="newAnnotation" type="Annotation"/>
    318 
    319 </xs:schema>
    320 }}}
     30[source:DASISH/t5.6/docs/XMLandXSD/DASISH-schema.xsd]
     31
    32132
    32233= Scenario XML's validated vs the given schema =