nonRDFaLite = empty # ##################################################################### ## RELAX NG Schema for HTML 5: RDFa 1.1 and RDFa Lite 1.1 # # ##################################################################### # ##################################################################### ## RDFa Datatypes # # ##################################################################### common.data.rdfa.safecurie = xsd:string { pattern = "\[(([\i-[:]][\c-[:]]*)?:?)[^\s]*\]" minLength = "2" } common.data.rdfa.curie = xsd:string { pattern = "(([\i-[:]][\c-[:]]*)?:)[^\s]*" minLength = "1" } common.data.rdfa.term = xsd:string { pattern = "[\i-[:]][/\c-[:]]*" } # ##################################################################### ## RDFa Attributes # # ##################################################################### common.attrs.rdfa &= ( common.attrs.rdfa.about? & common.attrs.rdfa.prefix? & common.attrs.rdfa.property? & common.attrs.rdfa.typeof? & common.attrs.rdfa.vocab? & common.attrs.rdfa.content? & common.attrs.rdfa.datatype? & common.attrs.rdfa.rel? & common.attrs.rdfa.resource? & common.attrs.rdfa.rev? & common.attrs.rdfa.inlist? ) common.attrs.rdfa.prefix = attribute prefix { ( xsd:string { pattern = "\s*([\i-[:]][\c-[:]]*: [^ ]+)(\s+[\i-[:]][\c-[:]]*: [^ ]+)*\s*" } | string "" ) } common.attrs.rdfa.property = attribute property { ( list { ( common.data.rdfa.term | common.data.rdfa.curie | common.data.uri.absolute )+ } | string "" ) } common.attrs.rdfa.resource = attribute resource { ( common.data.rdfa.safecurie | common.data.rdfa.curie | common.data.uri ) } common.attrs.rdfa.typeof = attribute typeof { ( list { ( common.data.rdfa.term | common.data.rdfa.curie | common.data.uri.absolute )+ } | string "" ) } common.attrs.rdfa.vocab = attribute vocab { ( common.data.uri.absolute | string "" ) } common.attrs.rdfa.about = attribute about { ( common.data.rdfa.safecurie | common.data.rdfa.curie | common.data.uri ) } & nonRDFaLite common.attrs.rdfa.content = attribute content { string } & nonRDFaLite common.attrs.rdfa.datatype = attribute datatype { ( common.data.rdfa.term | common.data.rdfa.curie | common.data.uri.absolute | string "" ) } & nonRDFaLite common.attrs.rdfa.rel = attribute rel { ( list { ( common.data.rdfa.term | common.data.rdfa.curie | common.data.uri.absolute )+ } | string "" ) } & nonRDFaLite common.attrs.rdfa.rev = attribute rev { ( list { ( common.data.rdfa.term | common.data.rdfa.curie | common.data.uri.absolute )+ } | string "" ) } & nonRDFaLite common.attrs.rdfa.inlist = attribute inlist { string } & nonRDFaLite common.attrs.rdfa.no-rel &= ( common.attrs.rdfa.about? & common.attrs.rdfa.prefix? & common.attrs.rdfa.property? & common.attrs.rdfa.typeof? & common.attrs.rdfa.vocab? & common.attrs.rdfa.content? & common.attrs.rdfa.datatype? & common.attrs.rdfa.resource? & common.attrs.rdfa.rev? & common.attrs.rdfa.inlist? ) common.attrs.rdfa.no-rel-rev &= ( common.attrs.rdfa.about? & common.attrs.rdfa.prefix? & common.attrs.rdfa.property? & common.attrs.rdfa.typeof? & common.attrs.rdfa.vocab? & common.attrs.rdfa.content? & common.attrs.rdfa.datatype? & common.attrs.rdfa.resource? & common.attrs.rdfa.inlist? ) common.attrs.rdfa.no-content-noproperty &= ( common.attrs.rdfa.about? & common.attrs.rdfa.prefix? & common.attrs.rdfa.typeof? & common.attrs.rdfa.vocab? & common.attrs.rdfa.datatype? & common.attrs.rdfa.resource? & common.attrs.rdfa.inlist? ) common.attrs &= common.attrs.rdfa a.attrs &= common.attrs.rdfa.no-rel-rev area.attrs &= common.attrs.rdfa.no-rel base.attrs &= common.attrs.rdfa.no-rel link.rdfa.elem.metadata = element link { link.inner & link.rdfa.attrs.metadata } link.rdfa.elem.phrasing = element link { link.inner & link.rdfa.attrs.phrasing } link.rdfa.attrs.metadata = ( common.attrs.basic & common.attrs.i18n & common.attrs.present & common.attrs.other & ( ( common.attrs.rdfa.property & link.attrs.rel? ) | ( common.attrs.rdfa.property? & link.attrs.rel ) ) & link.attrs.href & common.attrs.rdfa.about? & common.attrs.rdfa.prefix? & common.attrs.rdfa.typeof? & common.attrs.rdfa.vocab? & common.attrs.rdfa.content? & common.attrs.rdfa.datatype? & common.attrs.rdfa.resource? & common.attrs.rdfa.rev? & common.attrs.rdfa.inlist? & shared-hyperlink.attrs.hreflang? & shared-hyperlink.attrs.media? & shared-hyperlink.attrs.type? & link.attrs.sizes? # link.attrs.title included in common.attrs & embedded.content.attrs.crossorigin? & ( common.attrs.aria.role.link | common.attrs.aria.role.presentation | common.attrs.aria.role.menuitem )? ) link.rdfa.attrs.phrasing = ( common.attrs.basic & common.attrs.i18n & common.attrs.present & common.attrs.other & common.attrs.rdfa.property & link.attrs.rel? & ( ( common.attrs.rdfa.resource & link.attrs.href? ) | ( common.attrs.rdfa.resource? & link.attrs.href ) ) & common.attrs.rdfa.about? & common.attrs.rdfa.prefix? & common.attrs.rdfa.typeof? & common.attrs.rdfa.vocab? & common.attrs.rdfa.content? & common.attrs.rdfa.datatype? & common.attrs.rdfa.rev? & common.attrs.rdfa.inlist? & shared-hyperlink.attrs.hreflang? & shared-hyperlink.attrs.media? & shared-hyperlink.attrs.type? & link.attrs.sizes? # link.attrs.title included in common.attrs & embedded.content.attrs.crossorigin? & ( common.attrs.aria.role.link | common.attrs.aria.role.presentation | common.attrs.aria.role.menuitem )? ) common.elem.metadata |= link.rdfa.elem.metadata common.elem.phrasing |= link.rdfa.elem.phrasing ## in head ("name" attribute optional) meta.property.elem = element meta { meta.inner & meta.property.attrs } meta.property.attrs = ( common.attrs.basic & common.attrs.i18n & common.attrs.present & common.attrs.other & meta.name.attrs.name? & common.attrs.rdfa.property & meta.name.attrs.content & ( common.attrs.aria.role.presentation | common.attrs.aria.role.menuitem )? ) common.elem.metadata |= meta.property.elem ## in body ("name" attribute disallowed) meta.property-no-name.elem = element meta { meta.inner & meta.property-no-name.attrs } meta.property-no-name.attrs = ( common.attrs.basic & common.attrs.i18n & common.attrs.present & common.attrs.other & common.attrs.rdfa.property & meta.name.attrs.content & ( common.attrs.aria.role.presentation | common.attrs.aria.role.menuitem )? ) common.elem.phrasing |= meta.property-no-name.elem meta.property.attrs &= common.attrs.rdfa.no-content-noproperty meta.property-no-name.attrs &= common.attrs.rdfa.no-content-noproperty meta.name.attrs &= common.attrs.rdfa.no-content-noproperty