<svg version="1.1" baseProfile="full" id="svg-root"
  width="100%" height="100%" viewBox="0 0 480 360"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <!--======================================================================-->
  <!--=  SVG 1.1 2nd Edition Test Case                                     =-->
  <!--======================================================================-->
  <!--=  Copyright 2009 World Wide Web Consortium, (Massachusetts          =-->
  <!--=  Institute of Technology, European Research Consortium for         =-->
  <!--=  Informatics and Mathematics (ERCIM), Keio University).            =-->
  <!--=  All Rights Reserved.                                              =-->
  <!--=  See http://www.w3.org/Consortium/Legal/.                          =-->
  <!--======================================================================-->
  <d:SVGTestCase xmlns:d="http://www.w3.org/2000/02/svg/testsuite/description/"
    template-version="1.4" reviewer="DOH" author="ED" status="accepted"
    version="$Revision: 1.6 $" testname="$RCSfile: struct-use-10-f.svg,v $">
    <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/struct.html#UseElement">
      <p>
        Properties are inherited according to the 'use' element rules, CSS selectors only apply to the original elements
        and not the (conceptually) cloned DOM tree.
      </p>
    </d:testDescription>
    <d:operatorScript xmlns="http://www.w3.org/1999/xhtml">
      <p>
        Run the test. No interaction required.
      </p>
    </d:operatorScript>
    <d:passCriteria xmlns="http://www.w3.org/1999/xhtml">
      <p>
        The test has passed if the three rectangles have green fill and a thick darkgreen stroke. If any red shows the test has failed.
      </p>
    </d:passCriteria>
  </d:SVGTestCase>
  <title id="test-title">$RCSfile: struct-use-10-f.svg,v $</title>
  <defs>
    <font-face font-family="SVGFreeSansASCII" unicode-range="U+0-7F">
      <font-face-src>
        <font-face-uri xlink:href="../resources/SVGFreeSans.svg#ascii"/>
      </font-face-src>
    </font-face>
  </defs>
  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
    <style type="text/css">

      /* low specificity */
      defs &gt; rect  {
      fill:red;
      }

      /* applies because of higher specificity */
      .testclass1 {
      fill:green;
      }

      /* does not apply because selectors don't apply to the (conceptually) cloned subtree */
      #testid1 .testclass1 {
      fill: red;
      }

      /* does not apply because of case sensitivity of class value */
      g .testClass1 {
      fill:red;
      }

      /* does not apply because of lower specificity */
      #g1 .testclass2
      {
      fill: red
      }

      /* does not apply to the used rect, because there is no inheritance from the original tree into the used subtree */
      g#g1 {
      visibility: hidden
      }

      /* applies because of higher specificity */
      #testid2 {
      stroke:darkgreen;
      }

      /* no effect for the used rect, can be referenced anyway into the used subtree */
      g#g2 {
      display: none;
      }

      /* applies directly to the original (referenced) rect element */
      .testclass3 &gt; rect {
      fill: green;
      stroke:darkgreen;
      }

      /* does not apply to the used rect, because there is no direct access with selectors into the used subtree */
      #testid3 rect {
      stroke:red;
      }
      #testid3 rect#testrect3 {
      fill:red;
      }
    </style>

    <defs>
      <rect id="testrect1" class="testclass1" width="100" height="100"/>
      <g id="g1" style="fill:red">
        <rect id="testrect2" class="testclass2" width="100" height="100" style="fill:green"/>
      </g>
      <g id="g2" class="class testclass3 g">
        <rect id="testrect3" width="100" height="100" stroke="red"/>
      </g>
    </defs>

    <text x="50%" y="3em" style="text-anchor:middle; fill:black">CSS selectors and use element</text>

    <circle class="indicator" cx="240" cy="150" r="25" fill="red"/>
    <circle class="indicator" cx="390" cy="150" r="25" fill="red"/>

    <use id="testid1" xlink:href="#testrect1" x="40" y="100" style="stroke:darkgreen" stroke-width="10"/>
    <use id="testid2" xlink:href="#testrect2" x="190" y="100" stroke="red" stroke-width="10"/>
    <use id="testid3" xlink:href="#testrect3" x="340" y="100" style="stroke:red" stroke-width="10"/>

  </g>
  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
    <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.6 $</text>
  </g>
  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000"/>
  <!-- comment out this watermark once the test is approved -->
  <!--<g id="draft-watermark">
    <rect x="1" y="1" width="478" height="20" fill="red" stroke="black" stroke-width="1"/>
    <text font-family="SVGFreeSansASCII,sans-serif" font-weight="bold" font-size="20" x="240"
      text-anchor="middle" y="18" stroke-width="0.5" stroke="black" fill="white">DRAFT</text>
  </g>-->
</svg>
