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


## 
##     SVG 1.1 Pattern Module
##     file: svg-pattern.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-pattern.rng,v 1.1 2003/07/15 07:11:10 dean Exp $
##   

## 
##    Pattern
## 
##         pattern
## 
##     This module declares markup to provide support for pattern fill.
##   

## 
##     SVG.Pattern.class
##   
[ xml:lang = "en" ]
grammar {
  SVG.Pattern.extra.class = notAllowed
  SVG.Pattern.class |= pattern | SVG.Pattern.extra.class
  a:documentation [
    "\x{a}" ~
    "    pattern: Pattern Element\x{a}" ~
    "  "
  ]
  SVG.pattern.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)*
  pattern = element pattern { attlist.pattern, SVG.pattern.content }
  attlist.pattern &=
    SVG.Core.attrib,
    SVG.Conditional.attrib,
    SVG.Style.attrib,
    SVG.Presentation.attrib,
    SVG.XLink.attrib,
    SVG.External.attrib,
    attribute x { Coordinate.datatype }?,
    attribute y { Coordinate.datatype }?,
    attribute width { Length.datatype }?,
    attribute height { Length.datatype }?,
    attribute patternUnits { "userSpaceOnUse" | "objectBoundingBox" }?,
    attribute patternContentUnits {
      "userSpaceOnUse" | "objectBoundingBox"
    }?,
    attribute patternTransform { TransformList.datatype }?,
    attribute viewBox { ViewBoxSpec.datatype }?,
    [ a:defaultValue = "xMidYMid meet" ]
    attribute preserveAspectRatio { PreserveAspectRatioSpec.datatype }?
}
