c3d2-web/html5-syntax/microdata.rng

146 lines
4.6 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0">
<!-- ##################################################################### -->
<!-- ##################################################################### -->
<define name="common.attrs.microdata">
<a:documentation> RELAX NG Schema for HTML 5: Microdata #</a:documentation>
<interleave>
<optional>
<ref name="common.attrs.microdata.itemref"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemprop"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemscope"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemtype"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemid"/>
</optional>
</interleave>
</define>
<define name="common.attrs.microdata.itemref">
<attribute name="itemref">
<ref name="common.data.idrefs"/>
</attribute>
</define>
<define name="common.attrs.microdata.itemprop">
<attribute name="itemprop">
<ref name="common.data.microdata-identifier"/>
</attribute>
</define>
<define name="common.attrs.microdata.itemscope">
<attribute name="itemscope">
<choice>
<value type="string">itemscope</value>
<value type="string"/>
</choice>
</attribute>
</define>
<define name="common.attrs.microdata.itemtype">
<attribute name="itemtype">
<ref name="common.data.uri"/>
</attribute>
</define>
<define name="common.attrs.microdata.itemid">
<attribute name="itemid">
<ref name="common.data.uri"/>
</attribute>
</define>
<define name="common.attrs" combine="interleave">
<ref name="common.attrs.microdata"/>
</define>
<define name="link.elem.phrasing">
<element name="link">
<interleave>
<ref name="link.inner"/>
<ref name="link.phrasing.attrs"/>
</interleave>
</element>
</define>
<define name="link.phrasing.attrs">
<interleave>
<ref name="common.attrs.basic"/>
<ref name="common.attrs.i18n"/>
<ref name="common.attrs.present"/>
<ref name="common.attrs.other"/>
<ref name="common.attrs.microdata.itemprop"/>
<optional>
<ref name="common.attrs.microdata.itemref"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemscope"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemtype"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemid"/>
</optional>
<ref name="shared-hyperlink.attrs.href"/>
<ref name="shared-hyperlink.attrs.rel"/>
<optional>
<ref name="shared-hyperlink.attrs.hreflang"/>
</optional>
<optional>
<ref name="shared-hyperlink.attrs.media"/>
</optional>
<optional>
<ref name="shared-hyperlink.attrs.type"/>
</optional>
<optional>
<ref name="link.attrs.sizes"/>
</optional>
</interleave>
<!-- link.attrs.title included in common.attrs -->
</define>
<define name="common.elem.phrasing" combine="choice">
<ref name="link.elem.phrasing"/>
</define>
<define name="meta.itemprop.elem">
<a:documentation>Property Metadata: &lt;meta itemprop&gt;</a:documentation>
<element name="meta">
<interleave>
<ref name="meta.inner"/>
<ref name="meta.itemprop.attrs"/>
</interleave>
</element>
</define>
<define name="meta.itemprop.attrs">
<interleave>
<ref name="common.attrs.basic"/>
<ref name="common.attrs.i18n"/>
<ref name="common.attrs.present"/>
<ref name="common.attrs.other"/>
<ref name="common.attrs.microdata.itemprop"/>
<optional>
<ref name="common.attrs.microdata.itemref"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemscope"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemtype"/>
</optional>
<optional>
<ref name="common.attrs.microdata.itemid"/>
</optional>
<ref name="meta.itemprop.attrs.content"/>
</interleave>
</define>
<define name="meta.itemprop.attrs.content">
<attribute name="content">
<data type="string" datatypeLibrary=""/>
</attribute>
</define>
<define name="common.elem.metadata" combine="choice">
<ref name="meta.itemprop.elem"/>
</define>
<define name="common.elem.phrasing" combine="choice">
<ref name="meta.itemprop.elem"/>
</define>
</grammar>