| <svg version="1.1" baseProfile="full" onload="onLoad(evt)" 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="SVGWG" author="Jon Ferraiolo" status="accepted" | 
 |     version="$Revision: 1.8 $" testname="$RCSfile: extend-namespace-01-f.svg,v $"> | 
 |     <d:testDescription xmlns="http://www.w3.org/1999/xhtml" href="http://www.w3.org/TR/SVG11/extend.html#ForeignNamespaces"> | 
 |       <p> | 
 |         Test mixing a business data namespace with elements in SVG namespace. | 
 |       </p> | 
 |       <p> | 
 |         The test case uses a different namespace to hold fake sales data. | 
 |         Using ECMAScript to make calls to the DOM, the test case extracts | 
 |         the sales data and then makes calls to the SVG DOM to build up | 
 |         a 'path' element and a 'text' element for each individual pie slice. | 
 |       </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 result should show five pie slices. | 
 |         The first pie slice should be exploded, with a pink fill and a blue border. | 
 |         The other pie slices should have various levels of gray fill and black borders. | 
 |         The name of each region should appear in black towards the center of | 
 |         the pie slice. | 
 |       </p> | 
 |     </d:passCriteria> | 
 |   </d:SVGTestCase> | 
 |   <title id="test-title">$RCSfile: extend-namespace-01-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"> | 
 |     <g xmlns:bd="http://example.org/ExampleBusinessData" xmlns="http://www.w3.org/2000/svg"> | 
 |       <defs> | 
 |         <script type="text/ecmascript"> | 
 |           var svg_ns = "http://www.w3.org/2000/svg"; | 
 |           var bd_ns = "http://example.org/ExampleBusinessData"; | 
 |           function onLoad(evt){ | 
 |           // Get Document | 
 |           var svgElement = evt.target; | 
 |           var doc = svgElement.ownerDocument; | 
 |  | 
 |           var resultsElement = doc.getElementById('results'); | 
 |           var gElement = doc.getElementById('PieParent'); | 
 |  | 
 |           // Count the number of regions. | 
 |           RegionNodeList = doc.getElementsByTagNameNS(bd_ns, "Region"); | 
 |           regionCount = RegionNodeList.length; | 
 |  | 
 |           // Get the region data. | 
 |           RegionNameNodeList = doc.getElementsByTagNameNS(bd_ns, "RegionName"); | 
 |           RegionResultNodeList = doc.getElementsByTagNameNS(bd_ns, "RegionResult"); | 
 |  | 
 |           // Get the sum of the values of the regions. | 
 |           var total = 0; | 
 |           for (regionIndex = 0; regionIndex < regionCount; regionIndex++) | 
 |           total = total + Number(RegionResultNodeList.item(regionIndex).firstChild.nodeValue); | 
 |  | 
 |           // Build a pie chart. | 
 |           var startAngle = 0; | 
 |           for (regionIndex = 0; regionIndex < regionCount; regionIndex++) { | 
 |           regionName = RegionNameNodeList.item(regionIndex).firstChild.nodeValue; | 
 |           regionResult = Number(RegionResultNodeList.item(regionIndex).firstChild.nodeValue); | 
 |  | 
 |           // Build the pie slice. | 
 |           textElement = doc.createElementNS(svg_ns, "text"); | 
 |           textNode = doc.createTextNode(regionName); | 
 |           textElement.appendChild(textNode); | 
 |           pathElement = doc.createElementNS(svg_ns, "path"); | 
 |  | 
 |           endAngle = startAngle - regionResult * Math.PI * 2 / total; | 
 |           dAttribute = "M240,170 L"; | 
 |           gray =  Math.round(Number(255 * (regionIndex+2)) / (regionCount+2)); | 
 |           midAngle = (startAngle + endAngle) / 2; | 
 |           textElement.setAttributeNS(null, "x", Math.round(240+65*Math.cos(midAngle))); | 
 |           textElement.setAttributeNS(null, "y", Math.round(170+65*Math.sin(midAngle))); | 
 |  | 
 |           dAttribute = dAttribute + Math.round(240+100*Math.cos(startAngle)); | 
 |           dAttribute = dAttribute + ','; | 
 |           dAttribute = dAttribute + Math.round(170+100*Math.sin(startAngle)); | 
 |           dAttribute = dAttribute + ' A100,100 0 0,0 '; | 
 |           dAttribute = dAttribute + Math.round(240+100*Math.cos(endAngle)); | 
 |           dAttribute = dAttribute + ','; | 
 |           dAttribute = dAttribute + Math.round(170+100*Math.sin(endAngle)); | 
 |           dAttribute = dAttribute + 'z'; | 
 |           pathElement.setAttributeNS(null, "d", dAttribute); | 
 |           pathElement.setAttributeNS(null, "fill", "rgb("+gray+","+gray+","+gray+")"); | 
 |           pathElement.setAttributeNS(null, "stroke", "black"); | 
 |           pathElement.setAttributeNS(null, "stroke-width", "2"); | 
 |  | 
 |           // Temporary, for CSS styling. | 
 |           pathElement.setAttributeNS(null, "fill", "rgb("+gray+","+gray+","+gray+")"); | 
 |           pathElement.setAttributeNS(null, "stroke", "black"); | 
 |           pathElement.setAttributeNS(null, "stroke-width", "2"); | 
 |  | 
 |           if (regionIndex == 0) { | 
 |           var firstSliceOffset = 30; | 
 |           var transformValue = "translate(" + | 
 |           Math.round(firstSliceOffset * Math.cos(midAngle)) + | 
 |           "," + | 
 |           Math.round(firstSliceOffset * Math.sin(midAngle)) + | 
 |           ")"; | 
 |           pathElement.setAttributeNS(null, "transform", transformValue); | 
 |           textElement.setAttributeNS(null, "transform", transformValue); | 
 |           pathElement.setAttributeNS(null, "fill", "#FF6666"); | 
 |           pathElement.setAttributeNS(null, "stroke", "#0000FF"); | 
 |           pathElement.setAttributeNS(null, "stroke-width", "3"); | 
 |  | 
 |           // Temporary, for CSS styling. | 
 |           pathElement.setAttributeNS(null, "fill", "#FF8888"); | 
 |           pathElement.setAttributeNS(null, "stroke", "#0000FF"); | 
 |           pathElement.setAttributeNS(null, "stroke-width", "3"); | 
 |  | 
 |           } | 
 |           gElement.appendChild(pathElement); | 
 |           gElement.appendChild(textElement); | 
 |           startAngle = endAngle; | 
 |           } | 
 |           } | 
 |         </script> | 
 |       </defs> | 
 |       <bd:Results id="results"> | 
 |         <bd:Region> | 
 |           <bd:RegionName>East</bd:RegionName> | 
 |           <bd:RegionResult>3</bd:RegionResult> | 
 |         </bd:Region> | 
 |         <bd:Region> | 
 |           <bd:RegionName>North</bd:RegionName> | 
 |           <bd:RegionResult>4</bd:RegionResult> | 
 |         </bd:Region> | 
 |         <bd:Region> | 
 |           <bd:RegionName>West</bd:RegionName> | 
 |           <bd:RegionResult>5</bd:RegionResult> | 
 |         </bd:Region> | 
 |         <bd:Region> | 
 |           <bd:RegionName>Central</bd:RegionName> | 
 |           <bd:RegionResult>3.2</bd:RegionResult> | 
 |         </bd:Region> | 
 |         <bd:Region> | 
 |           <bd:RegionName>South</bd:RegionName> | 
 |           <bd:RegionResult>6</bd:RegionResult> | 
 |         </bd:Region> | 
 |       </bd:Results> | 
 |       <text font-family="Arial" font-size="16" text-anchor="middle" x="240" y="30"> | 
 |         Pie chart built from data in a different namespace. | 
 |       </text> | 
 |     </g> | 
 |     <g id="PieParent" font-family="Arial" text-anchor="middle" font-size="14"> | 
 |       <desc>Pie chart is built within this 'g' element</desc> | 
 |     </g> | 
 |   </g> | 
 |   <g font-family="SVGFreeSansASCII,sans-serif" font-size="32"> | 
 |     <text id="revision" x="10" y="340" stroke="none" fill="black">$Revision: 1.8 $</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> |