RelaxNG/publiset.rnc
changeset 256 2b36e6a5b587
parent 241 b403a6ac3061
child 257 814f79990a58
equal deleted inserted replaced
255:3a9b70f0d4f7 256:2b36e6a5b587
    51 composition.head.attributes =
    51 composition.head.attributes =
    52    remap.attributes
    52    remap.attributes
    53 
    53 
    54 composition.head.content =
    54 composition.head.content =
    55    (title, shorttitle?, subtitle*)?
    55    (title, shorttitle?, subtitle*)?
    56  & (identifier, identifier?)?
    56  & identifier*
    57  & copyright*
    57  & copyright*
    58  & collection?
    58  & collection?
    59  & contributors?
    59  & contributors?
    60  & date?
    60  & date?
    61  & keywordset?
    61  & keywordset?
   166 
   166 
   167 title.content = inlines
   167 title.content = inlines
   168 
   168 
   169 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   169 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ identifier ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   170 
   170 
   171 identifier.uri = element identifier {
   171 # ~~~~~~ identifier
   172    attribute type { "uri" }, xsd:anyURI
       
   173 }
       
   174 
       
   175 identifier.ean = element identifier {
       
   176    attribute type { "ean" }, xsd:token {pattern = "\d{13}"}
       
   177 }
       
   178 
       
   179 identifier = identifier.uri | identifier.ean
   172 identifier = identifier.uri | identifier.ean
       
   173 
       
   174 # ~~~~~~ identifier.uri
       
   175 identifier.uri = element identifier { identifier.uri.attributes }
       
   176 
       
   177 identifier.uri.attributes =
       
   178    type_uri.attribute
       
   179  & for.attribute?
       
   180 type_uri.attribute = attribute type { "uri" }, xsd:anyURI
       
   181 for.attribute = attribute for { xsd:NCName }
       
   182 
       
   183 # ~~~~~~ identifier.ean
       
   184 identifier.ean = element identifier { identifier.ean.attributes }
       
   185 
       
   186 identifier.ean.attributes =
       
   187    type_ean.attribute
       
   188  & for.attribute?
       
   189 type_ean.attribute = attribute type { "ean" }, xsd:token {pattern = "\d{13}"}
   180 
   190 
   181 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ copyright ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   191 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ copyright ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   182 
   192 
   183 copyright = element copyright { copyright.content }
   193 copyright = element copyright { copyright.content }
   184 
   194