xml linking technologies shortcut for internal considerations
xs:include
xs:include Namespaces
namespace http://www.w3.org/2001/XInclude
xs:include Usage example in XML Schema
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xi="http://www.w3.org/2001/XInclude"
targetNamespace="http://www.w3.org/2001/XInclude"
finalDefault="extension">
<xs:element name="include" type="xi:includeType" />
<xs:complexType name="includeType" mixed="true">
<xs:choice minOccurs='0' maxOccurs='unbounded' >
<xs:element ref='xi:fallback' />
<xs:any namespace='##other' processContents='lax' />
<xs:any namespace='##local' processContents='lax' />
</xs:choice>
<xs:attribute name="href" use="optional" type="xs:anyURI"/>
<xs:attribute name="parse" use="optional" default="xml" type="xi:parseType" />
<xs:attribute name="xpointer" use="optional" type="xs:string"/>
<xs:attribute name="encoding" use="optional" type="xs:string"/>
<xs:attribute name="accept" use="optional" type="xs:string"/>
<xs:attribute name="accept-language" use="optional" type="xs:string"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:simpleType name="parseType">
<xs:restriction base="xs:token">
<xs:enumeration value="xml"/>
<xs:enumeration value="text"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="fallback" type="xi:fallbackType" />
<xs:complexType name="fallbackType" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="xi:include"/>
<xs:any namespace="##other" processContents="lax"/>
<xs:any namespace="##local" processContents="lax"/>
</xs:choice>
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:complexType>
</xs:schema>
xs:include usage in Instance
<x xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="something.xml"/>
<xi:include xpointer="xmlns(xi=http://www.w3.org/2001/XInclude)xpointer(x/xi:include[1])"
parse="xml"/>
</x>
xs:include basic usage example
The following XML document contains an
xi:include
element which points to an external document.
Assume the base URI of this document is
http://www.example.org/document.xml
.
<?xml version='1.0'?> <document xmlns:xi="http://www.w3.org/2001/XInclude"> <p>120 Mz is adequate for an average home user.</p> <xi:include href="disclaimer.xml"/> </document>
disclaimer.xml contains:
<?xml version='1.0'?> <disclaimer> <p>The opinions represented herein represent those of the individual and should not be interpreted as official policy endorsed by this organization.</p> </disclaimer>
The infoset resulting from resolving inclusions on this document is the same (except for the include history and language properties) as that of the following document:
<?xml version='1.0'?> <document xmlns:xi="http://www.w3.org/2001/XInclude"> <p>120 Mz is adequate for an average home user.</p> <disclaimer xml:base="http://www.example.org/disclaimer.xml"> <p>The opinions represented herein represent those of the individual and should not be interpreted as official policy endorsed by this organization.</p> </disclaimer> </document>C.2 Textual Inclusion Example
The following XML document includes a "working example" into a document.
<?xml version='1.0'?> <document xmlns:xi="http://www.w3.org/2001/XInclude"> <p>This document has been accessed <xi:include href="count.txt" parse="text"/> times.</p> </document>
where count.txt contains:
324387
The infoset resulting from resolving inclusions on this document is the same (except for the include history and language properties) as that of the following document:
<?xml version='1.0'?> <document xmlns:xi="http://www.w3.org/2001/XInclude"> <p>This document has been accessed 324387 times.</p> </document>C.3 Textual Inclusion of XML Example
The following XML document includes a "working example" into a document.
<?xml version='1.0'?> <document xmlns:xi="http://www.w3.org/2001/XInclude"> <p>The following is the source of the "data.xml" resource:</p> <example><xi:include href="data.xml" parse="text"/></example> </document>
data.xml contains:
<?xml version='1.0'?> <data> <item><![CDATA[Brooks & Shields]]></item> </data>
The infoset resulting from resolving inclusions on this document is the same (except for the include history and language properties) as that of the following document:
<?xml version='1.0'?> <document xmlns:xi="http://www.w3.org/2001/XInclude"> <p>The following is the source of the "data.xml" resource:</p> <example><?xml version='1.0'?> <data> <item><![CDATA[Brooks & Shields]]></item> </data></example> </document>C.4 Fragment Inclusion Example
The following illustrates the results of
including fragments of another XML document. Assume the base URI of the document
is
http://www.example.com/JoeSmithQuote.xml
.
<?xml version='1.0'?> <price-quote xmlns:xi="http://www.w3.org/2001/XInclude"> <prepared-for>Joe Smith</prepared-for> <good-through>20040930</good-through> <xi:include href="price-list.xml" xpointer="w002-description"/> <volume>40</volume> <xi:include href="price-list.xml" xpointer="element(w002-prices/2)"/> </price-quote>
price-list.xml
references a DTD which declares the id
attributes as type
ID
, and
contains:
<?xml version='1.0'?> <!DOCTYPE price-list SYSTEM "price-list.dtd"> <price-list xml:lang="en-us"> <item id="w001"> <description id="w001-description"> <p>Normal Widget</p> </description> <prices id="w001-prices"> <price currency="USD" volume="1+">39.95</price> <price currency="USD" volume="10+">34.95</price> <price currency="USD" volume="100+">29.95</price> </prices> </item> <item id="w002"> <description id="w002-description"> <p>Super-sized widget with bells <i>and</i> whistles.</p> </description> <prices id="w002-prices"> <price currency="USD" volume="1+">59.95</price> <price currency="USD" volume="10+">54.95</price> <price currency="USD" volume="100+">49.95</price> </prices> </item> </price-list>
The infoset resulting from resolving inclusions on this document is the same (except for the include history and language properties) as that of the following document:
<?xml version='1.0'?> <price-quote xmlns:xi="http://www.w3.org/2001/XInclude"> <prepared-for>Joe Smith</prepared-for> <good-through>20040930</good-through> <description id="w002-description" xml:lang="en-us" xml:base="http://www.example.com/price-list.xml"> <p>Super-sized widget with bells <i>and</i> whistles.</p> </description> <volume>40</volume> <price currency="USD" volume="10+" xml:lang="en-us" xml:base="http://www.example.com/price-list.xml">54.95</price> </price-quote>C.5 Range Inclusion Example
The following illustrates the results of including
a range specified by an XPointer. Assume the base URI of the document is
http://www.example.com/document.xml
.
<?xml version='1.0'?> <document> <p>The relevant excerpt is:</p> <quotation> <include xmlns="http://www.w3.org/2001/XInclude" href="source.xml" xpointer="xpointer(string-range(chapter/p[1],'Sentence 2')/ range-to(string-range(/chapter/p[2]/i,'3.',1,2)))"/> </quotation> </document>
source.xml contains:
<chapter> <p>Sentence 1. Sentence 2.</p> <p><i>Sentence 3. Sentence 4.</i> Sentence 5.</p> </chapter>
The infoset resulting from resolving inclusions on this document is the same (except for the include history and language properties) as that of the following document:
<?xml version='1.0'?> <document> <p>The relevant excerpt is:</p> <quotation> <p xml:base="http://www.example.com/source.xml">Sentence 2.</p> <p xml:base="http://www.example.com/source.xml"><i>Sentence 3.</i></p> </quotation> </document>C.6 Fallback Example
The following XML document relies on the fallback
mechanism to succeed in the event that the resources
example.txt
and fallback-example.txt
are
not
available..
<?xml version='1.0'?> <div> <xi:include href="example.txt" parse="text" xmlns:xi="http://www.w3.org/2001/XInclude"> <xi:fallback><xi:include href="fallback-example.txt" parse="text"> <xi:fallback><a href="mailto:bob@example.org">Report error</a></xi:fallback> </xi:include></xi:fallback> </xi:include> </div>
If
neither example.txt
nor fallback-example.txt
are available, the infoset resulting from resolving inclusions on this document
is the same (except for the include history and language
properties) as that of the following
document:
<?xml version='1.0'?> <div> <a href="mailto:bob@example.org">Report error</a> </div>
XPointer
Xpointer info
Xpointer examples
#xpointer(id('boy-blue')/horn[1])element(boy-blue/3)
#xmlns(img=http://example.org/image)img:rect(10,10,50,50)
Xlink
Xlink info
Xlink Examples
<my:crossReference
xlink:href="students.xml"
xlink:role="http://www.example.com/linkprops/studentlist"
xlink:title="Student List">
Current List of Students
</my:crossReference>
<my:crossReference
xmlns:my="http://example.com/"
my:lastEdited="2000-06-10"
xmlns:xlink="http://www.w3.org/1999/xlink"
xlink:type="simple"
xlink:href="students.xml">
Current List of Students
</my:crossReference>