namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
default namespace svg = "http://www.w3.org/2000/svg"

a:documentation [
    "\x{a}" ~
    "    SVG 1.1 Extensibility Module\x{a}" ~
    "    file: svg-extensibility.rng\x{a}" ~
    "\x{a}" ~
    "    This is SVG, a language for describing two-dimensional graphics in XML.\x{a}" ~
    "    Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.\x{a}" ~
    "\x{a}" ~
    "    $Id$\x{a}" ~
    "\x{a}"
]
a:documentation [
    "\x{a}" ~
    "    Extensibility\x{a}" ~
    "\x{a}" ~
    "        foreignObject\x{a}" ~
    "\x{a}" ~
    "    This module declares markup to provide support for extensibility.\x{a}" ~
    "  "
]
a:documentation [ "\x{a}" ~ "    SVG.Extensibility.class\x{a}" ~ "  " ]
SVG.Extensibility.extra.class = notAllowed
SVG.Extensibility.class |= foreignObject | SVG.Extensibility.extra.class
a:documentation [
    "\x{a}" ~
    "    foreignObject: Foreign Object Element\x{a}" ~
    "  "
]
SVG.foreignObject.content =
    notAllowed # bugfix -- hsivonen
foreignObject =
    element foreignObject {
        attlist.foreignObject, SVG.foreignObject.content
    }
attlist.foreignObject &=
    SVG.Core.attrib,
    SVG.Conditional.attrib,
    SVG.Style.attrib,
    SVG.Presentation.attrib,
    SVG.GraphicalEvents.attrib,
    SVG.External.attrib,
    (common.attrs.aria.implicit.group | common.attrs.aria)?,
    attribute x { Coordinate.datatype }?,
    attribute y { Coordinate.datatype }?,
    attribute width { Length.datatype },
    attribute height { Length.datatype },
    attribute transform { TransformList.datatype }?

## 
##       any element in foreign namespace
##     
foreignElement =
    element * - svg:* {
        (attribute * - svg:* { text }
         | text
         | foreignElement)*
    }
SVG.a.content &= SVG.Extensibility.class*
SVG.defs.content &= SVG.Extensibility.class*
SVG.glyph.content &= SVG.Extensibility.class*
SVG.g.content &= SVG.Extensibility.class*
SVG.marker.content &= SVG.Extensibility.class*
SVG.mask.content &= SVG.Extensibility.class*
SVG.missing-glyph.content &= SVG.Extensibility.class*
SVG.pattern.content &= SVG.Extensibility.class*
SVG.svg.content &= SVG.Extensibility.class*
SVG.switch.content &= SVG.Extensibility.class*
SVG.symbol.content &= SVG.Extensibility.class*
