default namespace = "http://www.w3.org/2000/svg" namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" ## ## SVG 1.1 Basic Structure Module ## file: svg-basic-structure.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-basic-structure.rng,v 1.1 2003/07/15 07:11:10 dean Exp $ ## ## ## Basic Structure ## ## svg, g, defs, desc, title, metadata, use ## ## This module declares the major structural elements and their attributes. ## [ xml:lang = "en" ] grammar { ## ## The root element is "svg". ## start = svg ## ## Include core set of modules ## div { ## ## Datatypes Module ## include "svg-datatypes.rnc" ## ## Core Attribute Module ## include "svg-core-attrib.rnc" } a:documentation [ "\x{a}" ~ " Content Models (Default)\x{a}" ~ " " ] SVG.Profile.class = notAllowed SVG.Gradient.class = notAllowed SVG.Pattern.class = notAllowed SVG.Clip.class = notAllowed SVG.Mask.class = notAllowed SVG.Filter.class = notAllowed SVG.Cursor.class = notAllowed SVG.Marker.class = notAllowed SVG.View.class = notAllowed SVG.Script.class = notAllowed SVG.Font.class = notAllowed SVG.Extensibility.class = notAllowed SVG.Conditional.class = notAllowed SVG.Image.class = notAllowed SVG.Style.class = notAllowed SVG.Shape.class = notAllowed SVG.Text.class = notAllowed SVG.Hyperlink.class = notAllowed SVG.Animation.class = notAllowed a:documentation [ "\x{a}" ~ " Attribute Collections (Default)\x{a}" ~ " " ] SVG.Container.attrib = empty SVG.Viewport.attrib = empty SVG.Text.attrib = empty SVG.TextContent.attrib = empty SVG.Opacity.attrib = empty SVG.Marker.attrib = empty SVG.Profile.attrib = empty SVG.Gradient.attrib = empty SVG.Clip.attrib = empty SVG.Mask.attrib = empty SVG.Filter.attrib = empty SVG.FilterColor.attrib = empty SVG.Cursor.attrib = empty SVG.External.attrib = empty SVG.Conditional.attrib = empty SVG.Color.attrib = empty SVG.Paint.attrib = empty SVG.Graphics.attrib = empty SVG.DocumentEvents.attrib = empty SVG.GraphicalEvents.attrib = empty SVG.onload.attrib = empty SVG.AnimationEvents.attrib = empty SVG.XLink.attrib = empty SVG.XLinkRequired.attrib = empty SVG.XLinkEmbed.attrib = empty SVG.XLinkReplace.attrib = empty SVG.Style.attrib = empty SVG.Font.attrib = empty a:documentation [ "\x{a}" ~ " SVG.Description.class\x{a}" ~ " " ] SVG.Description.extra.class = notAllowed SVG.Description.class = desc | title | metadata | SVG.Description.extra.class a:documentation [ "\x{a}" ~ " SVG.Use.class\x{a}" ~ " " ] SVG.Use.extra.class = notAllowed SVG.Use.class = use | SVG.Use.extra.class a:documentation [ "\x{a}" ~ " SVG.Structure.class\x{a}" ~ " " ] SVG.Structure.extra.class = notAllowed SVG.Structure.class = svg | g | defs | SVG.Use.class | SVG.Structure.extra.class a:documentation [ "\x{a}" ~ " SVG.Presentation.attrib\x{a}" ~ " " ] SVG.Presentation.extra.attrib = empty SVG.Presentation.attrib = SVG.Container.attrib, SVG.Viewport.attrib, SVG.Text.attrib, SVG.TextContent.attrib, SVG.Font.attrib, SVG.Paint.attrib, SVG.Color.attrib, SVG.Opacity.attrib, SVG.Graphics.attrib, SVG.Marker.attrib, SVG.Profile.attrib, SVG.Gradient.attrib, SVG.Clip.attrib, SVG.Mask.attrib, SVG.Filter.attrib, SVG.FilterColor.attrib, SVG.Cursor.attrib, attribute flood-color { SVGColor.datatype }?, attribute flood-opacity { OpacityValue.datatype }?, attribute lighting-color { SVGColor.datatype }?, SVG.Presentation.extra.attrib a:documentation [ "\x{a}" ~ " svg: SVG Document Element\x{a}" ~ " " ] SVG.svg.content = (SVG.Description.class | SVG.Animation.class | SVG.Structure.class | SVG.Conditional.class | SVG.Image.class | SVG.Style.class | SVG.Shape.class | SVG.Text.class | SVG.Marker.class | SVG.Profile.class | SVG.Gradient.class | SVG.Pattern.class | SVG.Clip.class | SVG.Mask.class | SVG.Filter.class | SVG.Cursor.class | SVG.Hyperlink.class | SVG.View.class | SVG.Script.class | SVG.Font.class)* svg = element svg { attlist.svg, SVG.svg.content } attlist.svg &= SVG.Core.attrib, SVG.Conditional.attrib, SVG.Style.attrib, SVG.Presentation.attrib, SVG.DocumentEvents.attrib, SVG.GraphicalEvents.attrib, SVG.External.attrib, attribute x { Coordinate.datatype }?, attribute y { Coordinate.datatype }?, attribute width { Length.datatype }?, attribute height { Length.datatype }?, attribute viewBox { ViewBoxSpec.datatype }?, [ a:defaultValue = "xMidYMid meet" ] attribute preserveAspectRatio { PreserveAspectRatioSpec.datatype }?, [ a:defaultValue = "magnify" ] attribute zoomAndPan { "disable" | "magnify" }?, [ a:defaultValue = "1.1" ] attribute version { xsd:string "1.1" }?, attribute baseProfile { Text.datatype }?, [ a:defaultValue = "text/ecmascript" ] attribute contentScriptType { ContentType.datatype }?, [ a:defaultValue = "text/css" ] attribute contentStyleType { ContentType.datatype }? a:documentation [ "\x{a}" ~ " g: Group Element\x{a}" ~ " " ] SVG.g.content = (SVG.Description.class | SVG.Animation.class | SVG.Structure.class | SVG.Conditional.class | SVG.Image.class | SVG.Style.class | SVG.Shape.class | SVG.Text.class | SVG.Marker.class | SVG.Profile.class | SVG.Gradient.class | SVG.Pattern.class | SVG.Clip.class | SVG.Mask.class | SVG.Filter.class | SVG.Cursor.class | SVG.Hyperlink.class | SVG.View.class | SVG.Script.class | SVG.Font.class)* g = element g { attlist.g, SVG.g.content } attlist.g &= SVG.Core.attrib, SVG.Conditional.attrib, SVG.Style.attrib, SVG.Presentation.attrib, SVG.GraphicalEvents.attrib, SVG.External.attrib, attribute transform { TransformList.datatype }? a:documentation [ "\x{a}" ~ " defs: Definisions Element\x{a}" ~ " " ] SVG.defs.content = (SVG.Description.class | SVG.Animation.class | SVG.Structure.class | SVG.Conditional.class | SVG.Image.class | SVG.Style.class | SVG.Shape.class | SVG.Text.class | SVG.Marker.class | SVG.Profile.class | SVG.Gradient.class | SVG.Pattern.class | SVG.Clip.class | SVG.Mask.class | SVG.Filter.class | SVG.Cursor.class | SVG.Hyperlink.class | SVG.View.class | SVG.Script.class | SVG.Font.class)* defs = element defs { attlist.defs, SVG.defs.content } attlist.defs &= SVG.Core.attrib, SVG.Conditional.attrib, SVG.Style.attrib, SVG.Presentation.attrib, SVG.GraphicalEvents.attrib, SVG.External.attrib, attribute transform { TransformList.datatype }? a:documentation [ "\x{a}" ~ " desc: Description Element\x{a}" ~ " " ] SVG.desc.content = text desc = element desc { attlist.desc, SVG.desc.content } attlist.desc &= SVG.Core.attrib, SVG.Style.attrib a:documentation [ "\x{a}" ~ " title: Title Element\x{a}" ~ " " ] SVG.title.content = text title = element title { attlist.title, SVG.title.content } attlist.title &= SVG.Core.attrib, SVG.Style.attrib a:documentation [ "\x{a}" ~ " metadata: Metadata Element\x{a}" ~ " " ] SVG.metadata.content = text metadata = element metadata { attlist.metadata, SVG.metadata.content } attlist.metadata &= SVG.Core.attrib a:documentation [ "\x{a}" ~ " use: Use Element\x{a}" ~ " " ] SVG.use.content = SVG.Description.class*, SVG.Animation.class* use = element use { attlist.use, SVG.use.content } attlist.use &= SVG.Core.attrib, SVG.Conditional.attrib, SVG.Style.attrib, SVG.Presentation.attrib, SVG.GraphicalEvents.attrib, SVG.XLinkEmbed.attrib, SVG.External.attrib, attribute x { Coordinate.datatype }?, attribute y { Coordinate.datatype }?, attribute width { Length.datatype }?, attribute height { Length.datatype }?, attribute transform { TransformList.datatype }? }