Another abandoned server code base... this is kind of an ancestor of taskrambler.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

424 lines
22 KiB

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>The SML XLink Reference Scheme</title>
<style type="text/css">
h2 > a {display: none}
h2:hover > a {display: inline; text-decoration: none}
.toc-link {font-size: small; font-style: italic}
.code-fragment {font-family: "Courier New",fixed; color: black}
.code-block {padding: 5px; font-size: larger; font-family: "Courier New",fixed; color: black; background-color: #D5DEE3}
.references dd {margin-bottom: 15px}
ol.level1 {list-style-type: decimal}
ol.level2 {list-style-type: lower-alpha}
ol.level3 {list-style-type: lower-roman}
ol.level4 {list-style-type: decimal}
div.note {margin-left: 2em}
</style>
<link rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-WG-NOTE">
</head>
<body lang="en-US">
<div class="head">
<div><a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src="http://www.w3.org/Icons/w3c_home"></a></div>
<h1>The SML XLink Reference Scheme</h1>
<h2>W3C Working Group Note 23 October 2009</h2>
<dl>
<dt>This Version:</dt>
<dd><a href="http://www.w3.org/TR/2009/NOTE-sml-xlink-ref-scheme-20091023">http://www.w3.org/TR/2009/NOTE-sml-xlink-ref-scheme-20091023</a></dd>
<dt>Latest Version:</dt>
<dd><a href="http://www.w3.org/TR/sml-xlink-ref-scheme">http://www.w3.org/TR/sml-xlink-ref-scheme</a></dd>
<dt>Previous Version:</dt>
<dd><a href="http://www.w3.org/TR/2009/NOTE-sml-xlink-ref-scheme-20090630">http://www.w3.org/TR/2009/NOTE-sml-xlink-ref-scheme-20090630</a></dd>
<dt>Editors:</dt><dd>Pratul Dublish, Microsoft Corporation<br>Len Charest, Microsoft Corporation
<br/>Virginia Smith, Hewlett-Packard</dd>
</dl>
<p class="copyright">
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &copy; 2009
<a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>&reg;</sup>
(<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>,
<a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved.
W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and
<a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.
</p>
</div>
<hr>
<div style="text-align:center;font-style:italic" id="toc-jump"><a href="#toc">[Jump to Table of Contents]</a></div>
<h2 id="abstract">Abstract</h2>
<p>The Service Modeling Language [<cite><a href="#ref-SML">SML</a></cite>]
specification extends the Extensible Mark-up Language [<cite><a href="#ref-XML">XML</a></cite>]
and XML Schema [<cite><a href="#ref-XML-Schema">XML Schema</a></cite>]
with a mechanism for incorporating into XML documents references to other documents or document
fragments. This technical note addresses the construction of an SML reference
scheme based on the XML Linking Language [<cite><a href="#ref-XLink">XLink</a></cite>].</p>
<h2 id="status">Status of this Document</h2>
<p><em>This section describes the status of this document at the time of its publication.
Other documents may supersede this document. A list of current W3C publications
and the latest revision of this technical report can be found in the <a href="http://www.w3.org/TR/">
W3C technical reports index</a> at http://www.w3.org/TR/.</em></p>
<p>This is the <a
href="http://www.w3.org/2005/10/Process-20051014/tr.html#q75">W3C Working Group
Note</a> &quot;The SML XLink Reference Scheme&quot;. This document was produced by
the <a href="http://www.w3.org/XML/SML/">SML Working Group</a> as part of the
<a href="http://www.w3.org/XML/Activity">XML Activity</a>.</p>
<p>Please submit comments on this document using the
<a href="http://www.w3.org/XML/SML/#issues">procedure described on the Working Group's home page</a>.
In summary, the Working Group solicits comments in Bugzilla from those who have access,
and on the Working Group's <a href="mailto:public-sml@w3.org">public mailing list</a>
(<a href="http://lists.w3.org/Archives/Public/public-sml/">public archive</a>)
from others.</p>
<p>Publication as a Working Group Note does not imply endorsement by the W3C Membership.
This is a draft document and may be updated, replaced or obsoleted by other documents at
any time. It is inappropriate to cite this document as other than work in
progress.</p>
<p>This document is intended to illustrate the design
of an SML reference scheme based on XML Linking Language [<cite><a href="#ref-XLink">XLink</a></cite>] links.
Currently, this document is consistent with the Service Modeling
Language (SML) 1.1 specification [<cite><a href="#ref-SML">SML</a></cite>] and the Service Modeling
Language Interchange Format (SML-IF) 1.1 specification [<cite><a href="#ref-SML-IF">SML-IF</a></cite>], but it may be obsoleted
by future versions of these specifications. The SML WG does not expect this document to become a W3C Recommendation.
</p>
<p>
This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">
5 February 2004 W3C Patent Policy</a>. W3C maintains a <a rel="disclosure" href="http://www.w3.org/2004/01/pp-impl/41079/status">
public list of any patent disclosures</a> made in connection with the deliverables
of the group; that page also includes instructions for disclosing a patent. An individual
who has actual knowledge of a patent which the individual believes contains <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential">
Essential Claim(s)</a> must disclose the information in accordance with <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">
section 6 of the W3C Patent Policy</a>.
</p>
<div id="toc">
<h2 id="toc-head">Table of Contents</h2>
<ul class="toc">
<li id="toc-intro">1. <a href="#intro">Introduction</a></li>
<li id="toc-def">2. <a href="#def">SML XLink Reference Scheme Definition</a></li>
<li id="toc-examples">3. <a href="#examples">Examples</a></li>
<li id="toc-refs">A. <a href="#refs">References</a></li>
</ul>
</div>
<hr>
<h2 id="intro">1. Introduction
<a class="toc-link" href="#toc">[Back to Contents]</a></h2>
<p>The Service Modeling Language [<cite><a href="#ref-SML">SML</a></cite>] specification extends
the Extensible Mark-up Language [<cite><a href="#ref-XML">XML</a></cite>] and XML Schema
[<cite><a href="#ref-XML-Schema">XML Schema</a></cite>]
with a mechanism for incorporating into XML documents references to other
documents or document fragments. A reference to another document or document
fragment is encoded by means of markup compliant with one or more <a href="http://www.w3.org/TR/sml/#Reference_Schemes">reference
schemes</a> as defined in SML ([<cite><a href="#ref-SML">SML</a></cite>], section 4.3). The SML specification defines
one reference scheme, the SML URI Reference Scheme, which enables XML documents
to use URIs [<cite><a href="#ref-RFC-3986">RFC 3986</a></cite>] to identify documents or document fragments. The SML URI
Reference Scheme has the significant advantage of <a href="http://www.w3.org/TR/sml-if/#ConformanceClause">guaranteeing referential
conformance</a> of models that are exchanged between vendors ([<cite><a href="#ref-SML-IF">SML-IF</a></cite>],
section 5.1).</p>
<p>The SML specification does not mandate the use of
any specific reference scheme, and provides an extensibility mechanism for
defining new reference schemes. This note illustrates how the extensibility
mechanism can be used to define an SML reference scheme based on XLink links.</p>
<div class="note">
<b>Note:</b>
<p>The <code>xlink</code> prefix is used throughout this document to stand for the
declaration of the XLink namespace on elements in whose scope the so-marked attribute
appears (on the same element that bears the attribute or on some ancestor element),
whether or not an XLink namespace declaration is present in the example.</p>
</div>
<h2 id="def">2. SML XLink Reference Scheme Definition
<a class="toc-link" href="#toc">[Back to Contents]</a></h2>
<p>The SML XLink Reference Scheme is defined as follows:</p>
<ol class="level1">
<li><p>An SML reference is identified as an instance of the SML XLink Reference Scheme if
and only if the following condition is true:</p>
<ol class="level2">
<li><p>It has an attribute information item whose
[<a href="http://www.w3.org/TR/xml-names/#dt-localname">local name</a>] is
<span class="code-fragment">href</span>, and whose
[<a href="http://www.w3.org/TR/xml-names/#dt-NSName">namespace name</a>]
is <span class="code-fragment">http://www.w3.org/1999/xlink</span>.</p></li>
</ol>
</li>
<li><p>An instance of the SML XLink Reference Scheme is valid if it meets all of the
following requirements:</p>
<ol class="level2">
<li><p>The content of <span class="code-fragment">xlink:href</span> is
of type <span class="code-fragment"><a href="http://www.w3.org/TR/xmlschema-2/#anyURI"
title="XML Schema Part 2: Datatypes Second Edition">xs:anyURI</a></span>
[<cite><a href="#ref-XSD-Datatypes">XSD Datatypes</a></cite>].</p></li>
<li><p>The fragment component (if present) follows the syntax of one of the following:</p>
<ol class="level3">
<li><p>The <span class="code-fragment"><a
href="http://www.w3.org/TR/sml/#SMLXPath1_Scheme">smlxpath1()</a></span> XPointer
scheme as defined in [<cite><a href="#ref-SML">SML</a></cite>]</p></li>
<li><p>An XPointer <a
href="http://www.w3.org/TR/xptr-framework/#shorthand">shorthand pointer</a>
as defined in [<cite><a href="#ref-XPointer">XPointer</a></cite>]</p></li>
</ol>
</li>
<li>If an attribute information item whose
[<a href="http://www.w3.org/TR/xml-names/#dt-localname">local name</a>] is <span class="code-fragment">type</span> and
whose [<a href="http://www.w3.org/TR/xml-names/#dt-NSName">namespace name</a>]
is <span class="code-fragment">http://www.w3.org/1999/xlink</span> is present,
then its content is the string <span class="code-fragment">simple</span>.
</li>
</ol>
</li>
<li><p>An SML reference that is an instance of the SML XLink Reference Scheme is
resolved using the following steps:</p>
<ol class="level2">
<li><p>Let <b>U</b> be the URI reference that is the content of <span
class="code-fragment">xlink:href</span>. Let <b>S</b> be the
specification that defines the URI scheme of <b>U</b>.</p></li>
<li><p>An XML document <b>D</b> is obtained as follows:</p>
<ol class="level3">
<li><p>If <b>U</b> is a same-document reference, then <b>D</b> is the document
containing the SML reference.</p></li>
<li><p>Otherwise, <b>D</b> is determined as follows:</p>
<ol class="level4">
<li><p>If <b>U</b> is a relative reference, then let <b>U&#8242;</b> be the
result of transforming U to form an (absolute) URI using the [base URI] property
[<cite><a href="#ref-XML-Infoset">XML Infoset</a></cite>] of the SML reference element as the
base URI. Otherwise, let <b>U&#8242;</b> be <b>U</b> (i.e., the URI
reference itself). The computation of the [base URI] property is
implementation-defined.</p></li>
<li><p>Dereference <b>U&#8242;</b> as defined in <b>S</b>. If the document targeted by <b>U&#8242;</b>
is in the current SML model, then <b>D</b> is that document. Otherwise,
if the document is not in the current SML model, then the SML XLink
Reference Scheme instance is unresolved (and <b>D</b> has no value).</p>
<p><b>Note:</b></p>
<p>If the retrieved object is not of XML
media type or if it is not well-formed XML then, per the definition in
<a href="http://www.w3.org/TR/sml/#Terminology">section 2.2</a> of
[<cite><a href="#ref-SML">SML</a></cite>], that object is not a document. In this
case, the SML reference scheme instance is unresolved.</p>
</li>
</ol>
</li>
</ol>
</li>
<li><p>If no fragment component is present in <b>U</b>, the SML XLink Reference Scheme
instance resolves to the root element of <b>D</b>.</p></li>
<li><p>If a fragment component is present in <b>U</b>, then the appropriate case
among the following applies:</p>
<ol class="level3">
<li><p>If the fragment component complies with the <span class="code-fragment">smlxpath1()</span>
XPointer scheme syntax, then the reference target is obtained by
applying the fragment component to <b>D</b>, as defined in
<a href="http://www.w3.org/TR/sml/#SMLXPath1_Scheme">section 4.3.1.1</a> of [<cite><a href="#ref-SML">SML</a></cite>].</p></li>
<li><p>If the fragment component complies with the <a
href="http://www.w3.org/TR/xptr-framework/#shorthand">shorthand pointer</a>
syntax, then the appropriate case among the following applies:</p>
<ol class="level4">
<li><p>If a target <b>T</b> can be identified in <b>D</b> based on the <a
href="http://www.w3.org/TR/xptr-framework/#term-sdi">schema-determined
ID</a>, then the reference target is <b>T</b>.</p></li>
<li><p>If a target in <b>D</b> cannot be identified based on the schema-determined
ID, then it is implementation-defined whether the reference
target in <b>D</b> is identified based on other criteria allowed for shorthand
pointers.</p></li>
</ol>
</li>
</ol>
</li>
</ol>
</li>
<li>Instances of the SML XLink Reference Scheme are transformed to <a
href="http://www.w3.org/TR/sml/#target_complete_identifier">target-complete
identifiers</a> through standard URI processing, as described in
the applicable RFC for URI generic syntax. </li>
</ol>
<h2 id="examples">3. Examples
<a class="toc-link" href="#toc">[Back to Contents]</a></h2>
<p>The following example illustrates an instance of the XLink
Reference Scheme:</p>
<pre class="code-block">
&lt;Student&gt;
&lt;ID&gt;123&lt;/ID&gt;
&lt;Name&gt;Jane Doe&lt;/Name&gt;
&lt;EnrolledCourses&gt;
&lt;EnrolledCourse
xmlns:sml="http://www.w3.org/ns/sml"
xmlns:xlink="http://www.w3.org/1999/xlink"
sml:ref="true"
sml:nilref="false"
<b>xlink:href="http://www.university.example.org/phy101.xml"</b>
&lt;/EnrolledCourse&gt;
&lt;/EnrolledCourses&gt;
&lt;/Student&gt;
</pre>
<p>Here, the <span class="code-fragment">EnrolledCourse</span> element
is a valid instance of the SML XLink Reference Scheme since an
attribute <span class="code-fragment">xlink:href</span> is present and
its content is of type
<span class="code-fragment">xs:anyURI</span>. It is also an SML reference since
the content of <span class="code-fragment">sml:ref</span> is the string <span class="code-fragment">true</span>;
in particular, it is a non-null SML reference since the content of <span class="code-fragment">sml:nilref</span>
is the string <span class="code-fragment">false</span>.
The target of the reference is the root element of the XML document obtained by dereferencing
<span class="code-fragment">http://www.university.example.org/phy101.xml</span>.</p>
<p>The following example illustrates an instance of XLink
Reference Scheme where the content of <span class="code-fragment">xlink:href</span>
has a fragment component that follows the syntax of the
<span class="code-fragment">smlxpath1()</span> XPointer scheme:</p>
<pre class="code-block">
&lt;Student&gt;
&lt;ID&gt;123&lt;/ID&gt;
&lt;Name&gt;Jane Doe&lt;/Name&gt;
&lt;EnrolledCourses&gt;
&lt;EnrolledCourse
xmlns:sml="http://www.w3.org/ns/sml"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:u="http://www.university.example.org/ns"
sml:ref="true"
sml:nilref="false"
<b>xlink:href="http://www.university.example.org/physics.xml
#smlxpath1(u:Courses/u:Course[u:Name='PHY101'])"</b>
&lt;/EnrolledCourse&gt;
&lt;/EnrolledCourses&gt;
&lt;/Student&gt;
</pre>
<p>In the above example, the target of the reference is the element
identified by the path <span class="code-fragment">/u:Courses/u:Course[u:Name='PHY101']</span>
in the XML document obtained by dereferencing
<span class="code-fragment">http://www.university.example.org/physics.xml</span>.</p>
<h2 id="refs">A. References
<a class="toc-link" href="#toc">[Back to Contents]</a></h2>
<dl>
<dt class="label"><a name="ref-RFC-3986" id="ref-RFC-3986">[RFC-3986]</a></dt>
<dd><cite><a href="http://www.ietf.org/rfc/rfc3986.txt">Uniform Resource Identifier (URI):
Generic Syntax</a></cite>, T. Berners-Lee, R. Fielding, L. Masinter, Authors. Internet
Engineering Task Force, January 2005. Available at http://www.ietf.org/rfc/rfc3986.txt. </dd>
<dt class="label"><a name="ref-SML" id="ref-SML">[SML]</a></dt>
<dd><cite><a href="http://www.w3.org/TR/2009/REC-sml-20090512/">Service Modeling
Language, Version 1.1</a></cite>, Bhalchandra Pandit, Valentina
Popescu, Virginia Smith, Editors. World Wide Web Consortium, 12
May 2009. This version of the Service Modeling Language
Recommendation is available at http://www.w3.org/TR/2009/REC-sml-20090512/.
The <a href="http://www.w3.org/TR/sml/">latest version of Service Modeling
Language, Version 1.1</a> is available at http://www.w3.org/TR/sml/.</dd>
<dt class="label"><a name="ref-SML-IF" id="ref-SML-IF">[SML-IF]</a></dt>
<dd><cite><a href="http://www.w3.org/TR/2009/REC-sml-if-20090512/">Service Modeling
Language Interchange Format Version 1.1</a></cite>, Bhalchandra
Pandit, Valentina Popescu, Virginia Smith, Editors. World Wide Web
Consortium, 12 May 2009. This version of the Service Modeling
Language Interchange Format Recommendation is available at
http://www.w3.org/TR/2009/REC-sml-if-20090512/.
The <a href="http://www.w3.org/TR/sml-if/">latest version of Service
Modeling Language Interchange Format Version 1.1</a>
is available at http://www.w3.org/TR/sml-if/</dd>
<dt class="label"><a name="ref-XLink" id="ref-XLink">[XLink]</a></dt>
<dd><cite><a href=
"http://www.w3.org/TR/2001/REC-xlink-20010627/">XML Linking
Language (XLink) Version 1.1</a></cite>, Steve DeRose, Eve Maler,
David Orchard, Editors. World Wide Web Consortium, 31 March 2008.
This version of the XLink Recommendation is available at
http://www.w3.org/TR/2001/REC-xlink-20010627/. The <a href=
"http://www.w3.org/TR/xlink11/">latest version of XLink</a> is
available at http://www.w3.org/TR/xlink11/.</dd>
<dt class="label"><a name="ref-XML" id="ref-XML">[XML]</a></dt>
<dd><cite><a href="http://www.w3.org/TR/2006/REC-xml-20060816/">Extensible
Markup Language (XML) 1.0 (Fourth Edition)</a></cite>,
T. Bray, J. Paoli, C. M. Sperberg-McQueen, and E. Maler, Editors.
World Wide Web Consortium, 10 February 1998, revised 16 August 2006.
The edition cited (http://www.w3.org/TR/2006/REC-xml-20060816) was
the one current at the date of publication of Service Modeling Language
[<cite><a href="#ref-SML">SML</a></cite>] as a Candidate Recommendation.
The latest version of XML 1.0 is available
at <a href="http://www.w3.org/TR/xml/">http://www.w3.org/TR/xml/</a>.
Implementations may follow the edition cited and/or any later edition(s);
it is implementation-defined which editions are supported by an implementation.</dd>
<dt class="label"><a name="ref-XML-Infoset" id="ref-XML-Infoset">[XML-Infoset]</a></dt>
<dd><cite><a href=
"http://www.w3.org/TR/2004/REC-xml-infoset-20040204/">XML
Information Set (Second Edition)</a></cite>, John Cowan, Richard
Tobin, Editors. World Wide Web Consortium, 4 February 2004. This
version of the XML Information Set Recommendation is available at
http://www.w3.org/TR/2004/REC-xml-infoset-20040204/. The <a href=
"http://www.w3.org/TR/xml-infoset/">latest version of XML
Information Set</a> is available at http://www.w3.org/TR/xml-infoset/.</dd>
<dt class="label"><a name="ref-XML-Schema" id="ref-XML-Schema">[XML-Schema]</a></dt>
<dd>The XML Schema definition language (XSD) is specified in the following Recommendations from
the Word Wide Web Consortium:
<dl>
<dt class="label"><a name="ref-XSD-Structures" id="ref-XSD-Structures">[XSD-Structures]</a></dt>
<dd><cite><a href="http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/">XML Schema
Part 1: Structures Second Edition</a></cite>,
Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn, Editors.
World Wide Web Consortium, 2 May 2001, revised 28 October 2004.
This version of the XML Schema Part 1 Recommendation is available at
http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/.
The <a href="http://www.w3.org/TR/xmlschema-1/">latest version of XML Schema
1.0 Part 1</a> is available at http://www.w3.org/TR/xmlschema-1/.</dd>
<dt class="label"><a name="ref-XSD-Datatypes" id="ref-XSD-Datatypes">[XSD-Datatypes]</a></dt>
<dd><cite><a href="http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">XML Schema
Part 2: Datatypes Second Edition</a></cite>,
P. Byron and A. Malhotra, Editors.
World Wide Web Consortium, 2 May 2001, revised 28 October 2004.
This version of the XML Schema Part 2 Recommendation is available at
http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/.
The <a href="http://www.w3.org/TR/xmlschema-2/">latest version of XML Schema
1.0 Part 2</a> is available at http://www.w3.org/TR/xmlschema-2/.</dd>
</dl>
</dd>
<dt class="label"><a name="ref-XPointer" id="ref-XPointer">[XPointer]</a></dt>
<dd><cite><a href=
"http://www.w3.org/TR/2003/REC-xptr-framework-20030325/">XPointer
Framework</a></cite>, P. Grosso, E. Maler, J. Marsh, and N. Walsh,
Editors. World Wide Web Consortium, 25 March 2003. This version of
the XPointer Framework Recommendation is
http://www.w3.org/TR/2003/REC-xptr-framework-20030325/ The <a href=
"http://www.w3.org/TR/xptr-framework/">latest version of XPointer
Framework</a> is available at available at
http://www.w3.org/TR/xptr-framework/.</dd>
</dl>
</body>
</html>