<!DOCTYPE svg [
<!ATTLIST bar id ID #REQUIRED>
]>
<svg version="1.1" baseProfile="basic" id="svg-root"
  width="100%" height="100%" viewBox="0 0 480 360" onload="runTest()"
  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/.                          =-->
  <!--======================================================================-->
  <script>
     if (window.testRunner)
         testRunner.dumpAsText();
     function runTest() {
         var e = document.getElementById('hello');
         e.appendChild(document.createTextNode('F'));
         e.appendChild(document.createTextNode('l'));
         e.appendChild(document.createTextNode('a'));
         e.appendChild(document.createTextNode('t'));
         e.appendChild(document.createTextNode('t'));
         e.appendChild(document.createTextNode('e'));
         e.appendChild(document.createTextNode('n'));
         e.appendChild(document.createTextNode('e'));
         e.appendChild(document.createTextNode('d'));
     }
  </script>
  <g id="test-body-content" font-family="SVGFreeSansASCII,sans-serif" font-size="18">
    <!-- Test case label -->
    <text x="75" y="25" font-family="SVGFreeSansASCII,sans-serif" font-size="12" fill="blue">Test dynamically adding text content that 'tref' references.</text>

<!-- now make a new SVG document fragment, and hide it from being rendered -->
<defs>
	<text id="hello"/>
</defs>

    <text x="75" y="200" font-size="36" font-family="sans-serif" fill="green" id="target">
      <tref id="tref" xlink:href="#hello"/>
    </text>

  </g>
  <g font-family="SVGFreeSansASCII,sans-serif" font-size="32">
    <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.4 $</text>
  </g>
  <rect id="test-frame" x="1" y="1" width="478" height="358" fill="none" stroke="#000000"/>
  <!-- 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>
