<svgref>
The reference must be to a SVG <svg> element. The reference can be one of the following:
- A URI that addresses an XML document; the XML document has a SVG <svg> element as the root element
- A URI that addresses an XML document and contains a fragment identifier that is the XML ID of a <svg> element within the document
Processors SHOULD process the SVG as though the <svg> element had occurred directly in the content of the containing <svg-container> element.
The reference can be direct, using the @href attribute, or indirect, using the @keyref attribute. For indirect referencing, only the key name should be specified. The ID of the <svg> element must be specified as part of the value for the @href attribute on the key definition.
For example, to refer to the <svg> element with the @id of "svg-fragment-02" within a larger document using a key reference, you would define the key in the following way:
<keydef keys="svg-fragment-0002" href="svg/svg-library.xml#svg-fragment-02" />You would refer to this key using just the key name:
<svg-container> <svgref keyref="svg-fragment-0002"/> </svg-container>
Content models
See appendix for information about this element in OASIS document type shells.
Inheritance
+ topic/xref svg-d/svgref
Example
Here is a reference to an <svg> element that is the root element of its containing document:
<fig>
<title>Figure With SVG Container</title>
<svg-container>
<svgref
href="media/svg/svg-graphic-01.xml"
format="svg"
/>
</svg-container>
</fig>
The svg-graphic-01.xml file contains the following content. Note that
the <svg> element sets the SVG namespace as the default namespace, so
there are no namespace prefixes on the SVG
markup:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
width="100"
height="100">
<defs>
<filter
id="f1"
x="0"
y="0">
<feGaussianBlur
in="SourceGraphic"
stdDeviation="15"/>
</filter>
</defs>
<rect
width="90"
height="90"
stroke="green"
stroke-width="3"
fill="yellow"
filter="url(#f1)"/>
</svg>
Here is a reference to a specific <svg> element in a containing XML file:
<fig>
<title>Figure with SVG Container</title>
<svg-container>
<svgref
href="media/svg/svg-library.xml#frag-0001"
/>
</svg-container>
</fig>
The svg-library.xml file contains the following
content:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<part>
<svg id="frag-0001"
xmlns="http://www.w3.org/2000/svg"
width="100"
height="100">
<defs>
<filter
id="f1"
x="0"
y="0">
<feGaussianBlur
in="SourceGraphic"
stdDeviation="15"/>
</filter>
</defs>
<rect
width="90"
height="90"
stroke="green"
stroke-width="3"
fill="yellow"
filter="url(#f1)"/>
</svg>
<svg id="frag-0002"
width="4in" height="6in" version="1.1"
>
<circle cx="150" cy="200" r="100" fill="url(#grad_blue)" >
<animate attributeName="r" begin="Go.click" end="Stop.click" dur="4s"
values="100; 0; 100" repeatCount="indefinite"/>
</circle>
<radialGradient id="grad_blue" cx="20%" cy="20%" r="100%" fx="30%" fy="30%">
<stop stop-color="white" offset="0"/>
<stop stop-color="blue" offset="25%"/>
<stop stop-color="rgb(0,0,192)" offset="50%"/>
<stop stop-color="rgb(0,0,127)" offset="70%"/>
<stop stop-color="rgb(0,0,64)" offset="85%"/>
<stop stop-color="rgb(0,0,0)" offset="100%"/>
</radialGradient>
<g id="Go">
<rect x="70" y="320" height="40" width="80" fill="aqua"/>
<text x="90" y="350" font-size="30" fill="green">Go </text>
</g>
<g id="Stop">
<rect x="160" y="320" height="40" width="80" fill="aqua"/>
<text x="170" y="350" font-size="30" fill="red">Stop</text>
</g>
</svg>
</part>
</root>
Attributes
The following attributes are available on this element: Universal attribute group, @outputclass, and @keyref. This element also uses Link relationship attribute group, with narrowed definitions of @href and @format (given below).
- @href
- Reference to the <svg> element to be used. If the <svg> element is the root element of the referenced resource, then no fragment identifier is required, otherwise, a fragment identifier must be specified, where the fragment identifier is the XML ID of the <svg> element to be used. This attribute is not required, but must be specified if @keyref is not specified. See The @href attribute for detailed information on supported values and processing implications.
- @format
- The data format of the resource.. For SVG the format should be "svg", which is the default value for @format on this element.