blob: e3e861f139a9ecce28315fefce606562e3638987 [file] [log] [blame]
default namespace = "http://www.w3.org/2000/svg"
namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
##
## SVG 1.1 Basic Filter Module
## file: svg-basic-filter.rng
##
## This is SVG, a language for describing two-dimensional graphics in XML.
## Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
##
## Modifications Copyright 2007 Mozilla Foundation
##
## $Id$
##
##
## Basic Filter
##
## filter, feBlend, feColorMatrix, feComponentTransfer, feComposite,
## feFlood, feGaussianBlur, feImage, feMerge, feMergeNode, feOffset,
## feTile, feFuncR, feFuncG, feFuncB, feFuncA
##
## This module declares markup to provide support for filter effect.
##
##
## Datatypes
##
[ xml:lang = "en" ]
grammar {
FilterValue.datatype = xsd:string
NumberOptionalNumber.datatype = xsd:string
a:documentation [ "\x{a}" ~ " SVG.Filter.attrib\x{a}" ~ " " ]
SVG.Filter.extra.attrib = empty
SVG.Filter.attrib &=
attribute filter { FilterValue.datatype }?,
SVG.Filter.extra.attrib
a:documentation [
"\x{a}" ~
" SVG.FilterColor.attrib\x{a}" ~
" "
]
SVG.FilterColor.extra.attrib = empty
SVG.FilterColor.attrib &=
attribute color-interpolation-filters {
string "auto" | string "sRGB" | string "linearRGB" | string "inherit"
}?,
SVG.FilterColor.extra.attrib
a:documentation [ "\x{a}" ~ " SVG.Filter.class\x{a}" ~ " " ]
SVG.Filter.extra.class = notAllowed
SVG.Filter.class |= filter | SVG.Filter.extra.class
a:documentation [
"\x{a}" ~
" SVG.FilterPrimitive.class\x{a}" ~
" "
]
SVG.FilterPrimitive.extra.class = notAllowed
SVG.FilterPrimitive.class =
feBlend
| feColorMatrix
| feComponentTransfer
| feComposite
| feFlood
| feGaussianBlur
| feImage
| feMerge
| feOffset
| feTile
| SVG.FilterPrimitive.extra.class
a:documentation [
"\x{a}" ~
" SVG.FilterPrimitive.attrib\x{a}" ~
" "
]
SVG.FilterPrimitive.extra.attrib = empty
SVG.FilterPrimitive.attrib =
attribute x { Coordinate.datatype }?,
attribute y { Coordinate.datatype }?,
attribute width { Length.datatype }?,
attribute height { Length.datatype }?,
attribute result { text }?,
SVG.FilterPrimitive.extra.attrib
a:documentation [
"\x{a}" ~
" SVG.FilterPrimitiveWithIn.attrib\x{a}" ~
" "
]
SVG.FilterPrimitiveWithIn.extra.attrib = empty
SVG.FilterPrimitiveWithIn.attrib =
SVG.FilterPrimitive.attrib,
attribute in { text }?,
SVG.FilterPrimitiveWithIn.extra.attrib
a:documentation [
"\x{a}" ~
" filter: Filter Element\x{a}" ~
" "
]
SVG.filter.content =
SVG.Description.class*,
(animate | set | SVG.FilterPrimitive.class)*
filter = element filter { attlist.filter, SVG.filter.content }
attlist.filter &=
SVG.Core.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 filterRes { NumberOptionalNumber.datatype }?,
attribute filterUnits {
string "userSpaceOnUse" | string "objectBoundingBox"
}?,
attribute primitiveUnits {
string "userSpaceOnUse" | string "objectBoundingBox"
}?
a:documentation [
"\x{a}" ~
" feBlend: Filter Effect Blend Element\x{a}" ~
" "
]
SVG.feBlend.content = (animate | set)*
feBlend = element feBlend { attlist.feBlend, SVG.feBlend.content }
attlist.feBlend &=
SVG.Core.attrib,
SVG.FilterColor.attrib,
SVG.FilterPrimitiveWithIn.attrib,
attribute in2 { text },
[ a:defaultValue = "normal" ]
attribute mode {
string "normal" | string "multiply" | string "screen" | string "darken" | string "lighten"
}?
a:documentation [
"\x{a}" ~
" feColorMatrix: Filter Effect Color Matrix Element\x{a}" ~
" "
]
SVG.feColorMatrix.content = (animate | set)*
feColorMatrix =
element feColorMatrix {
attlist.feColorMatrix, SVG.feColorMatrix.content
}
attlist.feColorMatrix &=
SVG.Core.attrib,
SVG.FilterColor.attrib,
SVG.FilterPrimitiveWithIn.attrib,
[ a:defaultValue = "matrix" ]
attribute type {
string "matrix" | string "saturate" | string "hueRotate" | string "luminanceToAlpha"
}?,
attribute values { text }?
a:documentation [
"\x{a}" ~
" feComponentTransfer: Filter Effect Component Transfer Element\x{a}" ~
" "
]
SVG.feComponentTransfer.content =
feFuncR?, feFuncG?, feFuncB?, feFuncA?
feComponentTransfer =
element feComponentTransfer {
attlist.feComponentTransfer, SVG.feComponentTransfer.content
}
attlist.feComponentTransfer &=
SVG.Core.attrib,
SVG.FilterColor.attrib,
SVG.FilterPrimitiveWithIn.attrib
a:documentation [
"\x{a}" ~
" feComposite: Filter Effect Composite Element\x{a}" ~
" "
]
SVG.feComposite.content = (animate | set)*
feComposite =
element feComposite {
attlist.feComposite, SVG.feComposite.content
}
attlist.feComposite &=
SVG.Core.attrib,
SVG.FilterColor.attrib,
SVG.FilterPrimitiveWithIn.attrib,
attribute in2 { text },
[ a:defaultValue = "over" ]
attribute operator {
string "over" | string "in" | string "out" | string "atop" | string "xor" | string "arithmetic"
}?,
attribute k1 { Number.datatype }?,
attribute k2 { Number.datatype }?,
attribute k3 { Number.datatype }?,
attribute k4 { Number.datatype }?
a:documentation [
"\x{a}" ~
" feFlood: Filter Effect Flood Element\x{a}" ~
" "
]
SVG.feFlood.content = (animate | set | animateColor)*
feFlood = element feFlood { attlist.feFlood, SVG.feFlood.content }
attlist.feFlood &=
SVG.Core.attrib,
SVG.Style.attrib,
SVG.Color.attrib,
SVG.FilterColor.attrib,
SVG.FilterPrimitiveWithIn.attrib,
attribute flood-color { SVGColor.datatype }?,
attribute flood-opacity { OpacityValue.datatype }?
a:documentation [
"\x{a}" ~
" feGaussianBlur: Filter Effect Gaussian Blur Element\x{a}" ~
" "
]
SVG.feGaussianBlur.content = (animate | set)*
feGaussianBlur =
element feGaussianBlur {
attlist.feGaussianBlur, SVG.feGaussianBlur.content
}
attlist.feGaussianBlur &=
SVG.Core.attrib,
SVG.FilterColor.attrib,
SVG.FilterPrimitiveWithIn.attrib,
attribute stdDeviation { NumberOptionalNumber.datatype }?
a:documentation [
"\x{a}" ~
" feImage: Filter Effect Image Element\x{a}" ~
" "
]
SVG.feImage.content = (animate | set | animateTransform)*
feImage = element feImage { attlist.feImage, SVG.feImage.content }
attlist.feImage &=
SVG.Core.attrib,
SVG.Style.attrib,
SVG.Presentation.attrib,
SVG.FilterPrimitive.attrib,
SVG.XLinkEmbed.attrib,
SVG.External.attrib,
[ a:defaultValue = "xMidYMid meet" ]
attribute preserveAspectRatio {
PreserveAspectRatioSpec.datatype
}?
a:documentation [
"\x{a}" ~
" feMerge: Filter Effect Merge Element\x{a}" ~
" "
]
SVG.feMerge.content = feMergeNode*
feMerge = element feMerge { attlist.feMerge, SVG.feMerge.content }
attlist.feMerge &=
SVG.Core.attrib,
SVG.FilterColor.attrib,
SVG.FilterPrimitive.attrib
a:documentation [
"\x{a}" ~
" feMergeNode: Filter Effect Merge Node Element\x{a}" ~
" "
]
SVG.feMergeNode.content = (animate | set)*
feMergeNode =
element feMergeNode {
attlist.feMergeNode, SVG.feMergeNode.content
}
attlist.feMergeNode &=
SVG.Core.attrib,
attribute in { text }?
a:documentation [
"\x{a}" ~
" feOffset: Filter Effect Offset Element\x{a}" ~
" "
]
SVG.feOffset.content = (animate | set)*
feOffset =
element feOffset { attlist.feOffset, SVG.feOffset.content }
attlist.feOffset &=
SVG.Core.attrib,
SVG.FilterColor.attrib,
SVG.FilterPrimitiveWithIn.attrib,
attribute dx { Number.datatype }?,
attribute dy { Number.datatype }?
a:documentation [
"\x{a}" ~
" feTile: Filter Effect Tile Element\x{a}" ~
" "
]
SVG.feTile.content = (animate | set)*
feTile = element feTile { attlist.feTile, SVG.feTile.content }
attlist.feTile &=
SVG.Core.attrib,
SVG.FilterColor.attrib,
SVG.FilterPrimitiveWithIn.attrib
a:documentation [
"\x{a}" ~
" feFuncR: Filter Effect Function Red Element\x{a}" ~
" "
]
SVG.feFuncR.content = (animate | set)*
feFuncR = element feFuncR { attlist.feFuncR, SVG.feFuncR.content }
attlist.feFuncR &=
SVG.Core.attrib,
attribute type {
string "identity" | string "table" | string "discrete" | string "linear" | string "gamma"
},
attribute tableValues { text }?,
attribute slope { Number.datatype }?,
attribute intercept { Number.datatype }?,
attribute amplitude { Number.datatype }?,
attribute exponent { Number.datatype }?,
attribute offset { Number.datatype }?
a:documentation [
"\x{a}" ~
" feFuncG: Filter Effect Function Green Element\x{a}" ~
" "
]
SVG.feFuncG.content = (animate | set)*
feFuncG = element feFuncG { attlist.feFuncG, SVG.feFuncG.content }
attlist.feFuncG &=
SVG.Core.attrib,
attribute type {
string "identity" | string "table" | string "discrete" | string "linear" | string "gamma"
},
attribute tableValues { text }?,
attribute slope { Number.datatype }?,
attribute intercept { Number.datatype }?,
attribute amplitude { Number.datatype }?,
attribute exponent { Number.datatype }?,
attribute offset { Number.datatype }?
a:documentation [
"\x{a}" ~
" feFuncB: Filter Effect Function Blue Element\x{a}" ~
" "
]
SVG.feFuncB.content = (animate | set)*
feFuncB = element feFuncB { attlist.feFuncB, SVG.feFuncB.content }
attlist.feFuncB &=
SVG.Core.attrib,
attribute type {
string "identity" | string "table" | string "discrete" | string "linear" | string "gamma"
},
attribute tableValues { text }?,
attribute slope { Number.datatype }?,
attribute intercept { Number.datatype }?,
attribute amplitude { Number.datatype }?,
attribute exponent { Number.datatype }?,
attribute offset { Number.datatype }?
a:documentation [
"\x{a}" ~
" feFuncA: Filter Effect Function Alpha Element\x{a}" ~
" "
]
SVG.feFuncA.content = (animate | set)*
feFuncA = element feFuncA { attlist.feFuncA, SVG.feFuncA.content }
attlist.feFuncA &=
SVG.Core.attrib,
attribute type {
string "identity" | string "table" | string "discrete" | string "linear" | string "gamma"
},
attribute tableValues { text }?,
attribute slope { Number.datatype }?,
attribute intercept { Number.datatype }?,
attribute amplitude { Number.datatype }?,
attribute exponent { Number.datatype }?,
attribute offset { Number.datatype }?
}