c3d2-web/html5-syntax/ruby.rng

81 lines
2.3 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="ruby.elem">
<a:documentation> RELAX NG Schema for HTML 5: Ruby #</a:documentation>
<!-- ##################################################################### -->
<a:documentation/>
<a:documentation>Ruby Annotation: &lt;ruby&gt;</a:documentation>
<element name="ruby">
<interleave>
<ref name="ruby.inner"/>
<ref name="ruby.attrs"/>
</interleave>
</element>
</define>
<define name="ruby.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria"/>
</optional>
</interleave>
</define>
<define name="ruby.inner">
<oneOrMore>
<ref name="common.inner.phrasing"/>
<choice>
<ref name="rt.elem"/>
<group>
<ref name="rp.elem"/>
<ref name="rt.elem"/>
<ref name="rp.elem"/>
</group>
</choice>
</oneOrMore>
</define>
<define name="common.elem.phrasing" combine="choice">
<ref name="ruby.elem"/>
</define>
<define name="rt.elem">
<a:documentation>Ruby Text: &lt;rt&gt;</a:documentation>
<element name="rt">
<interleave>
<ref name="rt.inner"/>
<ref name="rt.attrs"/>
</interleave>
</element>
</define>
<define name="rt.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria"/>
</optional>
</interleave>
</define>
<define name="rt.inner">
<ref name="common.inner.phrasing"/>
</define>
<define name="rp.elem">
<a:documentation>Ruby Parenthesis: &lt;rp&gt;</a:documentation>
<element name="rp">
<interleave>
<ref name="rp.inner"/>
<ref name="rp.attrs"/>
</interleave>
</element>
</define>
<define name="rp.attrs">
<interleave>
<ref name="common.attrs"/>
<optional>
<ref name="common.attrs.aria"/>
</optional>
</interleave>
</define>
<define name="rp.inner">
<ref name="common.inner.phrasing"/>
</define>
</grammar>