RelaxNG/publiset.rnc
changeset 30 c0f9e813c039
parent 29 0bd36d3b6a5a
child 34 c51d5097d065
equal deleted inserted replaced
29:0bd36d3b6a5a 30:c0f9e813c039
    38 xslt.attribute = attribute xslt { xsd:anyURI }
    38 xslt.attribute = attribute xslt { xsd:anyURI }
    39 xpath.attribute = attribute xpath { text }
    39 xpath.attribute = attribute xpath { text }
    40 
    40 
    41 composition.content =
    41 composition.content =
    42    composition.head?,
    42    composition.head?,
    43    (composition.file | composition.division)+
    43    (composition.division | composition.file)+
    44 
    44 
    45 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ selection ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    45 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ selection ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    46 
    46 
    47 selection = element selection {
    47 selection = element selection {
    48    selection.attributes,
    48    selection.attributes,
    50 }
    50 }
    51 
    51 
    52 selection.attributes =
    52 selection.attributes =
    53    selection.id.attribute
    53    selection.id.attribute
    54  & path.attribute?
    54  & path.attribute?
    55  & xpath.attribute?
       
    56 selection.id.attribute = attribute xml:id { xsd:ID }
    55 selection.id.attribute = attribute xml:id { xsd:ID }
    57 
    56 
    58 selection.content =
    57 selection.content =
    59    selection.head?,
    58    selection.head?,
    60    (selection.file | selection.division)+
    59    (selection.division | selection.file | link)+
    61 
    60 
    62 
    61 
    63 # =============================================================================
    62 # =============================================================================
    64 #                                  HEAD LEVEL
    63 #                                  HEAD LEVEL
    65 # =============================================================================
    64 # =============================================================================
   166  & xpath.attribute?
   165  & xpath.attribute?
   167  & xslt.attribute?
   166  & xslt.attribute?
   168  & remap.attributes
   167  & remap.attributes
   169 selection.division.attributes =
   168 selection.division.attributes =
   170    path.attribute?
   169    path.attribute?
   171  & xpath.attribute?
       
   172 
   170 
   173 composition.division.content =
   171 composition.division.content =
   174    composition.head?,
   172    composition.head?,
   175    (composition.division | composition.file)+
   173    (composition.division | composition.file)+
   176 selection.division.content =
   174 selection.division.content =
   177    selection.head?,
   175    selection.head?,
   178    (selection.division | selection.file)+
   176    (selection.division | selection.file | link)+
   179 
   177 
   180 
   178 
   181 # =============================================================================
   179 # =============================================================================
   182 #                                  FILE LEVEL
   180 #                                  FILE LEVEL
   183 # =============================================================================
   181 # =============================================================================
   184 
   182 
   185 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   183 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ file ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   186 
   184 
   187 composition.file = element file { composition.file.attributes, file.content }
   185 composition.file = element file { composition.file.attributes }
   188 selection.file = element file { selection.file.attributes, file.content }
   186 selection.file = element file { selection.file.attributes, file.content }
   189 
   187 
   190 composition.file.attributes =
   188 composition.file.attributes =
   191    xpath.attribute?
   189    name.attribute
       
   190  & xpath.attribute?
   192  & xslt.attribute?
   191  & xslt.attribute?
   193  & remap.attributes
   192  & remap.attributes
   194 selection.file.attributes =
   193 selection.file.attributes =
   195    xpath.attribute?
   194    name.attribute
   196 
   195  & uri.attribute?
   197 file.content = xsd:anyURI
   196 name.attribute = attribute name { xsd:anyURI }
   198    
   197 uri.attribute = attribute uri { xsd:anyURI }
       
   198 
       
   199 file.content = inlines
       
   200 
       
   201 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ link ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
       
   202 
       
   203 link = element link { link.attributes, link.content }
       
   204 
       
   205 link.attributes =
       
   206    uri.attribute
       
   207 
       
   208 link.content = inlines
       
   209 
       
   210 
   199 # =============================================================================
   211 # =============================================================================
   200 #                                 INLINE LEVEL
   212 #                                 INLINE LEVEL
   201 # =============================================================================
   213 # =============================================================================
   202 
   214 
   203 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   215 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ inlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~