<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20000802//EN"
"http://www.w3.org/TR/2000/CR-SVG-20000802/DTD/svg-20000802.dtd">

<!--

   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

-->
<!-- ========================================================================= -->
<!-- Error on rect                                                             -->
<!--                                                                           -->
<!-- @author tkormann@apache.org                                               -->
<!-- @version $Id$  -->
<!-- ========================================================================= -->

<?xml-stylesheet type="text/css" href="test.css" ?>

<svg xmlns="http://www.w3.org/2000/svg"
     id="body" width="450" height="500" viewBox="0 0 450 500">
<title>Error: attribute "values" on &lt;feColorMatrix> is invalid</title>

    <!-- ============================================================= -->
    <!-- Batik sample mark                                             -->
    <!-- ============================================================= -->
    <use xlink:href="./batikMark.svg#BatikTag" />

    <!-- ============================================================= -->
    <!-- Test content                                                  -->
    <!-- ============================================================= -->
    <g id="testContent">

    <text x="225" y="40" class="title">
      Error: attribute "values" on &lt;feColorMatrix> is invalid
    </text>

    <defs>
      <filter id="good" filterUnits="objectBoundingBox" 
              x="0%" y="0%" width="100%" height="100%">
        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2" stitchTiles="noStitch" seed="0" result="turb"/>
                <feColorMatrix type="matrix" values="0 0 0 0 0  0 0 0 0 0  0 0 1 0 0  0 0 0 0 1" />
      </filter>
      <filter id="bad" filterUnits="objectBoundingBox" 
              x="0%" y="0%" width="100%" height="100%">
        <feTurbulence type="turbulence" baseFrequency="0.05" numOctaves="2" stitchTiles="noStitch" seed="0" result="turb"/>
                <feColorMatrix type="matrix" values="0 0 0 0 0 2 0 0 0 0 0  0 0 1 0 0  0 0 0 0 1" />
      </filter>


    </defs>

    <text x="225" y="240" class="legend">A rectangle with a &lt;feColorMatrix> filter</text>
    <text x="225" y="440" class="legend">
      A filtered rectangle using &lt;feColorMatrix>. The attribute "values" is invalid
    </text>

    <rect x="175" y="100" width="100" height="100" style="filter:url(#good)"/>
    <rect x="175" y="300" width="100" height="100" style="filter:url(#bad)"/>


    </g>
</svg>
