1
<!-- ....................................................................... -->
2
<!-- SVG 1.1 Basic Filter Module ........................................... -->
3
<!-- file: svg-basic-filter.mod
5
This is SVG, a language for describing two-dimensional graphics in XML.
6
Copyright 2001, 2002 W3C (MIT, INRIA, Keio), All Rights Reserved.
7
Revision: $Id: svg-basic-filter.mod,v 1.4 2002/11/14 15:11:02 fujisawa Exp $
9
This DTD module is identified by the PUBLIC and SYSTEM identifiers:
11
PUBLIC "-//W3C//ELEMENTS SVG 1.1 Basic Filter//EN"
12
SYSTEM "http://www.w3.org/Graphics/SVG/1.1/DTD/svg-basic-filter.mod"
14
....................................................................... -->
18
filter, feBlend, feColorMatrix, feComponentTransfer, feComposite,
19
feFlood, feGaussianBlur, feImage, feMerge, feMergeNode, feOffset,
20
feTile, feFuncR, feFuncG, feFuncB, feFuncA
22
This module declares markup to provide support for filter effect.
25
<!-- 'filter' property/attribute value (e.g., 'none', <uri>) -->
26
<!ENTITY % FilterValue.datatype "CDATA" >
28
<!-- list of <number>s, but at least one and at most two -->
29
<!ENTITY % NumberOptionalNumber.datatype "CDATA" >
31
<!-- Qualified Names (Default) ......................... -->
33
<!ENTITY % SVG.filter.qname "filter" >
34
<!ENTITY % SVG.feBlend.qname "feBlend" >
35
<!ENTITY % SVG.feColorMatrix.qname "feColorMatrix" >
36
<!ENTITY % SVG.feComponentTransfer.qname "feComponentTransfer" >
37
<!ENTITY % SVG.feComposite.qname "feComposite" >
38
<!ENTITY % SVG.feFlood.qname "feFlood" >
39
<!ENTITY % SVG.feGaussianBlur.qname "feGaussianBlur" >
40
<!ENTITY % SVG.feImage.qname "feImage" >
41
<!ENTITY % SVG.feMerge.qname "feMerge" >
42
<!ENTITY % SVG.feMergeNode.qname "feMergeNode" >
43
<!ENTITY % SVG.feOffset.qname "feOffset" >
44
<!ENTITY % SVG.feTile.qname "feTile" >
45
<!ENTITY % SVG.feFuncR.qname "feFuncR" >
46
<!ENTITY % SVG.feFuncG.qname "feFuncG" >
47
<!ENTITY % SVG.feFuncB.qname "feFuncB" >
48
<!ENTITY % SVG.feFuncA.qname "feFuncA" >
50
<!-- Attribute Collections (Default) ................... -->
52
<!ENTITY % SVG.Core.attrib "" >
53
<!ENTITY % SVG.Container.attrib "" >
54
<!ENTITY % SVG.Style.attrib "" >
55
<!ENTITY % SVG.Viewport.attrib "" >
56
<!ENTITY % SVG.Text.attrib "" >
57
<!ENTITY % SVG.TextContent.attrib "" >
58
<!ENTITY % SVG.Font.attrib "" >
59
<!ENTITY % SVG.Paint.attrib "" >
60
<!ENTITY % SVG.Color.attrib "" >
61
<!ENTITY % SVG.Opacity.attrib "" >
62
<!ENTITY % SVG.Graphics.attrib "" >
63
<!ENTITY % SVG.Marker.attrib "" >
64
<!ENTITY % SVG.ColorProfile.attrib "" >
65
<!ENTITY % SVG.Gradient.attrib "" >
66
<!ENTITY % SVG.Clip.attrib "" >
67
<!ENTITY % SVG.Mask.attrib "" >
68
<!ENTITY % SVG.Cursor.attrib "" >
69
<!ENTITY % SVG.XLink.attrib "" >
70
<!ENTITY % SVG.XLinkEmbed.attrib "" >
71
<!ENTITY % SVG.External.attrib "" >
73
<!-- SVG.Filter.class .................................. -->
75
<!ENTITY % SVG.Filter.extra.class "" >
77
<!ENTITY % SVG.Filter.class
78
"| %SVG.filter.qname; %SVG.Filter.extra.class;"
81
<!-- SVG.FilterPrimitive.class ......................... -->
83
<!ENTITY % SVG.FilterPrimitive.extra.class "" >
85
<!ENTITY % SVG.FilterPrimitive.class
86
"| %SVG.feBlend.qname; | %SVG.feColorMatrix.qname;
87
| %SVG.feComponentTransfer.qname; | %SVG.feComposite.qname;
88
| %SVG.feFlood.qname; | %SVG.feGaussianBlur.qname; | %SVG.feImage.qname;
89
| %SVG.feMerge.qname; | %SVG.feOffset.qname; | %SVG.feTile.qname;
90
%SVG.FilterPrimitive.extra.class;"
93
<!-- SVG.Filter.attrib ................................. -->
95
<!ENTITY % SVG.Filter.extra.attrib "" >
97
<!ENTITY % SVG.Filter.attrib
98
"filter %FilterValue.datatype; #IMPLIED
99
%SVG.Filter.extra.attrib;"
102
<!-- SVG.FilterColor.attrib ............................ -->
104
<!ENTITY % SVG.FilterColor.extra.attrib "" >
106
<!ENTITY % SVG.FilterColor.attrib
107
"color-interpolation-filters ( auto | sRGB | linearRGB | inherit )
109
%SVG.FilterColor.extra.attrib;"
112
<!-- SVG.FilterPrimitive.attrib ........................ -->
114
<!ENTITY % SVG.FilterPrimitive.extra.attrib "" >
116
<!ENTITY % SVG.FilterPrimitive.attrib
117
"x %Coordinate.datatype; #IMPLIED
118
y %Coordinate.datatype; #IMPLIED
119
width %Length.datatype; #IMPLIED
120
height %Length.datatype; #IMPLIED
121
result CDATA #IMPLIED
122
%SVG.FilterPrimitive.extra.attrib;"
125
<!-- SVG.FilterPrimitiveWithIn.attrib .................. -->
127
<!ENTITY % SVG.FilterPrimitiveWithIn.extra.attrib "" >
129
<!ENTITY % SVG.FilterPrimitiveWithIn.attrib
130
"%SVG.FilterPrimitive.attrib;
132
%SVG.FilterPrimitiveWithIn.extra.attrib;"
135
<!-- SVG.Presentation.attrib ........................... -->
137
<!ENTITY % SVG.Presentation.extra.attrib "" >
139
<!ENTITY % SVG.Presentation.attrib
140
"%SVG.Container.attrib;
141
%SVG.Viewport.attrib;
143
%SVG.TextContent.attrib;
148
%SVG.Graphics.attrib;
150
%SVG.ColorProfile.attrib;
151
%SVG.Gradient.attrib;
155
%SVG.FilterColor.attrib;
157
flood-color %SVGColor.datatype; #IMPLIED
158
flood-opacity %OpacityValue.datatype; #IMPLIED
159
lighting-color %SVGColor.datatype; #IMPLIED
160
%SVG.Presentation.extra.attrib;"
163
<!-- filter: Filter Element ............................ -->
165
<!ENTITY % SVG.filter.extra.content "" >
167
<!ENTITY % SVG.filter.element "INCLUDE" >
168
<![%SVG.filter.element;[
169
<!ENTITY % SVG.filter.content
170
"(( %SVG.Description.class; )*, ( %SVG.animate.qname; | %SVG.set.qname;
171
%SVG.FilterPrimitive.class; %SVG.filter.extra.content; )*)"
173
<!ELEMENT %SVG.filter.qname; %SVG.filter.content; >
174
<!-- end of SVG.filter.element -->]]>
176
<!ENTITY % SVG.filter.attlist "INCLUDE" >
177
<![%SVG.filter.attlist;[
178
<!ATTLIST %SVG.filter.qname;
181
%SVG.Presentation.attrib;
183
%SVG.External.attrib;
184
x %Coordinate.datatype; #IMPLIED
185
y %Coordinate.datatype; #IMPLIED
186
width %Length.datatype; #IMPLIED
187
height %Length.datatype; #IMPLIED
188
filterRes %NumberOptionalNumber.datatype; #IMPLIED
189
filterUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
190
primitiveUnits ( userSpaceOnUse | objectBoundingBox ) #IMPLIED
192
<!-- end of SVG.filter.attlist -->]]>
194
<!-- feBlend: Filter Effect Blend Element .............. -->
196
<!ENTITY % SVG.feBlend.extra.content "" >
198
<!ENTITY % SVG.feBlend.element "INCLUDE" >
199
<![%SVG.feBlend.element;[
200
<!ENTITY % SVG.feBlend.content
201
"( %SVG.animate.qname; | %SVG.set.qname; %SVG.feBlend.extra.content; )*"
203
<!ELEMENT %SVG.feBlend.qname; %SVG.feBlend.content; >
204
<!-- end of SVG.feBlend.element -->]]>
206
<!ENTITY % SVG.feBlend.attlist "INCLUDE" >
207
<![%SVG.feBlend.attlist;[
208
<!ATTLIST %SVG.feBlend.qname;
210
%SVG.FilterColor.attrib;
211
%SVG.FilterPrimitiveWithIn.attrib;
213
mode ( normal | multiply | screen | darken | lighten ) 'normal'
215
<!-- end of SVG.feBlend.attlist -->]]>
217
<!-- feColorMatrix: Filter Effect Color Matrix Element . -->
219
<!ENTITY % SVG.feColorMatrix.extra.content "" >
221
<!ENTITY % SVG.feColorMatrix.element "INCLUDE" >
222
<![%SVG.feColorMatrix.element;[
223
<!ENTITY % SVG.feColorMatrix.content
224
"( %SVG.animate.qname; | %SVG.set.qname;
225
%SVG.feColorMatrix.extra.content; )*"
227
<!ELEMENT %SVG.feColorMatrix.qname; %SVG.feColorMatrix.content; >
228
<!-- end of SVG.feColorMatrix.element -->]]>
230
<!ENTITY % SVG.feColorMatrix.attlist "INCLUDE" >
231
<![%SVG.feColorMatrix.attlist;[
232
<!ATTLIST %SVG.feColorMatrix.qname;
234
%SVG.FilterColor.attrib;
235
%SVG.FilterPrimitiveWithIn.attrib;
236
type ( matrix | saturate | hueRotate | luminanceToAlpha ) 'matrix'
237
values CDATA #IMPLIED
239
<!-- end of SVG.feColorMatrix.attlist -->]]>
241
<!-- feComponentTransfer: Filter Effect Component Transfer Element -->
243
<!ENTITY % SVG.feComponentTransfer.extra.content "" >
245
<!ENTITY % SVG.feComponentTransfer.element "INCLUDE" >
246
<![%SVG.feComponentTransfer.element;[
247
<!ENTITY % SVG.feComponentTransfer.content
248
"( %SVG.feFuncR.qname;?, %SVG.feFuncG.qname;?, %SVG.feFuncB.qname;?,
249
%SVG.feFuncA.qname;? %SVG.feComponentTransfer.extra.content; )"
251
<!ELEMENT %SVG.feComponentTransfer.qname; %SVG.feComponentTransfer.content; >
252
<!-- end of SVG.feComponentTransfer.element -->]]>
254
<!ENTITY % SVG.feComponentTransfer.attlist "INCLUDE" >
255
<![%SVG.feComponentTransfer.attlist;[
256
<!ATTLIST %SVG.feComponentTransfer.qname;
258
%SVG.FilterColor.attrib;
259
%SVG.FilterPrimitiveWithIn.attrib;
261
<!-- end of SVG.feComponentTransfer.attlist -->]]>
263
<!-- feComposite: Filter Effect Composite Element ...... -->
265
<!ENTITY % SVG.feComposite.extra.content "" >
267
<!ENTITY % SVG.feComposite.element "INCLUDE" >
268
<![%SVG.feComposite.element;[
269
<!ENTITY % SVG.feComposite.content
270
"( %SVG.animate.qname; | %SVG.set.qname; %SVG.feComposite.extra.content; )*"
272
<!ELEMENT %SVG.feComposite.qname; %SVG.feComposite.content; >
273
<!-- end of SVG.feComposite.element -->]]>
275
<!ENTITY % SVG.feComposite.attlist "INCLUDE" >
276
<![%SVG.feComposite.attlist;[
277
<!ATTLIST %SVG.feComposite.qname;
279
%SVG.FilterColor.attrib;
280
%SVG.FilterPrimitiveWithIn.attrib;
282
operator ( over | in | out | atop | xor | arithmetic ) 'over'
283
k1 %Number.datatype; #IMPLIED
284
k2 %Number.datatype; #IMPLIED
285
k3 %Number.datatype; #IMPLIED
286
k4 %Number.datatype; #IMPLIED
288
<!-- end of SVG.feComposite.attlist -->]]>
290
<!-- feFlood: Filter Effect Flood Element .............. -->
292
<!ENTITY % SVG.feFlood.extra.content "" >
294
<!ENTITY % SVG.feFlood.element "INCLUDE" >
295
<![%SVG.feFlood.element;[
296
<!ENTITY % SVG.feFlood.content
297
"( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateColor.qname;
298
%SVG.feFlood.extra.content; )*"
300
<!ELEMENT %SVG.feFlood.qname; %SVG.feFlood.content; >
301
<!-- end of SVG.feFlood.element -->]]>
303
<!ENTITY % SVG.feFlood.attlist "INCLUDE" >
304
<![%SVG.feFlood.attlist;[
305
<!ATTLIST %SVG.feFlood.qname;
309
%SVG.FilterColor.attrib;
310
%SVG.FilterPrimitiveWithIn.attrib;
311
flood-color %SVGColor.datatype; #IMPLIED
312
flood-opacity %OpacityValue.datatype; #IMPLIED
314
<!-- end of SVG.feFlood.attlist -->]]>
316
<!-- feGaussianBlur: Filter Effect Gaussian Blur Element -->
318
<!ENTITY % SVG.feGaussianBlur.extra.content "" >
320
<!ENTITY % SVG.feGaussianBlur.element "INCLUDE" >
321
<![%SVG.feGaussianBlur.element;[
322
<!ENTITY % SVG.feGaussianBlur.content
323
"( %SVG.animate.qname; | %SVG.set.qname;
324
%SVG.feGaussianBlur.extra.content; )*"
326
<!ELEMENT %SVG.feGaussianBlur.qname; %SVG.feGaussianBlur.content; >
327
<!-- end of SVG.feGaussianBlur.element -->]]>
329
<!ENTITY % SVG.feGaussianBlur.attlist "INCLUDE" >
330
<![%SVG.feGaussianBlur.attlist;[
331
<!ATTLIST %SVG.feGaussianBlur.qname;
333
%SVG.FilterColor.attrib;
334
%SVG.FilterPrimitiveWithIn.attrib;
335
stdDeviation %NumberOptionalNumber.datatype; #IMPLIED
337
<!-- end of SVG.feGaussianBlur.attlist -->]]>
339
<!-- feImage: Filter Effect Image Element .............. -->
341
<!ENTITY % SVG.feImage.extra.content "" >
343
<!ENTITY % SVG.feImage.element "INCLUDE" >
344
<![%SVG.feImage.element;[
345
<!ENTITY % SVG.feImage.content
346
"( %SVG.animate.qname; | %SVG.set.qname; | %SVG.animateTransform.qname;
347
%SVG.feImage.extra.content; )*"
349
<!ELEMENT %SVG.feImage.qname; %SVG.feImage.content; >
350
<!-- end of SVG.feImage.element -->]]>
352
<!ENTITY % SVG.feImage.attlist "INCLUDE" >
353
<![%SVG.feImage.attlist;[
354
<!ATTLIST %SVG.feImage.qname;
357
%SVG.Presentation.attrib;
358
%SVG.FilterPrimitive.attrib;
359
%SVG.XLinkEmbed.attrib;
360
%SVG.External.attrib;
361
preserveAspectRatio %PreserveAspectRatioSpec.datatype; 'xMidYMid meet'
363
<!-- end of SVG.feImage.attlist -->]]>
365
<!-- feMerge: Filter Effect Merge Element .............. -->
367
<!ENTITY % SVG.feMerge.extra.content "" >
369
<!ENTITY % SVG.feMerge.element "INCLUDE" >
370
<![%SVG.feMerge.element;[
371
<!ENTITY % SVG.feMerge.content
372
"( %SVG.feMergeNode.qname; %SVG.feMerge.extra.content; )*"
374
<!ELEMENT %SVG.feMerge.qname; %SVG.feMerge.content; >
375
<!-- end of SVG.feMerge.element -->]]>
377
<!ENTITY % SVG.feMerge.attlist "INCLUDE" >
378
<![%SVG.feMerge.attlist;[
379
<!ATTLIST %SVG.feMerge.qname;
381
%SVG.FilterColor.attrib;
382
%SVG.FilterPrimitive.attrib;
384
<!-- end of SVG.feMerge.attlist -->]]>
386
<!-- feMergeNode: Filter Effect Merge Node Element ..... -->
388
<!ENTITY % SVG.feMergeNode.extra.content "" >
390
<!ENTITY % SVG.feMergeNode.element "INCLUDE" >
391
<![%SVG.feMergeNode.element;[
392
<!ENTITY % SVG.feMergeNode.content
393
"( %SVG.animate.qname; | %SVG.set.qname; %SVG.feMergeNode.extra.content; )*"
395
<!ELEMENT %SVG.feMergeNode.qname; %SVG.feMergeNode.content; >
396
<!-- end of SVG.feMergeNode.element -->]]>
398
<!ENTITY % SVG.feMergeNode.attlist "INCLUDE" >
399
<![%SVG.feMergeNode.attlist;[
400
<!ATTLIST %SVG.feMergeNode.qname;
404
<!-- end of SVG.feMergeNode.attlist -->]]>
406
<!-- feOffset: Filter Effect Offset Element ............ -->
408
<!ENTITY % SVG.feOffset.extra.content "" >
410
<!ENTITY % SVG.feOffset.element "INCLUDE" >
411
<![%SVG.feOffset.element;[
412
<!ENTITY % SVG.feOffset.content
413
"( %SVG.animate.qname; | %SVG.set.qname; %SVG.feOffset.extra.content; )*"
415
<!ELEMENT %SVG.feOffset.qname; %SVG.feOffset.content; >
416
<!-- end of SVG.feOffset.element -->]]>
418
<!ENTITY % SVG.feOffset.attlist "INCLUDE" >
419
<![%SVG.feOffset.attlist;[
420
<!ATTLIST %SVG.feOffset.qname;
422
%SVG.FilterColor.attrib;
423
%SVG.FilterPrimitiveWithIn.attrib;
424
dx %Number.datatype; #IMPLIED
425
dy %Number.datatype; #IMPLIED
427
<!-- end of SVG.feOffset.attlist -->]]>
429
<!-- feTile: Filter Effect Tile Element ................ -->
431
<!ENTITY % SVG.feTile.extra.content "" >
433
<!ENTITY % SVG.feTile.element "INCLUDE" >
434
<![%SVG.feTile.element;[
435
<!ENTITY % SVG.feTile.content
436
"( %SVG.animate.qname; | %SVG.set.qname; %SVG.feTile.extra.content; )*"
438
<!ELEMENT %SVG.feTile.qname; %SVG.feTile.content; >
439
<!-- end of SVG.feTile.element -->]]>
441
<!ENTITY % SVG.feTile.attlist "INCLUDE" >
442
<![%SVG.feTile.attlist;[
443
<!ATTLIST %SVG.feTile.qname;
445
%SVG.FilterColor.attrib;
446
%SVG.FilterPrimitiveWithIn.attrib;
448
<!-- end of SVG.feTile.attlist -->]]>
450
<!-- feFuncR: Filter Effect Function Red Element ....... -->
452
<!ENTITY % SVG.feFuncR.extra.content "" >
454
<!ENTITY % SVG.feFuncR.element "INCLUDE" >
455
<![%SVG.feFuncR.element;[
456
<!ENTITY % SVG.feFuncR.content
457
"( %SVG.animate.qname; | %SVG.set.qname; %SVG.feFuncR.extra.content; )*"
459
<!ELEMENT %SVG.feFuncR.qname; %SVG.feFuncR.content; >
460
<!-- end of SVG.feFuncR.element -->]]>
462
<!ENTITY % SVG.feFuncR.attlist "INCLUDE" >
463
<![%SVG.feFuncR.attlist;[
464
<!ATTLIST %SVG.feFuncR.qname;
466
type ( identity | table | discrete | linear | gamma ) #REQUIRED
467
tableValues CDATA #IMPLIED
468
slope %Number.datatype; #IMPLIED
469
intercept %Number.datatype; #IMPLIED
470
amplitude %Number.datatype; #IMPLIED
471
exponent %Number.datatype; #IMPLIED
472
offset %Number.datatype; #IMPLIED
474
<!-- end of SVG.feFuncR.attlist -->]]>
476
<!-- feFuncG: Filter Effect Function Green Element ..... -->
478
<!ENTITY % SVG.feFuncG.extra.content "" >
480
<!ENTITY % SVG.feFuncG.element "INCLUDE" >
481
<![%SVG.feFuncG.element;[
482
<!ENTITY % SVG.feFuncG.content
483
"( %SVG.animate.qname; | %SVG.set.qname; %SVG.feFuncG.extra.content; )*"
485
<!ELEMENT %SVG.feFuncG.qname; %SVG.feFuncG.content; >
486
<!-- end of SVG.feFuncG.element -->]]>
488
<!ENTITY % SVG.feFuncG.attlist "INCLUDE" >
489
<![%SVG.feFuncG.attlist;[
490
<!ATTLIST %SVG.feFuncG.qname;
492
type ( identity | table | discrete | linear | gamma ) #REQUIRED
493
tableValues CDATA #IMPLIED
494
slope %Number.datatype; #IMPLIED
495
intercept %Number.datatype; #IMPLIED
496
amplitude %Number.datatype; #IMPLIED
497
exponent %Number.datatype; #IMPLIED
498
offset %Number.datatype; #IMPLIED
500
<!-- end of SVG.feFuncG.attlist -->]]>
502
<!-- feFuncB: Filter Effect Function Blue Element ...... -->
504
<!ENTITY % SVG.feFuncB.extra.content "" >
506
<!ENTITY % SVG.feFuncB.element "INCLUDE" >
507
<![%SVG.feFuncB.element;[
508
<!ENTITY % SVG.feFuncB.content
509
"( %SVG.animate.qname; | %SVG.set.qname; %SVG.feFuncB.extra.content; )*"
511
<!ELEMENT %SVG.feFuncB.qname; %SVG.feFuncB.content; >
512
<!-- end of SVG.feFuncB.element -->]]>
514
<!ENTITY % SVG.feFuncB.attlist "INCLUDE" >
515
<![%SVG.feFuncB.attlist;[
516
<!ATTLIST %SVG.feFuncB.qname;
518
type ( identity | table | discrete | linear | gamma ) #REQUIRED
519
tableValues CDATA #IMPLIED
520
slope %Number.datatype; #IMPLIED
521
intercept %Number.datatype; #IMPLIED
522
amplitude %Number.datatype; #IMPLIED
523
exponent %Number.datatype; #IMPLIED
524
offset %Number.datatype; #IMPLIED
526
<!-- end of SVG.feFuncB.attlist -->]]>
528
<!-- feFuncA: Filter Effect Function Alpha Element ..... -->
530
<!ENTITY % SVG.feFuncA.extra.content "" >
532
<!ENTITY % SVG.feFuncA.element "INCLUDE" >
533
<![%SVG.feFuncA.element;[
534
<!ENTITY % SVG.feFuncA.content
535
"( %SVG.animate.qname; | %SVG.set.qname; %SVG.feFuncA.extra.content; )*"
537
<!ELEMENT %SVG.feFuncA.qname; %SVG.feFuncA.content; >
538
<!-- end of SVG.feFuncA.element -->]]>
540
<!ENTITY % SVG.feFuncA.attlist "INCLUDE" >
541
<![%SVG.feFuncA.attlist;[
542
<!ATTLIST %SVG.feFuncA.qname;
544
type ( identity | table | discrete | linear | gamma ) #REQUIRED
545
tableValues CDATA #IMPLIED
546
slope %Number.datatype; #IMPLIED
547
intercept %Number.datatype; #IMPLIED
548
amplitude %Number.datatype; #IMPLIED
549
exponent %Number.datatype; #IMPLIED
550
offset %Number.datatype; #IMPLIED
552
<!-- end of SVG.feFuncA.attlist -->]]>
554
<!-- end of svg-basic-filter.mod -->