From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

<?xml version="1.0" encoding="UTF-8"?>
<a:documentation>
SVG 1.1 Text Module
file: svg-text.rng
This is SVG, a language for describing two-dimensional graphics in XML.
Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
$Id: svg-text.rng,v 1.1 2003/07/15 07:11:10 dean Exp $
</a:documentation>
<a:documentation>
Text
text, tspan, tref, textPath, altGlyph, altGlyphDef, altGlyphItem,
glyphRef
This module declares markup to provide support for alternate glyph.
</a:documentation>
<include href="urn:x-LaTeXML:RelaxNG:svg:svg-basic-text.rng"/>
<a:documentation>
Datatypes
</a:documentation>
<define name="BaselineShiftValue.datatype">
<data type="string"/>
</define>
<define name="FontSizeAdjustValue.datatype">
<data type="string"/>
</define>
<define name="GlyphOrientationHorizontalValue.datatype">
<data type="string"/>
</define>
<define name="GlyphOrientationVerticalValue.datatype">
<data type="string"/>
</define>
<define name="KerningValue.datatype">
<data type="string"/>
</define>
<define name="SpacingValue.datatype">
<data type="string"/>
</define>
<define name="TextDecorationValue.datatype">
<data type="string"/>
</define>
<a:documentation>
SVG.Text.attrib
</a:documentation>
<define name="SVG.Text.extra.attrib">
<empty/>
</define>
<define name="SVG.Text.attrib" combine="interleave">
<optional>
<attribute name="writing-mode">
<choice>
<value>lr-tb</value>
<value>rl-tb</value>
<value>tb-rl</value>
<value>lr</value>
<value>rl</value>
<value>tb</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
<ref name="SVG.Text.extra.attrib"/>
</define>
<a:documentation>
SVG.TextContent.attrib
</a:documentation>
<define name="SVG.TextContent.extra.attrib">
<empty/>
</define>
<define name="SVG.TextContent.attrib" combine="interleave">
<optional>
<attribute name="alignment-baseline">
<choice>
<value>auto</value>
<value>baseline</value>
<value>before-edge</value>
<value>text-before-edge</value>
<value>middle</value>
<value>central</value>
<value>after-edge</value>
<value>text-after-edge</value>
<value>ideographic</value>
<value>alphabetic</value>
<value>hanging</value>
<value>mathematical</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="baseline-shift">
<ref name="BaselineShiftValue.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="direction">
<choice>
<value>ltr</value>
<value>rtl</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="dominant-baseline">
<choice>
<value>auto</value>
<value>use-script</value>
<value>no-change</value>
<value>reset-size</value>
<value>ideographic</value>
<value>alphabetic</value>
<value>hanging</value>
<value>mathematical</value>
<value>central</value>
<value>middle</value>
<value>text-after-edge</value>
<value>text-before-edge</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="glyph-orientation-horizontal">
<ref name="GlyphOrientationHorizontalValue.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="glyph-orientation-vertical">
<ref name="GlyphOrientationVerticalValue.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="kerning">
<ref name="KerningValue.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="letter-spacing">
<ref name="SpacingValue.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="text-anchor">
<choice>
<value>start</value>
<value>middle</value>
<value>end</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="text-decoration">
<ref name="TextDecorationValue.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="unicode-bidi">
<choice>
<value>normal</value>
<value>embed</value>
<value>bidi-override</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="word-spacing">
<ref name="SpacingValue.datatype"/>
</attribute>
</optional>
<ref name="SVG.TextContent.extra.attrib"/>
</define>
<define name="SVG.Font.attrib" combine="interleave">
<optional>
<attribute name="font-size-adjust">
<ref name="FontSizeAdjustValue.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="font-stretch">
<choice>
<value>normal</value>
<value>wider</value>
<value>narrower</value>
<value>ultra-condensed</value>
<value>extra-condensed</value>
<value>condensed</value>
<value>semi-condensed</value>
<value>semi-expanded</value>
<value>expanded</value>
<value>extra-expanded</value>
<value>ultra-expanded</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="font-variant">
<choice>
<value>normal</value>
<value>small-caps</value>
<value>inherit</value>
</choice>
</attribute>
</optional>
</define>
<define name="SVG.Text.class" combine="choice">
<a:documentation>
extend SVG.Text.class
</a:documentation>
<ref name="altGlyphDef"/>
</define>
<define name="SVG.TextContent.class" combine="choice">
<a:documentation>
extend SVG.TextContent.class
</a:documentation>
<choice>
<ref name="tspan"/>
<ref name="tref"/>
<ref name="textPath"/>
</choice>
</define>
<a:documentation>
text: Text Element
</a:documentation>
<define name="SVG.text.class" combine="choice">
<ref name="SVG.TextContent.class"/>
</define>
<define name="attlist.text" combine="interleave">
<ref name="SVG.Text.attrib"/>
<ref name="SVG.TextContent.attrib"/>
<optional>
<attribute name="dx">
<ref name="Lengths.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="dy">
<ref name="Lengths.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="textLength">
<ref name="Length.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="lengthAdjust">
<choice>
<value>spacing</value>
<value>spacingAndGlyphs</value>
</choice>
</attribute>
</optional>
</define>
<a:documentation>
tspan: Text Span Element
</a:documentation>
<define name="SVG.tspan.content">
<zeroOrMore>
<choice>
<text/>
<ref name="tspan"/>
<ref name="tref"/>
<ref name="altGlyph"/>
<ref name="animate"/>
<ref name="set"/>
<ref name="animateColor"/>
<ref name="SVG.Description.class"/>
<ref name="SVG.Hyperlink.class"/>
</choice>
</zeroOrMore>
</define>
<define name="tspan">
<element name="tspan">
<ref name="attlist.tspan"/>
<ref name="SVG.tspan.content"/>
</element>
</define>
<define name="attlist.tspan" combine="interleave">
<ref name="SVG.Core.attrib"/>
<ref name="SVG.Conditional.attrib"/>
<ref name="SVG.Style.attrib"/>
<ref name="SVG.TextContent.attrib"/>
<ref name="SVG.Font.attrib"/>
<ref name="SVG.Paint.attrib"/>
<ref name="SVG.Color.attrib"/>
<ref name="SVG.Opacity.attrib"/>
<ref name="SVG.Graphics.attrib"/>
<ref name="SVG.Clip.attrib"/>
<ref name="SVG.Mask.attrib"/>
<ref name="SVG.Filter.attrib"/>
<ref name="SVG.GraphicalEvents.attrib"/>
<ref name="SVG.Cursor.attrib"/>
<ref name="SVG.External.attrib"/>
<optional>
<attribute name="x">
<ref name="Coordinates.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="y">
<ref name="Coordinates.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="dx">
<ref name="Lengths.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="dy">
<ref name="Lengths.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="rotate">
<ref name="Numbers.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="textLength">
<ref name="Length.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="lengthAdjust">
<choice>
<value>spacing</value>
<value>spacingAndGlyphs</value>
</choice>
</attribute>
</optional>
</define>
<a:documentation>
tref: Text Reference Element
</a:documentation>
<define name="SVG.tref.content">
<zeroOrMore>
<choice>
<ref name="animate"/>
<ref name="set"/>
<ref name="animateColor"/>
<ref name="SVG.Description.class"/>
</choice>
</zeroOrMore>
</define>
<define name="tref">
<element name="tref">
<ref name="attlist.tref"/>
<ref name="SVG.tref.content"/>
</element>
</define>
<define name="attlist.tref" combine="interleave">
<ref name="SVG.Core.attrib"/>
<ref name="SVG.Conditional.attrib"/>
<ref name="SVG.Style.attrib"/>
<ref name="SVG.TextContent.attrib"/>
<ref name="SVG.Font.attrib"/>
<ref name="SVG.Paint.attrib"/>
<ref name="SVG.Color.attrib"/>
<ref name="SVG.Opacity.attrib"/>
<ref name="SVG.Graphics.attrib"/>
<ref name="SVG.Clip.attrib"/>
<ref name="SVG.Mask.attrib"/>
<ref name="SVG.Filter.attrib"/>
<ref name="SVG.GraphicalEvents.attrib"/>
<ref name="SVG.Cursor.attrib"/>
<ref name="SVG.XLinkRequired.attrib"/>
<ref name="SVG.External.attrib"/>
<optional>
<attribute name="x">
<ref name="Coordinates.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="y">
<ref name="Coordinates.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="dx">
<ref name="Lengths.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="dy">
<ref name="Lengths.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="rotate">
<ref name="Numbers.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="textLength">
<ref name="Length.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="lengthAdjust">
<choice>
<value>spacing</value>
<value>spacingAndGlyphs</value>
</choice>
</attribute>
</optional>
</define>
<a:documentation>
textPath: Text Path Element
</a:documentation>
<define name="SVG.textPath.content">
<zeroOrMore>
<choice>
<text/>
<ref name="tspan"/>
<ref name="tref"/>
<ref name="altGlyph"/>
<ref name="animate"/>
<ref name="set"/>
<ref name="animateColor"/>
<ref name="SVG.Description.class"/>
<ref name="SVG.Hyperlink.class"/>
</choice>
</zeroOrMore>
</define>
<define name="textPath">
<element name="textPath">
<ref name="attlist.textPath"/>
<ref name="SVG.textPath.content"/>
</element>
</define>
<define name="attlist.textPath" combine="interleave">
<ref name="SVG.Core.attrib"/>
<ref name="SVG.Conditional.attrib"/>
<ref name="SVG.Style.attrib"/>
<ref name="SVG.TextContent.attrib"/>
<ref name="SVG.Font.attrib"/>
<ref name="SVG.Paint.attrib"/>
<ref name="SVG.Color.attrib"/>
<ref name="SVG.Opacity.attrib"/>
<ref name="SVG.Graphics.attrib"/>
<ref name="SVG.Clip.attrib"/>
<ref name="SVG.Mask.attrib"/>
<ref name="SVG.Filter.attrib"/>
<ref name="SVG.GraphicalEvents.attrib"/>
<ref name="SVG.Cursor.attrib"/>
<ref name="SVG.XLinkRequired.attrib"/>
<ref name="SVG.External.attrib"/>
<optional>
<attribute name="startOffset">
<ref name="Length.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="textLength">
<ref name="Length.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="lengthAdjust">
<choice>
<value>spacing</value>
<value>spacingAndGlyphs</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="method">
<choice>
<value>align</value>
<value>stretch</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="spacing">
<choice>
<value>auto</value>
<value>exact</value>
</choice>
</attribute>
</optional>
</define>
<a:documentation>
altGlyph: Alternate Glyph Element
</a:documentation>
<define name="attlist.altGlyph" combine="interleave">
<ref name="SVG.TextContent.attrib"/>
<optional>
<attribute name="x">
<ref name="Coordinates.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="y">
<ref name="Coordinates.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="dx">
<ref name="Lengths.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="dy">
<ref name="Lengths.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="rotate">
<ref name="Numbers.datatype"/>
</attribute>
</optional>
</define>
<a:documentation>
altGlyphDef: Alternate Glyph Definition Element
</a:documentation>
<define name="SVG.altGlyphDef.content" combine="choice">
<oneOrMore>
<ref name="altGlyphItem"/>
</oneOrMore>
</define>
<a:documentation>
altGlyphItem: Alternate Glyph Item Element
</a:documentation>
<define name="SVG.altGlyphItem.content">
<oneOrMore>
<ref name="glyphRef"/>
</oneOrMore>
</define>
<define name="altGlyphItem">
<element name="altGlyphItem">
<ref name="attlist.altGlyphItem"/>
<ref name="SVG.altGlyphItem.content"/>
</element>
</define>
<define name="attlist.altGlyphItem" combine="interleave">
<ref name="SVG.Core.attrib"/>
</define>
<a:documentation>
glyphRef: Glyph Reference Element
</a:documentation>
<define name="attlist.glyphRef" combine="interleave">
<optional>
<attribute name="x">
<ref name="Number.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="y">
<ref name="Number.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="dx">
<ref name="Number.datatype"/>
</attribute>
</optional>
<optional>
<attribute name="dy">
<ref name="Number.datatype"/>
</attribute>
</optional>
</define>
</grammar>