namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
default namespace ns1 = "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: svg-extensibility.rng,v 1.1 2003/07/15 07:11:10 dean Exp $\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 =
  (text
   | svg
     # ref name="foreignElement"/
     )*
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,
  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 * - ns1:* {
    (attribute * - ns1:* { text }
     | text
     | foreignElement)*
  }
