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.
9708 lines
357 KiB
9708 lines
357 KiB
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
<head>
|
|
<meta name="generator" content=
|
|
"HTML Tidy for Windows (vers 14 February 2006), see www.w3.org" />
|
|
<title>XQuery 1.0 and XPath 2.0 Data Model (XDM) (Second
|
|
Edition)</title>
|
|
|
|
<style type="text/css">
|
|
/*<![CDATA[*/
|
|
code { font-family: monospace; }
|
|
|
|
div.constraint,
|
|
div.issue,
|
|
div.note,
|
|
div.notice { margin-left: 2em; }
|
|
|
|
div.issue
|
|
p.title { margin-left: -2em; }
|
|
|
|
ol.enumar { list-style-type: decimal; }
|
|
ol.enumla { list-style-type: lower-alpha; }
|
|
ol.enumlr { list-style-type: lower-roman; }
|
|
ol.enumua { list-style-type: upper-alpha; }
|
|
ol.enumur { list-style-type: upper-roman; }
|
|
|
|
li p { margin-top: 0.3em;
|
|
margin-bottom: 0.3em; }
|
|
|
|
sup small { font-style: italic;
|
|
color: #8F8F8F;
|
|
}
|
|
|
|
div.exampleInner pre { margin-left: 1em;
|
|
margin-top: 0em; margin-bottom: 0em}
|
|
div.exampleOuter {border: 4px double gray;
|
|
margin: 0em; padding: 0em}
|
|
div.exampleInner { background-color: #d5dee3;
|
|
border-top-width: 4px;
|
|
border-top-style: double;
|
|
border-top-color: #d3d3d3;
|
|
border-bottom-width: 4px;
|
|
border-bottom-style: double;
|
|
border-bottom-color: #d3d3d3;
|
|
padding: 4px; margin: 0em }
|
|
div.exampleWrapper { margin: 4px }
|
|
div.exampleHeader { font-weight: bold;
|
|
margin: 4px}
|
|
|
|
div.issue { border-bottom-color: black;
|
|
border-bottom-style: solid;
|
|
border-bottom-width: 1pt;
|
|
margin-bottom: 20pt;
|
|
}
|
|
|
|
th.issue-toc-head { border-bottom-color: black;
|
|
border-bottom-style: solid;
|
|
border-bottom-width: 1pt;
|
|
}
|
|
|
|
/*]]>*/
|
|
</style>
|
|
<link type="text/css" rel="stylesheet" href=
|
|
"http://www.w3.org/StyleSheets/TR/W3C-REC.css" />
|
|
</head>
|
|
<body>
|
|
<div class="head">
|
|
<p><a href="http://www.w3.org/"><img width="72" height="48" alt=
|
|
"W3C" src="http://www.w3.org/Icons/w3c_home" /></a></p>
|
|
<h1><a id="title" name="title"></a>XQuery 1.0 and XPath 2.0 Data
|
|
Model (XDM) (Second Edition)</h1>
|
|
<h2><a id="w3c-doctype" name="w3c-doctype"></a>W3C Recommendation
|
|
14 December 2010</h2>
|
|
<dl>
|
|
<dt>This version:</dt>
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/2010/REC-xpath-datamodel-20101214/">http://www.w3.org/TR/2010/REC-xpath-datamodel-20101214/</a></dd>
|
|
<dt>Latest version:</dt>
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/xpath-datamodel/">http://www.w3.org/TR/xpath-datamodel/</a></dd>
|
|
<dt>Previous versions:</dt>
|
|
<dd><a href=
|
|
"http://www.w3.org/TR/2009/PER-xpath-datamodel-20090421/">http://www.w3.org/TR/2009/PER-xpath-datamodel-20090421/,</a>
|
|
<a href=
|
|
"http://www.w3.org/TR/2007/REC-xpath-datamodel-20070123/">http://www.w3.org/TR/2007/REC-xpath-datamodel-20070123/</a></dd>
|
|
<dt>Editors:</dt>
|
|
<dd>Anders Berglund (XSL WG), BC&TF <a href=
|
|
"http://www.albconsults.com"><http://www.albconsults.com></a>
|
|
- Second Edition</dd>
|
|
<dd>Mary Fernández (XML Query WG), AT&T Labs <a href=
|
|
"mailto:mff@research.att.com"><mff@research.att.com></a></dd>
|
|
<dd>Ashok Malhotra (XML Query and XSL WGs), Oracle Corporation
|
|
<a href=
|
|
"mailto:ashok.malhotra@alum.mit.edu"><ashok.malhotra@alum.mit.edu></a></dd>
|
|
<dd>Jonathan Marsh (XSL WG), Microsoft <a href=
|
|
"mailto:jmarsh@microsoft.com"><jmarsh@microsoft.com></a></dd>
|
|
<dd>Marton Nagy (XML Query WG), Science Applications International
|
|
Corporation (SAIC) <a href=
|
|
"mailto:marton.nagy@saic.com"><marton.nagy@saic.com></a></dd>
|
|
<dd>Norman Walsh (XSL WG), Mark Logic <a href=
|
|
"mailto:Norman.Walsh@marklogic.com"><Norman.Walsh@marklogic.com></a></dd>
|
|
</dl>
|
|
<p>Please refer to the <a href=
|
|
"http://www.w3.org/XML/2010/qt-errata/xpath-datamodel-errata2e.html">
|
|
<strong>errata</strong></a> for this document, which may include
|
|
some normative corrections.</p>
|
|
<p>See also <a href=
|
|
"http://www.w3.org/2003/03/Translations/byTechnology?technology=xpath-datamodel">
|
|
<strong>translations</strong></a>.</p>
|
|
<p>This document is also available in these non-normative formats:
|
|
<a href=
|
|
"http://www.w3.org/TR/2010/REC-xpath-datamodel-20101214/xpath-datamodel-20101214.xml">
|
|
XML</a> and <a href=
|
|
"http://www.w3.org/TR/2010/REC-xpath-datamodel-20101214/xpath-datamodel-diff-from-REC20070123.html">Change
|
|
markings relative to first edition</a>.</p>
|
|
<p class="copyright"><a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © 2010 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup>
|
|
(<a href="http://www.csail.mit.edu/"><acronym title=
|
|
"Massachusetts Institute of Technology">MIT</acronym></a>, <a href=
|
|
"http://www.ercim.eu/"><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>
|
|
<h2><a id="abstract" name="abstract"></a>Abstract</h2>
|
|
<p>This document defines the W3C XQuery 1.0 and XPath 2.0 Data
|
|
Model (XDM), which is the data model of <a href="#xpath20">[XML
|
|
Path Language (XPath) 2.0 (Second Edition)]</a>, <a href=
|
|
"#xslt20">[XSLT 2.0 (Second Edition)]</a>, and <a href=
|
|
"#xquery">[XQuery]</a>, and any other specifications that reference
|
|
it. This data model is based on the <a href="#xpath">[XPath
|
|
1.0]</a> data model and earlier work on an <a href="#XQDM00">[XML
|
|
Query Data Model]</a>. This document is the result of joint work by
|
|
the <a href="#XSLWG">[XSL Working Group]</a> and the <a href=
|
|
"#XQWG">[XML Query Working Group]</a>.</p>
|
|
</div>
|
|
<div>
|
|
<h2><a id="status" name="status"></a>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 one document in a set of eight documents that are being
|
|
progressed to Edited Recommendation together (XPath 2.0, XQuery
|
|
1.0, XQueryX 1.0, XSLT 2.0, Data Model (XDM), Functions and
|
|
Operators, Formal Semantics, Serialization).</p>
|
|
<p>This document, published on 14 December 2010, is an Edited
|
|
<a href=
|
|
"http://www.w3.org/2004/02/Process-20040205/tr.html#RecsW3C">Recommendation</a>
|
|
of the W3C. It supersedes the previous W3C Recommendation of 23
|
|
January 2007. This second edition is not a new version of this
|
|
specification; its purpose is to clarify a number of issues that
|
|
have become apparent since the first edition was published. All of
|
|
these clarifications (excepting trivial editorial fixes) have been
|
|
published in a separate errata document, and published in a
|
|
<a href="http://www.w3.org/2004/02/Process-20040205/tr.html#ProposedEditedRec">
|
|
Proposed Edited Recommendation</a> in April 2009. The changes are
|
|
summarized in an appendix. This document has been jointly developed
|
|
by the W3C <a href="http://www.w3.org/XML/Query/">XML Query Working
|
|
Group</a> and the W3C <a href="http://www.w3.org/Style/XSL/">XSL
|
|
Working Group</a>, each of which is part of the <a href=
|
|
"http://www.w3.org/XML/Activity">XML Activity</a>.</p>
|
|
<p>This document has been reviewed by W3C Members, by software
|
|
developers, and by other W3C groups and interested parties, and is
|
|
endorsed by the Director as a W3C Recommendation. It is a stable
|
|
document and may be used as reference material or cited from
|
|
another document. W3C's role in making the Recommendation is to
|
|
draw attention to the specification and to promote its widespread
|
|
deployment. This enhances the functionality and interoperability of
|
|
the Web.</p>
|
|
<p>This document incorporates changes made against the <a href=
|
|
"http://www.w3.org/2004/02/Process-20040205/tr.html#RecsW3C">Recommendation</a>
|
|
of 23 January 2007 that resolve all errata known at the date of
|
|
publication. Changes to this document since the first edition are
|
|
detailed in the <a href="#ChangeLog"><b>G Changes since the First
|
|
Edition</b></a>. This document supersedes the <a href=
|
|
"http://www.w3.org/TR/2007/REC-xpath-datamodel-20070123/">first
|
|
edition</a>.</p>
|
|
<p>This specification is designed to be referenced normatively from
|
|
other specifications defining a host language for it; it is not
|
|
intended to be implemented outside a host language. The
|
|
implementability of this specification has been tested in the
|
|
context of its normative inclusion in host languages defined by the
|
|
<a href="http://www.w3.org/TR/xquery/">XQuery 1.0</a> and <a href=
|
|
"http://www.w3.org/TR/xslt20/">XSLT 2.0</a> specifications; see the
|
|
<a href=
|
|
"http://www.w3.org/XML/Query/test-suite/XQTSReport.html">XQuery 1.0
|
|
implementation report</a> and the <a href=
|
|
"http://www.w3.org/XML/Group/xslt20-test/Documentation/reportSummary.html">
|
|
XSLT 2.0 implementation report</a> (member-only) for details.</p>
|
|
<p>Please report errors in and submit comments on this document
|
|
using W3C's <a href="http://www.w3.org/Bugs/Public/">public
|
|
Bugzilla system</a> (instructions can be found at <a href=
|
|
"http://www.w3.org/XML/2005/04/qt-bugzilla">http://www.w3.org/XML/2005/04/qt-bugzilla</a>).
|
|
If access to that system is not feasible, you may send your
|
|
comments to the W3C XSLT/XPath/XQuery public comments mailing list,
|
|
<a href=
|
|
"mailto:public-qt-comments@w3.org">public-qt-comments@w3.org</a>.
|
|
It will be very helpful if you include the string “[DM]” in the
|
|
subject line of your report, whether made in Bugzilla or in email.
|
|
Each Bugzilla entry and email message should contain only one error
|
|
report. Archives of the comments and responses are available at
|
|
<a href=
|
|
"http://lists.w3.org/Archives/Public/public-qt-comments/">http://lists.w3.org/Archives/Public/public-qt-comments/</a>.</p>
|
|
<p>This document was produced by groups operating under the
|
|
<a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5
|
|
February 2004 W3C Patent Policy</a>. W3C maintains a <a href=
|
|
"http://www.w3.org/2004/01/pp-impl/18797/status#disclosures">public
|
|
list of any patent disclosures</a> made in connection with the
|
|
deliverables of the XML Query Working Group and also maintains a
|
|
<a href=
|
|
"http://www.w3.org/2004/01/pp-impl/19552/status#disclosures">public
|
|
list of any patent disclosures</a> made in connection with the
|
|
deliverables of the XSL Working Group; those pages also include
|
|
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>
|
|
<div class="toc">
|
|
<h2><a id="contents" name="contents"></a>Table of Contents</h2>
|
|
<p class="toc">1 <a href="#intro">Introduction</a><br />
|
|
2 <a href="#concepts">Concepts</a><br />
|
|
    2.1 <a href=
|
|
"#terminology">Terminology</a><br />
|
|
    2.2 <a href="#notation">Notation</a><br />
|
|
    2.3 <a href="#node-identity">Node
|
|
Identity</a><br />
|
|
    2.4 <a href="#document-order">Document
|
|
Order</a><br />
|
|
    2.5 <a href=
|
|
"#sequences">Sequences</a><br />
|
|
    2.6 <a href="#types">Types</a><br />
|
|
        2.6.1 <a href=
|
|
"#types-representation">Representation of Types</a><br />
|
|
        2.6.2 <a href=
|
|
"#types-predefined">Predefined Types</a><br />
|
|
        2.6.3 <a href=
|
|
"#types-hierarchy">Type Hierarchy</a><br />
|
|
        2.6.4 <a href=
|
|
"#AtomicValue">Atomic Values</a><br />
|
|
        2.6.5 <a href=
|
|
"#StringValue">String Values</a><br />
|
|
3 <a href="#construction">Data Model Construction</a><br />
|
|
    3.1 <a href="#const-other">Direct
|
|
Construction</a><br />
|
|
    3.2 <a href="#const-infoset">Construction
|
|
from an Infoset</a><br />
|
|
    3.3 <a href="#const-psvi">Construction from
|
|
a PSVI</a><br />
|
|
        3.3.1 <a href=
|
|
"#PSVI2Types">Mapping PSVI Additions to Node Properties</a><br />
|
|
            3.3.1.1
|
|
<a href="#PSVI2NodeTypes">Element and Attribute Node Type
|
|
Names</a><br />
|
|
            3.3.1.2
|
|
<a href="#TypedValueDetermination">Typed Value
|
|
Determination</a><br />
|
|
            3.3.1.3
|
|
<a href="#typed-string-relationships">Relationship Between
|
|
Typed-Value and String-Value</a><br />
|
|
            3.3.1.4
|
|
<a href="#pattern-facets">Pattern Facets</a><br />
|
|
        3.3.2 <a href=
|
|
"#dates-and-times">Dates and Times</a><br />
|
|
        3.3.3 <a href=
|
|
"#qnames-and-notations">QNames and NOTATIONS</a><br />
|
|
4 <a href="#infoset-mapping">Infoset Mapping</a><br />
|
|
5 <a href="#accessors">Accessors</a><br />
|
|
    5.1 <a href="#dm-attributes">attributes
|
|
Accessor</a><br />
|
|
    5.2 <a href="#dm-base-uri">base-uri
|
|
Accessor</a><br />
|
|
    5.3 <a href="#dm-children">children
|
|
Accessor</a><br />
|
|
    5.4 <a href="#dm-document-uri">document-uri
|
|
Accessor</a><br />
|
|
    5.5 <a href="#dm-is-id">is-id
|
|
Accessor</a><br />
|
|
    5.6 <a href="#dm-is-idrefs">is-idrefs
|
|
Accessor</a><br />
|
|
    5.7 <a href=
|
|
"#dm-namespace-bindings">namespace-bindings Accessor</a><br />
|
|
    5.8 <a href=
|
|
"#dm-namespace-nodes">namespace-nodes Accessor</a><br />
|
|
    5.9 <a href="#dm-nilled">nilled
|
|
Accessor</a><br />
|
|
    5.10 <a href="#dm-node-kind">node-kind
|
|
Accessor</a><br />
|
|
    5.11 <a href="#dm-node-name">node-name
|
|
Accessor</a><br />
|
|
    5.12 <a href="#dm-parent">parent
|
|
Accessor</a><br />
|
|
    5.13 <a href=
|
|
"#dm-string-value">string-value Accessor</a><br />
|
|
    5.14 <a href="#dm-type-name">type-name
|
|
Accessor</a><br />
|
|
    5.15 <a href="#dm-typed-value">typed-value
|
|
Accessor</a><br />
|
|
    5.16 <a href=
|
|
"#dm-unparsed-entity-public-id">unparsed-entity-public-id
|
|
Accessor</a><br />
|
|
    5.17 <a href=
|
|
"#dm-unparsed-entity-system-id">unparsed-entity-system-id
|
|
Accessor</a><br />
|
|
6 <a href="#Node">Nodes</a><br />
|
|
    6.1 <a href="#DocumentNode">Document
|
|
Nodes</a><br />
|
|
        6.1.1 <a href=
|
|
"#DocumentNodeOverview">Overview</a><br />
|
|
        6.1.2 <a href=
|
|
"#DocumentNodeAccessors">Accessors</a><br />
|
|
        6.1.3 <a href=
|
|
"#const-infoset-document">Construction from an Infoset</a><br />
|
|
        6.1.4 <a href=
|
|
"#const-psvi-document">Construction from a PSVI</a><br />
|
|
        6.1.5 <a href=
|
|
"#infoset-mapping-document">Infoset Mapping</a><br />
|
|
    6.2 <a href="#ElementNode">Element
|
|
Nodes</a><br />
|
|
        6.2.1 <a href=
|
|
"#ElementNodeOverview">Overview</a><br />
|
|
        6.2.2 <a href=
|
|
"#ElementNodeAccessors">Accessors</a><br />
|
|
        6.2.3 <a href=
|
|
"#const-infoset-element">Construction from an Infoset</a><br />
|
|
        6.2.4 <a href=
|
|
"#const-psvi-element">Construction from a PSVI</a><br />
|
|
        6.2.5 <a href=
|
|
"#infoset-mapping-element">Infoset Mapping</a><br />
|
|
    6.3 <a href="#AttributeNode">Attribute
|
|
Nodes</a><br />
|
|
        6.3.1 <a href=
|
|
"#AttributeNodeOverview">Overview</a><br />
|
|
        6.3.2 <a href=
|
|
"#AttributeNodeAccessors">Accessors</a><br />
|
|
        6.3.3 <a href=
|
|
"#const-infoset-attribute">Construction from an Infoset</a><br />
|
|
        6.3.4 <a href=
|
|
"#const-psvi-attribute">Construction from a PSVI</a><br />
|
|
        6.3.5 <a href=
|
|
"#infoset-mapping-attribute">Infoset Mapping</a><br />
|
|
    6.4 <a href="#NamespaceNode">Namespace
|
|
Nodes</a><br />
|
|
        6.4.1 <a href=
|
|
"#NamespaceNodeOverview">Overview</a><br />
|
|
        6.4.2 <a href=
|
|
"#NamespaceNodeAccessors">Accessors</a><br />
|
|
        6.4.3 <a href=
|
|
"#const-infoset-namespace">Construction from an Infoset</a><br />
|
|
        6.4.4 <a href=
|
|
"#const-psvi-namespace">Construction from a PSVI</a><br />
|
|
        6.4.5 <a href=
|
|
"#infoset-mapping-namespace">Infoset Mapping</a><br />
|
|
    6.5 <a href=
|
|
"#ProcessingInstructionNode">Processing Instruction Nodes</a><br />
|
|
        6.5.1 <a href=
|
|
"#ProcessingInstructionNodeOverview">Overview</a><br />
|
|
        6.5.2 <a href=
|
|
"#ProcessingInstructionNodeAccessors">Accessors</a><br />
|
|
        6.5.3 <a href=
|
|
"#const-infoset-pi">Construction from an Infoset</a><br />
|
|
        6.5.4 <a href=
|
|
"#const-psvi-pi">Construction from a PSVI</a><br />
|
|
        6.5.5 <a href=
|
|
"#infoset-mapping-processing-instruction">Infoset Mapping</a><br />
|
|
    6.6 <a href="#CommentNode">Comment
|
|
Nodes</a><br />
|
|
        6.6.1 <a href=
|
|
"#CommentNodeOverview">Overview</a><br />
|
|
        6.6.2 <a href=
|
|
"#CommentNodeAccessors">Accessors</a><br />
|
|
        6.6.3 <a href=
|
|
"#const-infoset-comment">Construction from an Infoset</a><br />
|
|
        6.6.4 <a href=
|
|
"#const-psvi-comment">Construction from a PSVI</a><br />
|
|
        6.6.5 <a href=
|
|
"#infoset-mapping-comment">Infoset Mapping</a><br />
|
|
    6.7 <a href="#TextNode">Text
|
|
Nodes</a><br />
|
|
        6.7.1 <a href=
|
|
"#TextNodeOverview">Overview</a><br />
|
|
        6.7.2 <a href=
|
|
"#TextNodeAccessors">Accessors</a><br />
|
|
        6.7.3 <a href=
|
|
"#const-infoset-text">Construction from an Infoset</a><br />
|
|
        6.7.4 <a href=
|
|
"#const-psvi-text">Construction from a PSVI</a><br />
|
|
        6.7.5 <a href=
|
|
"#infoset-mapping-text">Infoset Mapping</a><br />
|
|
7 <a href="#conformance">Conformance</a><br /></p>
|
|
<h3><a id="appendices" name="appendices"></a>Appendices</h3>
|
|
<p class="toc">A <a href="#infoset-conformance">XML Information Set
|
|
Conformance</a><br />
|
|
B <a href="#references">References</a><br />
|
|
    B.1 <a href=
|
|
"#normative-references">Normative References</a><br />
|
|
    B.2 <a href="#informative-references">Other
|
|
References</a><br />
|
|
C <a href="#xdtschema">Schema for the Extended XS
|
|
Namespace</a><br />
|
|
D <a href="#glossary">Glossary</a> (Non-Normative)<br />
|
|
E <a href="#example">Example</a> (Non-Normative)<br />
|
|
F <a href="#impl-summary">Implementation-Defined and
|
|
Implementation-Dependent Items</a> (Non-Normative)<br />
|
|
    F.1 <a href=
|
|
"#implementation-defined">Implementation-Defined Items</a><br />
|
|
    F.2 <a href=
|
|
"#implementation-dependent">Implementation-Dependent
|
|
Items</a><br />
|
|
G <a href="#ChangeLog">Changes since the First Edition</a>
|
|
(Non-Normative)<br />
|
|
H <a href="#accessors-list">Accessor Summary</a>
|
|
(Non-normative)<br />
|
|
I <a href="#infoset-construction-summary">Infoset Construction
|
|
Summary</a> (Non-normative)<br />
|
|
J <a href="#psvi-construction-summary">PSVI Construction
|
|
Summary</a> (Non-normative)<br />
|
|
K <a href="#infoset-mapping-summary">Infoset Mapping Summary</a>
|
|
(Non-normative)<br /></p>
|
|
</div>
|
|
<hr />
|
|
<div class="body">
|
|
<div class="div1">
|
|
<h2><a id="intro" name="intro"></a>1 Introduction</h2>
|
|
<p>This document defines the XQuery 1.0 and XPath 2.0 Data Model,
|
|
which is the data model of <a href="#xpath20">[XML Path Language
|
|
(XPath) 2.0 (Second Edition)]</a>, <a href="#xslt20">[XSLT 2.0
|
|
(Second Edition)]</a> and <a href="#xquery">[XQuery]</a></p>
|
|
<p>The XQuery 1.0 and XPath 2.0 Data Model (henceforth "data
|
|
model") serves two purposes. First, it defines the information
|
|
contained in the input to an XSLT or XQuery processor. Second, it
|
|
defines all permissible values of expressions in the XSLT, XQuery,
|
|
and XPath languages. A language is <em>closed</em> with respect to
|
|
a data model if the value of every expression in the language is
|
|
guaranteed to be in the data model. XSLT 2.0, XQuery 1.0, and XPath
|
|
2.0 are all closed with respect to the data model.</p>
|
|
<p>The data model is based on the <a href=
|
|
"#xml-infoset">[Infoset]</a> (henceforth "Infoset"), but it
|
|
requires the following new features to meet the <a href=
|
|
"#xpath20req">[XPath 2.0 Requirements]</a> and <a href=
|
|
"#xquery-requirements">[XML Query Requirements]</a>:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Support for XML Schema types. The XML Schema recommendations
|
|
define features, such as structures (<a href="#xmlschema-1">[Schema
|
|
Part 1]</a>) and simple data types (<a href="#xmlschema-2">[Schema
|
|
Part 2]</a>), that extend the XML Information Set with precise type
|
|
information.</p>
|
|
</li>
|
|
<li>
|
|
<p>Representation of collections of documents and of complex
|
|
values. (<a href="#xquery-requirements">[XML Query
|
|
Requirements]</a>)</p>
|
|
</li>
|
|
<li>
|
|
<p>Support for typed atomic values.</p>
|
|
</li>
|
|
<li>
|
|
<p>Support for ordered, heterogeneous sequences.</p>
|
|
</li>
|
|
</ul>
|
|
<p>As with the Infoset, the XQuery 1.0 and XPath 2.0 Data Model
|
|
specifies what information in the documents is accessible, but it
|
|
does not specify the programming-language interfaces or bindings
|
|
used to represent or access the data.</p>
|
|
<p>The data model can represent various values including not only
|
|
the input and the output of a stylesheet or query, but all values
|
|
of expressions used during the intermediate calculations. Examples
|
|
include the input document or document repository (represented as a
|
|
Document Node or a sequence of Document Nodes), the result of a
|
|
path expression (represented as a sequence of nodes), the result of
|
|
an arithmetic or a logical expression (represented as an atomic
|
|
value), a sequence expression resulting in a sequence of items,
|
|
etc.</p>
|
|
<p>This document provides a precise definition of the properties of
|
|
nodes in the XQuery 1.0 and XPath 2.0 Data Model, how they are
|
|
accessed, and how they relate to values in the Infoset and
|
|
PSVI.</p>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="concepts" name="concepts"></a>2 Concepts</h2>
|
|
<p>This section outlines a number of general concepts that apply
|
|
throughout this specification.</p>
|
|
<p>In this document, examples and material labeled as "Note" are
|
|
provided for explanatory purposes and are not normative.</p>
|
|
<div class="div2">
|
|
<h3><a id="terminology" name="terminology"></a>2.1 Terminology</h3>
|
|
<p>For a full glossary of terms, see <a href="#glossary"><b>D
|
|
Glossary</b></a>.</p>
|
|
<p>In this specification the words <strong>must</strong>,
|
|
<strong>must not</strong>, <strong>should</strong>, <strong>should
|
|
not</strong>, <strong>may</strong> and <strong>recommended</strong>
|
|
are to be interpreted as described in <a href="#RFC2119">[RFC
|
|
2119]</a>.</p>
|
|
<p>This specification distinguishes between the data model as a
|
|
general concept and specific items (documents, elements, atomic
|
|
values, etc.) that are concrete examples of the data model by
|
|
identifying all concrete examples as <a title=
|
|
"instance of the data model" href="#dt-instance">instances of the
|
|
data model</a>.</p>
|
|
<p>[<a title="instance of the data model" id="dt-instance" name=
|
|
"dt-instance">Definition</a>: Every <b>instance of the data
|
|
model</b> is a <a title="sequence" href=
|
|
"#dt-sequence">sequence</a>.].</p>
|
|
<p>[<a title="sequence" id="dt-sequence" name=
|
|
"dt-sequence">Definition</a>: A <b>sequence</b> is an ordered
|
|
collection of zero or more <a title="item" href=
|
|
"#dt-item">items</a>.] A sequence cannot be a member of a sequence.
|
|
A single item appearing on its own is modeled as a sequence
|
|
containing one item. Sequences are defined in <a href=
|
|
"#sequences"><b>2.5 Sequences</b></a>.</p>
|
|
<p>[<a title="item" id="dt-item" name="dt-item">Definition</a>: An
|
|
<b>item</b> is either a <a title="Node" href="#dt-node">node</a> or
|
|
an <a title="atomic value" href="#dt-atomic-value">atomic
|
|
value</a>],</p>
|
|
<p>[<a title="item" id="dt-root-node" name=
|
|
"dt-root-node">Definition</a>: The topmost node of a tree is called
|
|
the <b>root node</b>.]</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>Thus the root node is merely a designator, based on position,
|
|
for one of the nodes in the tree without implying what kind of a
|
|
node it is. In the XPath 1.0 datamodel the root node was a kind of
|
|
node.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
<p>Every node is one of the seven kinds of nodes defined in
|
|
<a href="#Node"><b>6 Nodes</b></a>. Nodes form a tree that consists
|
|
of a root node plus all the nodes that are reachable directly or
|
|
indirectly from the root node via the <span class=
|
|
"function"><a href="#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span>, <span class=
|
|
"function"><a href="#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span>, and <span class=
|
|
"function"><a href="#dm-namespace-nodes"><span class=
|
|
"prefix">dm:</span>namespace-nodes</a></span> accessors. Every node
|
|
belongs to exactly one tree, and every tree has exactly one root
|
|
node.</p>
|
|
<p>[<a title="document" id="dt-document" name=
|
|
"dt-document">Definition</a>: A tree whose root node is a Document
|
|
Node is referred to as a <b>document</b>.]</p>
|
|
<p>[<a title="fragment" id="dt-fragment" name=
|
|
"dt-fragment">Definition</a>: A tree whose root node is not a
|
|
Document Node is referred to as a <b>fragment</b>.]</p>
|
|
<p>[<a title="atomic value" id="dt-atomic-value" name=
|
|
"dt-atomic-value">Definition</a>: An <b>atomic value</b> is a value
|
|
in the value space of an <a title="atomic type" href=
|
|
"#dt-atomic-type">atomic type</a> and is labeled with the name of
|
|
that atomic type.]</p>
|
|
<p>[<a title="atomic type" id="dt-atomic-type" name=
|
|
"dt-atomic-type">Definition</a>: An <b>atomic type</b> is a
|
|
<a title="primitive simple type" href=
|
|
"#dt-primitive-simple-type">primitive simple type</a> or a type
|
|
derived by restriction from another atomic type.] (Types derived by
|
|
list or union are not atomic.)</p>
|
|
<p>[<a title="primitive simple type" id="dt-primitive-simple-type"
|
|
name="dt-primitive-simple-type">Definition</a>: There are 21
|
|
<b>primitive simple types</b>: the 19 defined in <a href=
|
|
"http://www.w3.org/TR/xmlschema-2/#built-in-primitive-datatypes">Section
|
|
3.2 Primitive datatypes</a><sup><small>XS2</small></sup> of
|
|
<a href="#xmlschema-2">[Schema Part 2]</a> and
|
|
<code>xs:untypedAtomic</code> and <code>xs:anyAtomicType</code>],
|
|
defined in <a href="#types"><b>2.6 Types</b></a>.</p>
|
|
<p>A type is represented in the data model by an <a title=
|
|
"expanded-QName" href="#dt-expanded-qname">expanded-QName</a>.</p>
|
|
<p>[<a title="expanded-QName" id="dt-expanded-qname" name=
|
|
"dt-expanded-qname">Definition</a>: An <b>expanded-QName</b> is a
|
|
set of three values consisting of a possibly empty prefix, a
|
|
possibly empty namespace URI, and a local name.] See <a href=
|
|
"#qnames-and-notations"><b>3.3.3 QNames and NOTATIONS</b></a>.</p>
|
|
<p>[<a title="implementation defined" id=
|
|
"dt-implementation-defined" name=
|
|
"dt-implementation-defined">Definition</a>:
|
|
<b>Implementation-defined</b> indicates an aspect that may differ
|
|
between implementations, but must be specified by the implementor
|
|
for each particular implementation.]</p>
|
|
<p>[<a title="implementation dependent" id=
|
|
"dt-implementation-dependent" name=
|
|
"dt-implementation-dependent">Definition</a>:
|
|
<b>Implementation-dependent</b> indicates an aspect that may differ
|
|
between implementations, is not specified by this or any W3C
|
|
specification, and is not required to be specified by the
|
|
implementor for any particular implementation.]</p>
|
|
<p>[<a title="undefined" id="dt-undefined" name=
|
|
"dt-undefined">Definition</a>: In certain situations a value is
|
|
said to be <b>undefined</b> (for example, the typed value of an
|
|
element node). This term indicates that the property in question
|
|
has no value and that any attempt to use its value results in an
|
|
error.]</p>
|
|
<p>Within this specification, the term URI refers to a Universal
|
|
Resource Identifier as defined in <a href="#RFC3986">[RFC 3986]</a>
|
|
and extended in <a href="#RFC3987">[RFC 2987]</a> with the new name
|
|
IRI. The term URI has been retained in preference to IRI to avoid
|
|
introducing new names for concepts such as “Base URI” that are
|
|
defined or referenced across the whole family of XML
|
|
specifications.</p>
|
|
<p>In all cases where this specification leaves the behavior
|
|
implementation-defined or implementation-dependent, the
|
|
implementation has the option of providing mechanisms that allow
|
|
the user to influence the behavior.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="notation" name="notation"></a>2.2 Notation</h3>
|
|
<p>In addition to prose, this specification defines a set of
|
|
accessor functions to explain the data model. The accessors are
|
|
shown with the prefix <em>dm:</em>. This prefix is always shown in
|
|
italics to emphasize that these functions are abstract; they exist
|
|
to explain the interface between the data model and specifications
|
|
that rely on the data model: they are not accessible directly from
|
|
the host language.</p>
|
|
<p>Several prefixes are used throughout this document for
|
|
notational convenience. The following bindings are assumed.</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p><code>xs:</code> bound to
|
|
<code>http://www.w3.org/2001/XMLSchema</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>xsi:</code> bound to
|
|
<code>http://www.w3.org/2001/XMLSchema-instance</code></p>
|
|
</li>
|
|
<li>
|
|
<p><code>fn:</code> bound to
|
|
<code>http://www.w3.org/2005/xpath-functions</code></p>
|
|
</li>
|
|
</ol>
|
|
<p>In practice, any prefix that is bound to the appropriate URI may
|
|
be used.</p>
|
|
<p>The signature of accessor functions is shown using the same
|
|
style as <a href="#xpath-functions">[XQuery 1.0 and XPath 2.0
|
|
Functions and Operators (Second Edition)]</a>, described in
|
|
<a href="http://www.w3.org/TR/xpath-functions/#func-signatures">Section
|
|
1.4 Function Signatures and
|
|
Descriptions</a><sup><small>FO</small></sup>.</p>
|
|
<p>This document relies on the <a href="#xml-infoset">[Infoset]</a>
|
|
and <a href=
|
|
"http://www.w3.org/TR/xmlschema-1/#key-psvi">Post-Schema-Validation
|
|
Infoset</a> (PSVI). Information items and properties are indicated
|
|
by the styles <b class="info-item">information item</b> and
|
|
<b class="infoset-property">[infoset property]</b>,
|
|
respectively.</p>
|
|
<p>Some aspects of type assignment rely on the ability to access
|
|
properties of the schema components. Such properties are indicated
|
|
by the style {component property}. Note that this does not mean a
|
|
lightweight schema processor cannot be used, it only means that the
|
|
application must have some mechanism to access the necessary
|
|
properties.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="node-identity" name="node-identity"></a>2.3 Node
|
|
Identity</h3>
|
|
<p>Each node has a unique identity. Every <a title="Node" href=
|
|
"#dt-node">node</a> in an instance of the data model is unique:
|
|
identical to itself, and not identical to any other node.
|
|
(<a title="atomic value" href="#dt-atomic-value">Atomic values</a>
|
|
do not have identity; every instance of the value “5” as an integer
|
|
is identical to every other instance of the value “5” as an
|
|
integer.)</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>The concept of node identity should not be confused with the
|
|
concept of a unique ID, which is a unique name assigned to an
|
|
element by the author to represent references using ID/IDREF
|
|
correlation.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="document-order" name="document-order"></a>2.4 Document
|
|
Order</h3>
|
|
<p>[<a title="document order" id="dt-document-order" name=
|
|
"dt-document-order">Definition</a>: A <b>document order</b> is
|
|
defined among all the nodes accessible during a given query or
|
|
transformation. Document order is a total ordering, although the
|
|
relative order of some nodes is implementation-dependent.
|
|
Informally, document order is the order in which nodes appear in
|
|
the XML serialization of a document.] [<a title="stable" id=
|
|
"dt-stable" name="dt-stable">Definition</a>: Document order is
|
|
<b>stable</b>, which means that the relative order of two nodes
|
|
will not change during the processing of a given query or
|
|
transformation, even if this order is
|
|
implementation-dependent.]</p>
|
|
<p>Within a tree, document order satisfies the following
|
|
constraints:</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>The root node is the first node.</p>
|
|
</li>
|
|
<li>
|
|
<p>Every node occurs before all of its children and
|
|
descendants.</p>
|
|
</li>
|
|
<li>
|
|
<p>Namespace Nodes immediately follow the Element Node with which
|
|
they are associated. The relative order of Namespace Nodes is
|
|
stable but implementation-dependent.</p>
|
|
</li>
|
|
<li>
|
|
<p>Attribute Nodes immediately follow the Namespace Nodes of the
|
|
element with which they are associated. If there are no Namespace
|
|
Nodes associated with a given element, then the Attribute Nodes
|
|
associated with that element immediately follow the element. The
|
|
relative order of Attribute Nodes is stable but
|
|
implementation-dependent.</p>
|
|
</li>
|
|
<li>
|
|
<p>The relative order of siblings is the order in which they occur
|
|
in the <b class="dm-node-prop">children</b> property of their
|
|
parent node.</p>
|
|
</li>
|
|
<li>
|
|
<p>Children and descendants occur before following siblings.</p>
|
|
</li>
|
|
</ol>
|
|
<p>The relative order of nodes in distinct trees is stable but
|
|
implementation-dependent, subject to the following constraint: If
|
|
any node in a given tree, <code>T1</code>, occurs before any node
|
|
in a different tree, <code>T2</code>, then all nodes in
|
|
<code>T1</code> are before all nodes in <code>T2</code>.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="sequences" name="sequences"></a>2.5 Sequences</h3>
|
|
<p>An important characteristic of the data model is that there is
|
|
no distinction between an item (a node or an atomic value) and a
|
|
singleton sequence containing that item. An item is equivalent to a
|
|
singleton sequence containing that item and vice versa.</p>
|
|
<p>A sequence may contain nodes, atomic values, or any mixture of
|
|
nodes and atomic values. When a node is added to a sequence its
|
|
identity remains the same. Consequently a node may occur in more
|
|
than one sequence and a sequence may contain duplicate items.</p>
|
|
<p>Sequences never contain other sequences; if sequences are
|
|
combined, the result is always a “flattened” sequence. In other
|
|
words, appending “(d e)” to “(a b c)” produces a sequence of length
|
|
5: “(a b c d e)”. It <em>does not</em> produce a sequence of length
|
|
4: “(a b c (d e))”, such a nested sequence never occurs.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>Sequences replace node-sets from XPath 1.0. In XPath 1.0,
|
|
node-sets do not contain duplicates. In generalizing node-sets to
|
|
sequences in XPath 2.0, duplicate removal is provided by functions
|
|
on node sequences.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="types" name="types"></a>2.6 Types</h3>
|
|
<p>The data model supports strongly typed languages such as
|
|
<a href="#xpath20">[XML Path Language (XPath) 2.0 (Second
|
|
Edition)]</a> and <a href="#xquery">[XQuery]</a> that have a type
|
|
system based on <a href="#xmlschema-1">[Schema Part 1]</a>. The
|
|
type system is formally defined in <a href=
|
|
"#xquery-semantics">[XQuery 1.0 and XPath 2.0 Formal Semantics
|
|
(Second Edition)]</a>.</p>
|
|
<p>Every <a title="item" href="#dt-item">item</a> in the data model
|
|
has both a value and a type. In addition to nodes, the data model
|
|
can represent atomic values like the number 5 or the string “Hello
|
|
World.” For each of these atomic values, the data model contains
|
|
both the value of the item (such as 5 or “Hello World”) and its
|
|
type name (such as <code>xs:integer</code> or
|
|
<code>xs:string</code>).</p>
|
|
<div class="div3">
|
|
<h4><a id="types-representation" name=
|
|
"types-representation"></a>2.6.1 Representation of Types</h4>
|
|
<p>The data model uses <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded-QNames</a> to represent the names of
|
|
schema types, which include the built-in types defined by <a href=
|
|
"#xmlschema-2">[Schema Part 2]</a>, five additional types defined
|
|
by this specification, and may include other user- or
|
|
implementation-defined types.</p>
|
|
<p>For XML Schema types, the namespace name of the expanded-QName
|
|
is the {target namespace} property of the type definition, and its
|
|
local name is the {name} property of the type definition.</p>
|
|
<p>The data model relies on the fact that an expanded-QName
|
|
uniquely identifies every named type. Although it is possible for
|
|
different schemas to define different types with the same
|
|
expanded-QName, at most one of them can be used in any given
|
|
validation episode. The data model cannot support environments
|
|
where different types with the same expanded-QName are
|
|
available.</p>
|
|
<p>For anonymous types, the processor <strong>must</strong>
|
|
construct an <a title="anonymous type name" href=
|
|
"#dt-anonymous-type-name">anonymous type name</a> that is distinct
|
|
from the name of every named type and the name of every other
|
|
anonymous type. [<a title="anonymous type name" id=
|
|
"dt-anonymous-type-name" name=
|
|
"dt-anonymous-type-name">Definition</a>: An <b>anonymous type
|
|
name</b> is an implementation dependent, unique type name provided
|
|
by the processor for every anonymous type declared in the schemas
|
|
available.] Anonymous type names <strong>must</strong> be globally
|
|
unique across all anonymous types that are accessible to the
|
|
processor. In the formalism of this specification, the anonymous
|
|
type names are assumed to be <code>xs:QNames</code>, but in
|
|
practice implementations are not required to use
|
|
<code>xs:QNames</code> to represent the implementation-dependent
|
|
names of anonymous types.</p>
|
|
<p>The scope over which the names of anonymous types must be
|
|
meaningful and distinct is depends on the processing context. It is
|
|
the responsibility of the host language to define the size and
|
|
scope of the processing context.</p>
|
|
<p>The data model does not represent element or attribute
|
|
declaration schema components, but it supports various type-related
|
|
operations. The semantics of other operations, for example,
|
|
checking if a particular instance of an Element Node has a given
|
|
schema type is defined in <a href="#xquery-semantics">[XQuery 1.0
|
|
and XPath 2.0 Formal Semantics (Second Edition)]</a>.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="types-predefined" name="types-predefined"></a>2.6.2
|
|
Predefined Types</h4>
|
|
<p>In addition to the 19 types defined in <a href=
|
|
"http://www.w3.org/TR/xmlschema-2/#built-in-primitive-datatypes">Section
|
|
3.2 Primitive datatypes</a><sup><small>XS2</small></sup> of
|
|
<a href="#xmlschema-2">[Schema Part 2]</a>, the data model defines
|
|
five additional types: <code>xs:anyAtomicType</code>,
|
|
<code>xs:untyped</code>, <code>xs:untypedAtomic</code>,
|
|
<code>xs:dayTimeDuration</code>, and
|
|
<code>xs:yearMonthDuration</code>. These types are defined in the
|
|
XML Schema namespace with permission of the XML Schema Working
|
|
Group, which is expected to add them to some future version of XML
|
|
Schema.</p>
|
|
<dl>
|
|
<dt class="label"><code>xs:untyped</code></dt>
|
|
<dd>
|
|
<p>The datatype <b>xs:untyped</b> denotes the dynamic type of an
|
|
element node that has not been validated, or has been validated in
|
|
skip mode. No predefined types are derived from xs:untyped.</p>
|
|
</dd>
|
|
<dt class="label"><code>xs:untypedAtomic</code></dt>
|
|
<dd>
|
|
<p>The datatype <b>xs:untypedAtomic</b> denotes untyped atomic
|
|
data, such as text that has not been assigned a more specific type.
|
|
An attribute that has been validated in skip mode is represented in
|
|
the Data Model by an attribute node with the type
|
|
<code>xs:untypedAtomic</code>. No predefined types are derived from
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
<dt class="label"><code>xs:anyAtomicType</code></dt>
|
|
<dd>
|
|
<p>The datatype <b>xs:anyAtomicType</b> is an atomic type that
|
|
includes all atomic values (and no values that are not atomic). Its
|
|
base type is <code>xs:anySimpleType</code> from which all simple
|
|
types, including atomic, list, and union types are derived. All
|
|
primitive atomic types, such as <code>xs:decimal</code> and
|
|
<code>xs:string</code>, have <code>xs:anyAtomicType</code> as their
|
|
base type.</p>
|
|
</dd>
|
|
<dt class="label"><code>xs:dayTimeDuration</code></dt>
|
|
<dd>
|
|
<p>The type <code>xs:dayTimeDuration</code> is derived from
|
|
<code>xs:duration</code> by restricting its lexical representation
|
|
to contain only the days, hours, minutes and seconds components.
|
|
The value space of <code>xs:dayTimeDuration</code> is the set of
|
|
fractional second values. The components of
|
|
<code>xs:dayTimeDuration</code> correspond to the day, hour, minute
|
|
and second components defined in Section 5.5.3.2 of <a href=
|
|
"#ISO8601">[ISO 8601]</a>. An <code>xs:dayTimeDuration</code> is
|
|
derived from <code>xs:duration</code> as follows:</p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<xs:simpleType name='dayTimeDuration'>
|
|
<xs:restriction base='xs:duration'>
|
|
<xs:pattern value="[^YM]*[DT].*"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</pre></div>
|
|
</dd>
|
|
<dt class="label"><code>xs:yearMonthDuration</code></dt>
|
|
<dd>
|
|
<p>The type <code>xs:yearMonthDuration</code> is derived from
|
|
<code>xs:duration</code> by restricting its lexical representation
|
|
to contain only the year and month components. The value space of
|
|
<code>xs:yearMonthDuration</code> is the set of
|
|
<code>xs:integer</code> month values. The year and month components
|
|
of <code>xs:yearMonthDuration</code> correspond to the Gregorian
|
|
year and month components defined in section 5.5.3.2 of <a href=
|
|
"#ISO8601">[ISO 8601]</a>, respectively.</p>
|
|
<p>The type <code>xs:yearMonthDuration</code> is derived from
|
|
<code>xs:duration</code> as follows:</p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<xs:simpleType name='yearMonthDuration'>
|
|
<xs:restriction base='xs:duration'>
|
|
<xs:pattern value="[^DT]*"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</pre></div>
|
|
</dd>
|
|
</dl>
|
|
<p>A schema for these types is provided in <a href=
|
|
"#xdtschema"><b>C Schema for the Extended XS Namespace</b></a>.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="types-hierarchy" name="types-hierarchy"></a>2.6.3 Type
|
|
Hierarchy</h4>
|
|
<p>The diagram below shows how the nodes, <a title=
|
|
"primitive simple type" href="#dt-primitive-simple-type">primitive
|
|
simple types</a>, and user defined types fit together into a
|
|
hierarchy.</p>
|
|
<p>The <code>xs:IDREFS</code>, <code>xs:NMTOKENS</code>,
|
|
<code>xs:ENTITIES</code> and <code>user-defined list and union
|
|
types</code> are special types in that these types are lists or
|
|
unions rather than true subtypes.</p>
|
|
<img src="type-hierarchy.png" alt="Type hierarchy graphic" /></div>
|
|
<div class="div3">
|
|
<h4><a id="AtomicValue" name="AtomicValue"></a>2.6.4 Atomic
|
|
Values</h4>
|
|
<p>An atomic value can be constructed from a lexical
|
|
representation. Given a string and an atomic type, the atomic value
|
|
is constructed in such a way as to be <a href=
|
|
"#typed-string-relationships">consistent with schema
|
|
validation</a>. If the string does not represent a valid value of
|
|
the type, an error is raised. When <code>xs:untypedAtomic</code> is
|
|
specified as the type, no validation takes place. The details of
|
|
the construction are described in <a href=
|
|
"http://www.w3.org/TR/xpath-functions/#constructor-functions">Section
|
|
5 Constructor Functions</a><sup><small>FO</small></sup> and the
|
|
related <a href=
|
|
"http://www.w3.org/TR/xpath-functions/#casting">Section 17
|
|
Casting</a><sup><small>FO</small></sup> section of <a href=
|
|
"#xpath-functions">[XQuery 1.0 and XPath 2.0 Functions and
|
|
Operators (Second Edition)]</a>.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="StringValue" name="StringValue"></a>2.6.5 String
|
|
Values</h4>
|
|
<p>A string value can be constructed from an atomic value. Such a
|
|
value is constructed by converting the atomic value to its string
|
|
representation as described in <a href=
|
|
"http://www.w3.org/TR/xpath-functions/#casting">Section 17
|
|
Casting</a><sup><small>FO</small></sup>. Using the canonical
|
|
lexical representation for atomic values is not always compatible
|
|
with XPath 1.0. These and other backwards incompatibilities are
|
|
described in <a href=
|
|
"http://www.w3.org/TR/xpath20/#id-backwards-compatibility">Section
|
|
I Backwards Compatibility with XPath 1.0
|
|
(Non-Normative)</a><sup><small>XP</small></sup>.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="construction" name="construction"></a>3 Data Model
|
|
Construction</h2>
|
|
<p>This section describes the constraints on instances of the data
|
|
model.</p>
|
|
<p>The data model supports well-formed XML documents conforming to
|
|
<a href="#xml-names">[Namespaces in XML]</a> or <a href=
|
|
"#xml-names11">[Namespaces in XML 1.1]</a>. Documents that are not
|
|
well-formed are, by definition, not XML. XML documents that do not
|
|
conform to <a href="#xml-names">[Namespaces in XML]</a> or <a href=
|
|
"#xml-names11">[Namespaces in XML 1.1]</a> are not supported (nor
|
|
are they supported by <a href="#xml-infoset">[Infoset]</a>).</p>
|
|
<p>In other words, the data model supports the following classes of
|
|
XML documents:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Well-formed documents conforming to <a href=
|
|
"#xml-names">[Namespaces in XML]</a> or <a href=
|
|
"#xml-names11">[Namespaces in XML 1.1]</a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>DTD-valid documents conforming to <a href=
|
|
"#xml-names">[Namespaces in XML]</a> or <a href=
|
|
"#xml-names11">[Namespaces in XML 1.1]</a>, and</p>
|
|
</li>
|
|
<li>
|
|
<p>W3C XML Schema-validated documents.</p>
|
|
</li>
|
|
</ul>
|
|
<p>This document describes how to construct an instance of the data
|
|
model from an infoset (<a href="#xml-infoset">[Infoset]</a>) or a
|
|
Post Schema Validation Infoset (PSVI), the augmented infoset
|
|
produced by an XML Schema validation episode.</p>
|
|
<p>An instance of the data model can also be constructed directly
|
|
through application APIs, or from non-XML sources such as
|
|
relational tables in a database. Regardless of how an instance of
|
|
the data model is constructed, every node and atomic value in the
|
|
data model must have a typed-value that is consistent with its
|
|
type.</p>
|
|
<p>The data model supports some kinds of values that are not
|
|
supported by <a href="#xml-infoset">[Infoset]</a>. Examples of
|
|
these are <a title="fragment" href="#dt-fragment">document
|
|
fragments</a> and sequences of Document Nodes. The data model also
|
|
supports values that are not nodes. Examples of these are sequences
|
|
of <a title="atomic value" href="#dt-atomic-value">atomic
|
|
values</a>, or sequences mixing nodes and atomic values. These are
|
|
necessary to be able to represent the results of intermediate
|
|
expressions in the data model during expression processing.</p>
|
|
<div class="div2">
|
|
<h3><a id="const-other" name="const-other"></a>3.1 Direct
|
|
Construction</h3>
|
|
<p>Although this document describes construction of an instance of
|
|
the data model in terms of infoset properties, an infoset is not a
|
|
necessary precondition for building an instance of the data
|
|
model.</p>
|
|
<p>There are no constraints on how an instance of the data model
|
|
may be constructed directly, save that the resulting instance
|
|
<strong>must</strong> satisfy all of the constraints described in
|
|
this document.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="const-infoset" name="const-infoset"></a>3.2 Construction
|
|
from an Infoset</h3>
|
|
<p>An instance of the data model can be constructed from an infoset
|
|
that satisfies the following general constraints:</p>
|
|
<ul>
|
|
<li>
|
|
<p>All general and external parsed entities must be fully expanded.
|
|
The Infoset must not contain any <b class="info-item">unexpanded
|
|
entity reference information items</b>.</p>
|
|
</li>
|
|
<li>
|
|
<p>The infoset <strong>must</strong> provide all of the properties
|
|
identified as "required" in this document. The properties
|
|
identified as "optional" may be used, if they are present. All
|
|
other properties are ignored.</p>
|
|
</li>
|
|
</ul>
|
|
<p>An instance of the data model constructed from an information
|
|
set <strong>must</strong> be consistent with the description
|
|
provided for each node kind.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="const-psvi" name="const-psvi"></a>3.3 Construction from
|
|
a PSVI</h3>
|
|
<p>An instance of the data model can be constructed from a PSVI,
|
|
whose element and attribute information items have been strictly
|
|
assessed, laxly assessed, or have not been assessed. Constructing
|
|
an instance of the data model from a PSVI <strong>must</strong> be
|
|
consistent with the description provided in this section and with
|
|
the description provided for each node kind.</p>
|
|
<p>Data model construction requires that the PSVI provide unique
|
|
names for all anonymous schema types.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p><a href="#xmlschema-1">[Schema Part 1]</a> does not require all
|
|
schema processors to provide unique names for anonymous schema
|
|
types. In order to build an instance of the data model from a PSVI
|
|
produced by a processor that does not provide the names, some
|
|
post-processing will be required in order to assure that they are
|
|
all uniquely identified before construction begins.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
<p>[<a title="incompletely validated" id=
|
|
"dt-incompletely-validated" name=
|
|
"dt-incompletely-validated">Definition</a>: An <b>incompletely
|
|
validated</b> document is an XML document that has a corresponding
|
|
schema but whose schema-validity assessment has resulted in one or
|
|
more element or attribute information items being assigned values
|
|
other than 'valid' for the <b class=
|
|
"infoset-property">[validity]</b> property in the PSVI.]</p>
|
|
<p>The data model supports incompletely validated documents.
|
|
Elements and attributes that are not valid are treated as having
|
|
unknown types.</p>
|
|
<p>The most significant difference between Infoset construction and
|
|
PSVI construction occurs in the area of schema type assignment.
|
|
Other differences can also arise from schema processing: default
|
|
attribute and element values may be provided, white space
|
|
normalization of element content may occur, and the user-supplied
|
|
lexical form of elements and attributes with atomic schema types
|
|
may be lost.</p>
|
|
<div class="div3">
|
|
<h4><a id="PSVI2Types" name="PSVI2Types"></a>3.3.1 Mapping PSVI
|
|
Additions to Node Properties</h4>
|
|
<p>A PSVI element or attribute information item may have a
|
|
<b class="infoset-property">[validity]</b> property. The <b class=
|
|
"infoset-property">[validity]</b> property may be "<em>valid</em>",
|
|
"<em>invalid</em>", or "<em>notKnown</em>" and reflects the outcome
|
|
of schema-validity assessment. In the data model, precise schema
|
|
type information is exposed for Element and Attribute Nodes that
|
|
are "<em>valid</em>". Nodes that are not "<em>valid</em>" are
|
|
treated as if they were simply well-formed XML and only very
|
|
general schema type information is associated with them.</p>
|
|
<div class="div4">
|
|
<h5><a id="PSVI2NodeTypes" name="PSVI2NodeTypes"></a>3.3.1.1
|
|
Element and Attribute Node Type Names</h5>
|
|
<p>The precise definition of the schema type of an element or
|
|
attribute information item depends on the properties of the PSVI.
|
|
In the PSVI, <a href="#xmlschema-1">[Schema Part 1]</a> defines a
|
|
<b class="infoset-property">[type definition]</b> property as well
|
|
as the <b class="infoset-property">[type definition namespace]</b>,
|
|
<b class="infoset-property">[type definition name]</b> and
|
|
<b class="infoset-property">[type definition anonymous]</b>
|
|
properties, which are effectively short-cut terms for properties of
|
|
the type definition. Further, the <b class=
|
|
"infoset-property">[element declaration]</b> and <b class=
|
|
"infoset-property">[attribute declaration]</b> properties are
|
|
defined for elements and attributes, respectively. These
|
|
declarations in turn will identify the <b class=
|
|
"infoset-property">[type definition]</b> declared for the element
|
|
or attribute. To distinguish the <b class="infoset-property">[type
|
|
definition]</b> given in the PSVI for the element or attribute
|
|
instance from the <b class="infoset-property">[type definition]</b>
|
|
associated with the declaration, the former is referred to below as
|
|
the actual type and the latter as the declared type of the element
|
|
or attribute instance in question.</p>
|
|
<p>The type depends on the declared type, the actual type, and the
|
|
<b class="infoset-property">[validity]</b> and <b class=
|
|
"infoset-property">[validation attempted]</b> properties in the
|
|
PSVI. If:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The <b class="infoset-property">[validity]</b> and <b class=
|
|
"infoset-property">[validation attempted]</b> properties exist and
|
|
have the values "<em>valid</em>" and "<em>full</em>", respectively,
|
|
the schema type of an element or attribute information item is
|
|
represented by an <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded-QName</a> whose namespace and local
|
|
name correspond to the first applicable items in the following
|
|
list:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the declared type exists and is a union and the actual type
|
|
is (not the same as the declared type, and not a type derived from
|
|
the declared type, but) one of the member types of the union, or
|
|
derived from one of its member types:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the {name} property of the declared type is present: the
|
|
{target namespace} and {name} properties of the declared type.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the {name} property of the declared type is absent: the
|
|
namespace and local name of the anonymous type name supplied for
|
|
the declared type.</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>If there is no declared type, and the actual type is a union,
|
|
then:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the {name} property of the actual type is present: the
|
|
{target namespace} and {name} properties of the actual type.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the {name} property of the actual type is absent: the
|
|
namespace and local name of the anonymous type name supplied for
|
|
the actual type.</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If <b class="infoset-property">[type definition anonymous]</b>
|
|
is false: the {target namespace} and {name} properties of the
|
|
actual type.</p>
|
|
</li>
|
|
<li>
|
|
<p>If <b class="infoset-property">[type definition anonymous]</b>
|
|
is true: the namespace and local name of the anonymous type name
|
|
supplied for the actual type.</p>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<p>The <b class="infoset-property">[validity]</b> property exists
|
|
and is "<em>invalid</em>", or the <b class=
|
|
"infoset-property">[validation attempted]</b> property exists and
|
|
is "<em>partial</em>", the schema type of an element is
|
|
<code>xs:anyType</code> and the type of an attribute is
|
|
<code>xs:anySimpleType</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>The <b class="infoset-property">[validity]</b> property exists
|
|
and is "<em>notKnown</em>", and the <b class=
|
|
"infoset-property">[validation attempted]</b> property exists and
|
|
is "<em>none</em>", the schema type of an element is
|
|
<code>xs:untyped</code> and the type of an attribute is
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>The <b class="infoset-property">[validity]</b> or <b class=
|
|
"infoset-property">[validation attempted]</b> properties do not
|
|
exist, the schema type of an element is <code>xs:untyped</code> and
|
|
the type of an attribute is <code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The prefix associated with the type names is
|
|
implementation-dependent.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a id="TypedValueDetermination" name=
|
|
"TypedValueDetermination"></a>3.3.1.2 Typed Value
|
|
Determination</h5>
|
|
<p>This section describes how the typed value of an Element or
|
|
Attribute Node is computed from an element or attribute PSVI
|
|
information item, where the information item has either a simple
|
|
type or a complex type with simple content. For other kinds of
|
|
Element Nodes, see <a href="#const-psvi-element"><b>6.2.4
|
|
Construction from a PSVI</b></a>; for other kinds of Attribute
|
|
Nodes, see <a href="#const-psvi-attribute"><b>6.3.4 Construction
|
|
from a PSVI</b></a>.</p>
|
|
<p>The typed value of Attribute Nodes and some Element Nodes is a
|
|
sequence of atomic values. The types of the items in the typed
|
|
value of a node may differ from the type of the node itself. This
|
|
section describes how the typed value of a node is derived from the
|
|
properties of an information item in a PSVI.</p>
|
|
<p>The types of the items in the typed value of a node are
|
|
determined as follows. The process begins with a type,
|
|
<code>T</code>. If the schema type of the node itself, as
|
|
represented in the PSVI, is a complex type with simple content,
|
|
then <code>T</code> is the {content type} of the schema type of the
|
|
node; otherwise, <code>T</code> is the schema type of the node
|
|
itself. For each primitive or ordinary simple type <code>T</code>,
|
|
the W3C XML Schema specification defines a function <code>M</code>
|
|
mapping the lexical representation of a value onto the value
|
|
itself.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>For atomic and list types, the mapping is the “lexical mapping”
|
|
defined for <code>T</code> in <a href="#xmlschema-2">[Schema Part
|
|
2]</a>; for union types, the mapping is the lexical mapping defined
|
|
in <a href="#xmlschema-2">[Schema Part 2]</a> modified as
|
|
appropriate by any applicable rules in <a href=
|
|
"#xmlschema-1">[Schema Part 1]</a>. The mapping, so modified, is a
|
|
function (in the mathematical sense) which maps to a single value
|
|
even in cases where the lexical mapping proper maps to multiple
|
|
values.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
<p>The typed value is determined as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the <b class="dm-node-prop">nilled</b> property of the node
|
|
in question is <code>true</code>, then the typed value is the empty
|
|
sequence.</p>
|
|
</li>
|
|
<li>
|
|
<p>If <code>T</code> is <code>xs:anySimpleType</code> or
|
|
<code>xs:anyAtomicType</code>, the typed value is the <b class=
|
|
"infoset-property">[schema normalized value]</b> as an instance of
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise, the typed value is the result of applying
|
|
<code>M</code> to the string value as an instance of the
|
|
appropriate value type, where the appropriate value type is the
|
|
<b class="infoset-property">[member type definition]</b> if
|
|
<code>T</code> is a union type, otherwise it is simply
|
|
<code>T</code>.</p>
|
|
</li>
|
|
</ul>
|
|
<p>The typed value determination process is guaranteed to result in
|
|
a sequence of atomic values, each having a well-defined atomic
|
|
type. This sequence of atomic values, in turn, determines the
|
|
typed-value property of the node in the data model.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a id="typed-string-relationships" name=
|
|
"typed-string-relationships"></a>3.3.1.3 Relationship Between
|
|
Typed-Value and String-Value</h5>
|
|
<p>Element and attribute nodes have both typed-value and
|
|
string-value properties. However, implementations are allowed some
|
|
flexibility in how these properties are stored. An implementation
|
|
may choose to store the string-value only and derive the
|
|
typed-value from it, or to store the typed-value only and derive
|
|
the string-value from it, or to store both the string-value and the
|
|
typed-value.</p>
|
|
<p>In order to permit these various implementation strategies, some
|
|
variations in the string value of a node are defined as
|
|
insignificant. Implementations that store only the typed value of a
|
|
node are permitted to return a string value that is different from
|
|
the original lexical form of the node content. For example,
|
|
consider the following element:</p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<offset xsi:type="xs:integer">0030</offset>
|
|
</pre></div>
|
|
<p>Assuming that the node is valid, it has a typed value of 30 as
|
|
an <code>xs:integer</code>. An implementation may return either
|
|
"30" or "0030" as the string value of the node. Any string that is
|
|
a valid lexical representation of the typed value is acceptable. In
|
|
this specification, we express this rule by saying that the
|
|
relationship between the string value of a node and its typed value
|
|
must be "consistent with schema validation."</p>
|
|
<p>If an implementation stores only the string-value of a node, the
|
|
following considerations apply:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Where union types occur, the implementation must be able to
|
|
deliver the typed-value as an instance of the appropriate member
|
|
type. For example, if the type an element node is
|
|
my:integer-or-string, which is defined as a union of xs:integer and
|
|
xs:string, and the string-value of the node is "47", the
|
|
implementation must be able to deliver the typed-value of the node
|
|
as either the integer 47 or the string "47", depending on which
|
|
member type validated the element.</p>
|
|
</li>
|
|
<li>
|
|
<p>Where types of <code>xs:QName</code>, <code>xs:NOTATION</code>,
|
|
or types derived from one of these types occur, the implementation
|
|
must be able to deliver the typed-value as a triple including a
|
|
local name, a namespace prefix, and a namespace URI, even though
|
|
the namespace URI is not part of the string-value (see <a href=
|
|
"#qnames-and-notations"><b>3.3.3 QNames and NOTATIONS</b></a>).</p>
|
|
</li>
|
|
<li>
|
|
<p>Where an element with a complex type and element-only content
|
|
occurs, it is an error to attempt to access the typed-value of the
|
|
Element Node.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If an implementation stores only the typed-value of a node, it
|
|
must be prepared to construct string values from not only the node,
|
|
but in some cases also the descendants of that node. For example,
|
|
an element with a complex type and element-only content has no
|
|
typed-value but does have a string-value that is the concatenation
|
|
of the string-values of all its Text Node descendants in document
|
|
order.</p>
|
|
</div>
|
|
<div class="div4">
|
|
<h5><a id="pattern-facets" name="pattern-facets"></a>3.3.1.4
|
|
Pattern Facets</h5>
|
|
<p>Creating a subtype by restriction generally reduces the
|
|
<em>value</em> space of the original schema type. For example,
|
|
expressing a hat size as a restriction of decimal with a minimum
|
|
value of 6.5 and maximum value of 8.0 creates a schema type whose
|
|
legal values are only those in the range 6.5 to 8.0.</p>
|
|
<p>The pattern facet is different because it restricts the
|
|
<em>lexical</em> space of the schema type, not its value space.
|
|
Expressing a three-digit number as a restriction of integer with
|
|
the pattern facet “[0-9]{3}” creates a schema type whose legal
|
|
values are only those with a lexical form consisting of three
|
|
digits.</p>
|
|
<p>The pattern facet is not reversible in practice. A given point
|
|
in the value space might have several lexical representations. In
|
|
general, there's no practical way to determine which, if any, of
|
|
these representations satisfies the pattern facet of the type.</p>
|
|
<p>As a consequence, pattern facets are not respected when mapping
|
|
to an Infoset or during serialization and values in the data model
|
|
that were originally valid with respect to a schema that contains
|
|
pattern-based restrictions may be invalid after serialization.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="dates-and-times" name="dates-and-times"></a>3.3.2 Dates
|
|
and Times</h4>
|
|
<p>The date and time types require special attention. This section
|
|
applies to implementations that store the typed value of
|
|
<code>xs:dateTime</code>, <code>xs:date</code>,
|
|
<code>xs:time</code>, <code>xs:gYearMonth</code>,
|
|
<code>xs:gYear</code>, <code>xs:gMonthDay</code>,
|
|
<code>xs:gMonth</code>, <code>xs:gDay</code>, and types that are
|
|
derived from them. These are known collectively as the date/time
|
|
types in this specification.</p>
|
|
<p>The values of the date/time types are represented in the data
|
|
model using seven components:</p>
|
|
<dl>
|
|
<dt class="label">year</dt>
|
|
<dd>
|
|
<p>An <code>xs:integer</code>.</p>
|
|
</dd>
|
|
<dt class="label">month</dt>
|
|
<dd>
|
|
<p>An <code>xs:integer</code> between 1 and 12, inclusive.</p>
|
|
</dd>
|
|
<dt class="label">day</dt>
|
|
<dd>
|
|
<p>An <code>xs:integer</code> between 1 and 31, inclusive, possibly
|
|
restricted further depending on the values of month and year.</p>
|
|
</dd>
|
|
<dt class="label">hour</dt>
|
|
<dd>
|
|
<p>An <code>xs:integer</code> between 0 and 23, inclusive.</p>
|
|
</dd>
|
|
<dt class="label">minute</dt>
|
|
<dd>
|
|
<p>An <code>xs:integer</code> between 0 and 59, inclusive.</p>
|
|
</dd>
|
|
<dt class="label">second</dt>
|
|
<dd>
|
|
<p>An <code>xs:decimal</code> greater than or equal to zero and
|
|
less than 60. Leap seconds are not supported.</p>
|
|
</dd>
|
|
<dt class="label">timezone</dt>
|
|
<dd>
|
|
<p>An <code>xs:dayTimeDuration</code> between -PT14H00M and
|
|
PT14H00M, inclusive. All timezone values must be an integral number
|
|
of minutes.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>Components that are intrinsic to the datatype (for example, day,
|
|
month, and year in a <code>xs:date</code>) are required; components
|
|
that can never be part of a datatype (for example, years in a
|
|
<code>xs:time</code>) must be missing. Missing components are
|
|
represented by the empty sequence. When a component is present, it
|
|
contains the “local value” that has not been normalized in any way.
|
|
The timezone component is optional for all the date/time
|
|
datatypes.</p>
|
|
<p>Thus, the lexical <code>xs:dateTime</code> representation
|
|
“<code>2003-01-02T11:30:00-05:00</code>” is stored as
|
|
“<code>{2003, 1, 2, 11, 30, 0.0, -PT05H00M}</code>”.
|
|
The value of the lexical representation
|
|
“<code>2003-01-16T16:30:00</code>” is stored as
|
|
“<code>{2003, 1, 16, 16, 30, 0, ()}</code>”
|
|
because it has no timezone. The value of the lexical
|
|
<code>xs:gDay</code> representation “<code>---30+10:30</code>” is
|
|
stored as
|
|
“<code>{(), (), 30, (), (), (), PT10H30M}</code>”.</p>
|
|
<p>The lexical form “<code>24:00:00</code>” is normalized in the
|
|
component model. As a <code>xs:time</code>, it is stored as
|
|
“<code>{(), (), (), 0, 0, 0.0, ()}</code>”
|
|
and the <code>xs:dateTime</code> representation
|
|
“<code>1999-12-31T24:00:00</code>” is stored as
|
|
“<code>{2000, 1, 1, 0, 0, 0.0, ()}</code>”.</p>
|
|
<p>Note: Implementations are permitted to store date/time values in
|
|
any representation that's convenient for them, provided that the
|
|
individual properties can be accessed and modified.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="qnames-and-notations" name=
|
|
"qnames-and-notations"></a>3.3.3 QNames and NOTATIONS</h4>
|
|
<p>The <code>QName</code> and <code>NOTATION</code> data types
|
|
require special attention. The following sections apply to
|
|
<code>xs:QName</code>, <code>xs:NOTATION</code>, and types derived
|
|
from them. These types are referred to collectively as “qualified
|
|
names”.</p>
|
|
<p>As defined in XML Schema, the lexical space for qualified names
|
|
includes a local name and an optional namespace prefix. The value
|
|
space for qualified names contains a local name and an optional
|
|
namespace URI. Therefore, it is not possible to derive a lexical
|
|
value from the typed value, or vice versa, without access to some
|
|
context that defines the namespace bindings.</p>
|
|
<p>When qualified names exist as values of nodes in a well-formed
|
|
document, it is always possible to determine such a namespace
|
|
context. However, the data model also allows qualified names to
|
|
exist as freestanding atomic values, or as the name or value of a
|
|
parentless attribute node, and in these cases no namespace context
|
|
is available.</p>
|
|
<p>In this Data Model, therefore, the value space for qualified
|
|
names contains a local-name, an optional namespace URI, and an
|
|
optional prefix. The prefix is used only when producing a lexical
|
|
representation of the value, that is, when casting the value to a
|
|
string. The prefix plays no part in other operations involving
|
|
qualified names: in particular, two qualified names are equal if
|
|
their local names and namespace URIs match, regardless whether they
|
|
have the same prefix.</p>
|
|
<p>The following consistency constraints apply:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the namespace URI of a qualified name is absent, then the
|
|
prefix must also be absent.</p>
|
|
</li>
|
|
<li>
|
|
<p>For every element node whose name has a prefix, the prefix must
|
|
be one that has a binding to the namespace URI of the element name
|
|
in the namespaces property of the element.</p>
|
|
</li>
|
|
<li>
|
|
<p>For every element node whose name has no prefix, the element
|
|
must have a a binding for the empty prefix to the namespace URI of
|
|
the element name, or must have no binding for the empty prefix in
|
|
the case where the name of the element has no namespace URI.</p>
|
|
</li>
|
|
<li>
|
|
<p>For every attribute node whose name has a prefix, the attribute
|
|
node must either be parentless, or the prefix must be one that has
|
|
a binding to the namespace URI of the attribute name in the
|
|
namespaces property of the parent element.</p>
|
|
</li>
|
|
<li>
|
|
<p>For every qualified name that contains a prefix and that is
|
|
included in the typed value of an element node, or of an attribute
|
|
node that has an element node as its parent, the prefix must be one
|
|
that is bound to the namespace URI of the qualified name in the
|
|
namespaces property of that element.</p>
|
|
</li>
|
|
<li>
|
|
<p>For every qualified name that contains a namespace URI and no
|
|
prefix, and that is included in the typed value of an element node,
|
|
or of an attribute node that has an element node as its parent,
|
|
that element node must have a binding for the empty prefix to that
|
|
namespace URI in its namespace property.</p>
|
|
</li>
|
|
<li>
|
|
<p>For every qualified name that contains neither a namespace URI
|
|
nor a prefix, and that is included in the typed value of an element
|
|
node, or of an attribute node that has an element node as its
|
|
parent, that node must not have a binding for the empty prefix.</p>
|
|
</li>
|
|
<li>
|
|
<p>No qualified name that contains a prefix may be included in the
|
|
typed value of an attribute node that has no parent.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="infoset-mapping" name="infoset-mapping"></a>4 Infoset
|
|
Mapping</h2>
|
|
<p>This specification describes how to map each kind of node to the
|
|
corresponding information item. This mapping produces an Infoset;
|
|
it does not and cannot produce a PSVI. Validation must be used to
|
|
obtain a PSVI for a (portion of a) data model instance.</p>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="accessors" name="accessors"></a>5 Accessors</h2>
|
|
<p>A set of accessors is defined on <a href="#Node">nodes</a> in
|
|
the data model. For consistency, all the accessors are defined on
|
|
every kind of node, although several accessors return a constant
|
|
empty sequence on some kinds of nodes.</p>
|
|
<p>In order for processors to be able to operate on instances of
|
|
the data model, the model must expose the properties of the items
|
|
it contains. The data model does this by defining a family of
|
|
accessor functions. These are not functions in the literal sense;
|
|
they are not available for users or applications to call directly.
|
|
Rather they are descriptions of the information that an
|
|
implementation of the data model must expose to applications.
|
|
Functions and operators available to end-users are described in
|
|
<a href="#xpath-functions">[XQuery 1.0 and XPath 2.0 Functions and
|
|
Operators (Second Edition)]</a>.</p>
|
|
<p>Some typed values in the data model are <a title="undefined"
|
|
href="#dt-undefined">undefined</a>. Attempting to access an
|
|
undefined property is always an error. Behavior in these cases is
|
|
implementation-defined and the host language is responsible for
|
|
determining the result.</p>
|
|
<div class="div2">
|
|
<h3><a id="dm-attributes" name="dm-attributes"></a>5.1
|
|
<code>attributes</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>attributes</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">attribute()*</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span> accessor returns the
|
|
attributes of a node as a sequence containing zero or more
|
|
Attribute Nodes. The order of Attribute Nodes is stable but
|
|
implementation dependent.</p>
|
|
<p>It is defined on <a href="#acc-summ-attributes">all seven</a>
|
|
node kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-base-uri" name="dm-base-uri"></a>5.2
|
|
<code>base-uri</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>base-uri</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">xs:anyURI?</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span> accessor returns the base
|
|
URI of a node as a sequence containing zero or one URI reference.
|
|
For more information about base URIs, see <a href="#xmlbase">[XML
|
|
Base]</a>.</p>
|
|
<p>It is defined on <a href="#acc-summ-base-uri">all seven</a> node
|
|
kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-children" name="dm-children"></a>5.3
|
|
<code>children</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>children</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">node()*</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span> accessor returns the
|
|
children of a node as a sequence containing zero or more nodes.</p>
|
|
<p>It is defined on <a href="#acc-summ-children">all seven</a> node
|
|
kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-document-uri" name="dm-document-uri"></a>5.4
|
|
<code>document-uri</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>document-uri</code>(<code class=
|
|
"arg">$node</code><code class=
|
|
"as"> as </code><code class="type">node()</code>)<code class="as"> as </code><code class="return-type">xs:anyURI?</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-document-uri"><span class=
|
|
"prefix">dm:</span>document-uri</a></span> accessor returns the
|
|
absolute URI of the resource from which the Document Node was
|
|
constructed, if the absolute URI is available. If there is no URI
|
|
available, or if it cannot be made absolute when the Document Node
|
|
is constructed, or if it is used on a node other than a Document
|
|
Node, the empty sequence is returned.</p>
|
|
<p>It is defined on <a href="#acc-summ-document-uri">all seven</a>
|
|
node kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-is-id" name="dm-is-id"></a>5.5 <code>is-id</code>
|
|
Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>is-id</code>(<code class=
|
|
"arg">$node</code><code class=
|
|
"as"> as </code><code class="type">node()</code>)<code class="as"> as </code><code class="return-type">xs:boolean?</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-is-id"><span class=
|
|
"prefix">dm:</span>is-id</a></span> accessor returns true if the
|
|
node is an XML ID. Exactly what constitutes an ID depends in part
|
|
on how the data model was constructed, see <a href=
|
|
"#ElementNode"><b>6.2 Element Nodes</b></a> and <a href=
|
|
"#AttributeNode"><b>6.3 Attribute Nodes</b></a>.</p>
|
|
<p>It is defined on <a href="#acc-summ-is-id">all seven</a> node
|
|
kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-is-idrefs" name="dm-is-idrefs"></a>5.6
|
|
<code>is-idrefs</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>is-idrefs</code>(<code class=
|
|
"arg">$node</code><code class=
|
|
"as"> as </code><code class="type">node()</code>)<code class="as"> as </code><code class="return-type">xs:boolean?</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-is-idrefs"><span class=
|
|
"prefix">dm:</span>is-idrefs</a></span> accessor returns true if
|
|
the node is an XML IDREF or IDREFS. Exactly what constitutes an
|
|
IDREF or IDREFS depends in part on how the data model was
|
|
constructed, see <a href="#ElementNode"><b>6.2 Element
|
|
Nodes</b></a> and <a href="#AttributeNode"><b>6.3 Attribute
|
|
Nodes</b></a>.</p>
|
|
<p>It is defined on <a href="#acc-summ-is-idrefs">all seven</a>
|
|
node kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-namespace-bindings" name=
|
|
"dm-namespace-bindings"></a>5.7 <code>namespace-bindings</code>
|
|
Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>namespace-bindings</code>(<code class=
|
|
"arg">$node</code><code class=
|
|
"as"> as </code><code class="type">node()</code>)<code class="as"> as </code><code class="return-type">xs:string*</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span> accessor returns
|
|
the dynamic, in-scope namespaces associated with a node as a set of
|
|
prefix/URI pairs, using an implementation-dependent
|
|
representation.</p>
|
|
<p>The prefix for the default namespace is the zero length
|
|
string.</p>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span> accessor is
|
|
defined on <a href="#acc-summ-namespace-bindings">all seven</a>
|
|
node kinds.</p>
|
|
<p>Note: this accessor and the <code>namespace-nodes</code>
|
|
accessor provide two views of the same information.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-namespace-nodes" name="dm-namespace-nodes"></a>5.8
|
|
<code>namespace-nodes</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>namespace-nodes</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">node()*</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-namespace-nodes"><span class=
|
|
"prefix">dm:</span>namespace-nodes</a></span> accessor returns the
|
|
dynamic, in-scope namespaces associated with a node as a sequence
|
|
containing zero or more Namespace Nodes. The order of Namespace
|
|
Nodes is stable but implementation dependent.</p>
|
|
<p>It is defined on <a href="#acc-summ-namespace-nodes">all
|
|
seven</a> node kinds.</p>
|
|
<p>Note: this accessor and the <code>namespace-bindings</code>
|
|
accessor provide two views of the same information. Implementations
|
|
that do not need to expose Namespace Nodes might choose not to
|
|
implement this accessor.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-nilled" name="dm-nilled"></a>5.9 <code>nilled</code>
|
|
Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>nilled</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">xs:boolean?</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-nilled"><span class=
|
|
"prefix">dm:</span>nilled</a></span> accessor returns true if the
|
|
node is "nilled". <a href="#xmlschema-1">[Schema Part 1]</a>
|
|
introduced the nilled mechanism to signal that an element should be
|
|
accepted as valid when it has no content even when it has a content
|
|
type which does not require or even necessarily allow empty
|
|
content.</p>
|
|
<p>It is defined on <a href="#acc-summ-nilled">all seven</a> node
|
|
kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-node-kind" name="dm-node-kind"></a>5.10
|
|
<code>node-kind</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>node-kind</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">xs:string</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-node-kind"><span class=
|
|
"prefix">dm:</span>node-kind</a></span> accessor returns a string
|
|
identifying the kind of node. It will be one of the following,
|
|
depending on the kind of node: “attribute”, “comment”, “document”,
|
|
“element”, “namespace” “processing-instruction”, or “text”.</p>
|
|
<p>It is defined on <a href="#acc-summ-node-kind">all seven</a>
|
|
node kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-node-name" name="dm-node-name"></a>5.11
|
|
<code>node-name</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>node-name</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">xs:QName?</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span> accessor returns the name
|
|
of the node as a sequence of zero or one <code>xs:QName</code>s.
|
|
Note that the QName value includes an optional prefix as described
|
|
in <a href="#qnames-and-notations"><b>3.3.3 QNames and
|
|
NOTATIONS</b></a>.</p>
|
|
<p>It is defined on <a href="#acc-summ-node-name">all seven</a>
|
|
node kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-parent" name="dm-parent"></a>5.12 <code>parent</code>
|
|
Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>parent</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">node()?</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-parent"><span class=
|
|
"prefix">dm:</span>parent</a></span> accessor returns the parent of
|
|
a node as a sequence containing zero or one nodes.</p>
|
|
<p>It is defined on <a href="#acc-summ-parent">all seven</a> node
|
|
kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-string-value" name="dm-string-value"></a>5.13
|
|
<code>string-value</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>string-value</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">xs:string</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> accessor returns the
|
|
string value of a node.</p>
|
|
<p>It is defined on <a href="#acc-summ-string-value">all seven</a>
|
|
node kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-type-name" name="dm-type-name"></a>5.14
|
|
<code>type-name</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>type-name</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">xs:QName?</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href="#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span> accessor returns the name
|
|
of the schema type of a node as a sequence of zero or one
|
|
<code>xs:QName</code>s.</p>
|
|
<p>It is defined on <a href="#acc-summ-type-name">all seven</a>
|
|
node kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-typed-value" name="dm-typed-value"></a>5.15
|
|
<code>typed-value</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto"><code class="function"><span class=
|
|
"prefix">dm:</span>typed-value</code>(<code class=
|
|
"arg">$n</code><code class="as"> as </code><code class=
|
|
"type">node()</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">xs:anyAtomicType*</code></div>
|
|
</div>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-typed-value"><span class="prefix">dm:</span>typed-value</a></span>
|
|
accessor returns the typed-value of the node as a sequence of zero
|
|
or more atomic values.</p>
|
|
<p>It is defined on <a href="#acc-summ-typed-value">all seven</a>
|
|
node kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-unparsed-entity-public-id" name=
|
|
"dm-unparsed-entity-public-id"></a>5.16
|
|
<code>unparsed-entity-public-id</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto">
|
|
<table summary="Function prototype" cellspacing="0" cellpadding="0"
|
|
border="0">
|
|
<tr>
|
|
<td valign="baseline" rowspan="2"><code class=
|
|
"function"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</code>(</td>
|
|
<td valign="baseline"><code class="arg">$node</code></td>
|
|
<td valign="baseline"><code class=
|
|
"as"> as </code><code class="type">node()</code>,</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="baseline"><code class="arg">$entityname</code></td>
|
|
<td valign="baseline"><code class=
|
|
"as"> as </code><code class=
|
|
"type">xs:string</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">xs:string?</code></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span> accessor
|
|
returns the public identifier of an unparsed external entity
|
|
declared in the specified document. If no entity with the name
|
|
specified in <code>$entityname</code> exists, or if the entity is
|
|
not an external unparsed entity, or if the entity has no public
|
|
identifier, the empty sequence is returned.</p>
|
|
<p>It is defined on <a href=
|
|
"#acc-summ-unparsed-entity-public-id">all seven</a> node kinds.</p>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="dm-unparsed-entity-system-id" name=
|
|
"dm-unparsed-entity-system-id"></a>5.17
|
|
<code>unparsed-entity-system-id</code> Accessor</h3>
|
|
<div class="exampleInner">
|
|
<div class="proto">
|
|
<table summary="Function prototype" cellspacing="0" cellpadding="0"
|
|
border="0">
|
|
<tr>
|
|
<td valign="baseline" rowspan="2"><code class=
|
|
"function"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</code>(</td>
|
|
<td valign="baseline"><code class="arg">$node</code></td>
|
|
<td valign="baseline"><code class=
|
|
"as"> as </code><code class="type">node()</code>,</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="baseline"><code class="arg">$entityname</code></td>
|
|
<td valign="baseline"><code class=
|
|
"as"> as </code><code class=
|
|
"type">xs:string</code>)<code class=
|
|
"as"> as </code><code class=
|
|
"return-type">xs:anyURI?</code></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span> accessor
|
|
returns the system identifier of an unparsed external entity
|
|
declared in the specified document. The value is an absolute URI,
|
|
and is obtained by resolving the <b class=
|
|
"infoset-property">[system identifier]</b> of the unparsed entity
|
|
information item against the <b class=
|
|
"infoset-property">[declaration base URI]</b> of the same item. If
|
|
no entity with the name specified in <code>$entityname</code>
|
|
exists, or if the entity is not an external unparsed entity, the
|
|
empty sequence is returned.</p>
|
|
<p>It is defined on <a href=
|
|
"#acc-summ-unparsed-entity-system-id">all seven</a> node kinds.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="Node" name="Node"></a>6 Nodes</h2>
|
|
<p>[<a title="Node" id="dt-node" name="dt-node">Definition</a>:
|
|
There are seven kinds of <b>Nodes</b> in the data model: <a href=
|
|
"#DocumentNode">document</a>, <a href="#ElementNode">element</a>,
|
|
<a href="#AttributeNode">attribute</a>, <a href=
|
|
"#TextNode">text</a>, <a href="#NamespaceNode">namespace</a>,
|
|
<a href="#ProcessingInstructionNode">processing instruction</a>,
|
|
and <a href="#CommentNode">comment</a>.] Each kind of node is
|
|
described in the following sections.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>A host language based on the Data Model may specify that its
|
|
usage of the Data Model does not include namespace nodes. Namespace
|
|
nodes are used only in the "namespaces" property of an element
|
|
node, which records the bindings of namespace prefixes to namespace
|
|
URIs. These bindings may be represented either by means of
|
|
namespace nodes or by using an alternative,
|
|
implementation-dependent representation.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
<p id="constraints-general">All nodes <strong>must</strong> satisfy
|
|
the following general constraints:</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>Every node <strong>must</strong> have a unique identity,
|
|
distinct from all other nodes.</p>
|
|
</li>
|
|
<li>
|
|
<p>The <b class="dm-node-prop">children</b> property of a node
|
|
<strong>must not</strong> contain two consecutive Text Nodes.</p>
|
|
</li>
|
|
<li>
|
|
<p>The <b class="dm-node-prop">children</b> property of a node
|
|
<strong>must not</strong> contain any empty Text Nodes.</p>
|
|
</li>
|
|
<li>
|
|
<p>The <b class="dm-node-prop">children</b> and <b class=
|
|
"dm-node-prop">attributes</b> properties of a node <strong>must
|
|
not</strong> contain two nodes with the same identity.</p>
|
|
</li>
|
|
</ol>
|
|
<div class="div2">
|
|
<h3><a id="DocumentNode" name="DocumentNode"></a>6.1 Document
|
|
Nodes</h3>
|
|
<div class="div3">
|
|
<h4><a id="DocumentNodeOverview" name=
|
|
"DocumentNodeOverview"></a>6.1.1 Overview</h4>
|
|
<p>Document Nodes encapsulate XML documents. Documents have the
|
|
following properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p><b class="dm-node-prop">base-uri</b>, possibly empty.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">children</b>, possibly empty.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">unparsed-entities</b>, possibly
|
|
empty.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">document-uri</b>, possibly empty.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">string-value</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">typed-value</b></p>
|
|
</li>
|
|
</ul>
|
|
<p id="constraints-document">Document Nodes <strong>must</strong>
|
|
satisfy the following constraints.</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>The <b class="dm-node-prop">children</b> <strong>must</strong>
|
|
consist exclusively of Element, Processing Instruction, Comment,
|
|
and Text Nodes if it is not empty. Attribute, Namespace, and
|
|
Document Nodes can never appear as children</p>
|
|
</li>
|
|
<li>
|
|
<p>If a node <em>N</em> is among the <b class=
|
|
"dm-node-prop">children</b> of a Document Node <em>D</em>, then the
|
|
<b class="dm-node-prop">parent</b> of <em>N</em>
|
|
<strong>must</strong> be <em>D</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If a node <em>N</em> has a <b class="dm-node-prop">parent</b>
|
|
Document Node <em>D</em>, then <em>N</em> <strong>must</strong> be
|
|
among the <b class="dm-node-prop">children</b> of <em>D</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>The <b class="dm-node-prop">string-value</b> property of a
|
|
Document Node must be the concatenation of the <b class=
|
|
"dm-node-prop">string-value</b>s of all its Text Node descendants
|
|
in document order or, if the document has no such descendants, the
|
|
zero-length string.</p>
|
|
</li>
|
|
</ol>
|
|
<p>In the <a href="#xml-infoset">[Infoset]</a>, a <b class=
|
|
"info-item">document information item</b> must have at least one
|
|
child, its children must consist exclusively of <b class=
|
|
"info-item">element information item</b>s, <b class=
|
|
"info-item">processing instruction information item</b>s and
|
|
<b class="info-item">comment information item</b>s, and exactly one
|
|
of the children must be an <b class="info-item">element information
|
|
item</b>. This data model is more permissive: a Document Node may
|
|
be empty, it may have more than one Element Node as a child, and it
|
|
also permits Text Nodes as children.</p>
|
|
<p>Implementations that support DTD processing and access to the
|
|
unparsed entity accessors use the <b class=
|
|
"dm-node-prop">unparsed-entities</b> property to associate
|
|
information about an unordered collection of unparsed entities with
|
|
a Document Node. This property is accessed indirectly through the
|
|
<span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span> and
|
|
<span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span>
|
|
functions.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="DocumentNodeAccessors" name=
|
|
"DocumentNodeAccessors"></a>6.1.2 Accessors</h4>
|
|
<dl>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">base-uri</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">children</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-document-uri"><span class=
|
|
"prefix">dm:</span>document-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the absolute URI of the resource from which the Document
|
|
Node was constructed, or the empty sequence if no such absolute URI
|
|
is available.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-id"><span class="prefix">dm:</span>is-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-idrefs"><span class=
|
|
"prefix">dm:</span>is-idrefs</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-nodes"><span class=
|
|
"prefix">dm:</span>namespace-nodes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-nilled"><span class="prefix">dm:</span>nilled</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-kind"><span class=
|
|
"prefix">dm:</span>node-kind</a></span></dt>
|
|
<dd>
|
|
<p>Returns “<code>document</code>”.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class=
|
|
"dm-node-prop">string-value</b> property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-typed-value"><span class=
|
|
"prefix">dm:</span>typed-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">typed-value</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the public identifier of the specified unparsed entity
|
|
or the empty sequence if no such entity exists.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the system identifier of the specified unparsed entity
|
|
or the empty sequence if no such entity exists.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-infoset-document" name=
|
|
"const-infoset-document"></a>6.1.3 Construction from an
|
|
Infoset</h4>
|
|
<p>The <b class="info-item">document information item</b> is
|
|
required. A Document Node is constructed for each <b class=
|
|
"info-item">document information item</b>.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[children]</b> and <b class=
|
|
"infoset-property">[base URI]</b>.</p>
|
|
<p>The following infoset properties are optional: <b class=
|
|
"infoset-property">[unparsed entities]</b>.</p>
|
|
<p>Document Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">base-uri</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[base URI]</b>
|
|
property, if available. Note that the base URI property, if
|
|
available, is always an absolute URI (if an absolute URI can be
|
|
computed) though it may contain Unicode characters that are not
|
|
allowed in URIs. These characters, if they occur, are present in
|
|
the <b class="dm-node-prop">base-uri</b> property and will have to
|
|
be encoded and escaped by the application to obtain a URI suitable
|
|
for retrieval, if retrieval is required.</p>
|
|
<p>In practice a <b class="infoset-property">[base URI]</b> is not
|
|
always known. In this case the value of the <b class=
|
|
"dm-node-prop">base-uri</b> property of the document node will be
|
|
the empty sequence. This is not intrinsically an error, though it
|
|
may cause some operations that depend on the base URI to fail.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">children</b></dt>
|
|
<dd>
|
|
<p>The sequence of nodes constructed from the information items
|
|
found in the <b class="infoset-property">[children]</b>
|
|
property.</p>
|
|
<p>For each element, processing instruction, and comment found in
|
|
the <b class="infoset-property">[children]</b> property, a
|
|
corresponding Element, Processing Instruction, or Comment Node is
|
|
constructed and that sequence of nodes is used as the value of the
|
|
<b class="dm-node-prop">children</b> property.</p>
|
|
<p>If present among the <b class="infoset-property">[children]</b>,
|
|
the <b class="info-item">document type declaration information
|
|
item</b> is ignored.</p>
|
|
</dd>
|
|
<dt class="label"><b class=
|
|
"dm-node-prop">unparsed-entities</b></dt>
|
|
<dd>
|
|
<p>If the <b class="infoset-property">[unparsed entities]</b>
|
|
property is present and is not the empty set, the values of the
|
|
<b class="info-item">unparsed entity information items</b> must be
|
|
used to support the <span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span> and
|
|
<span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span>
|
|
accessors.</p>
|
|
<p>The internal structure of the values of the <b class=
|
|
"dm-node-prop">unparsed-entities</b> property is implementation
|
|
defined.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<p>The concatenation of the string-values of all its Text Node
|
|
descendants in document order. If the document has no such
|
|
descendants, the zero-length string.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> of the node as an
|
|
<code>xs:untypedAtomic</code> value.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">document-uri</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">document-uri</b> property holds the
|
|
absolute URI for the resource from which the document node was
|
|
constructed, if one is available and can be made absolute. For
|
|
example, if a collection of documents is returned by the
|
|
<span class="function">fn:collection</span> function, the <b class=
|
|
"dm-node-prop">document-uri</b> property may serve to distinguish
|
|
between them even though each has the same <b class=
|
|
"dm-node-prop">base-uri</b> property.</p>
|
|
<p>If the <b class="dm-node-prop">document-uri</b> is not the empty
|
|
sequence, then the following constraint must hold: the node
|
|
returned by evaluating <code>fn:doc()</code> with the <b class=
|
|
"dm-node-prop">document-uri</b> as its argument must return the
|
|
document node that provided the value of the <b class=
|
|
"dm-node-prop">document-uri</b> property.</p>
|
|
<p>In other words, for any Document Node <code>$arg</code>, either
|
|
<code>fn:document-uri($arg)</code> must return the empty sequence
|
|
or <code>fn:doc(fn:document-uri($arg))</code> must return
|
|
<code>$arg</code>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-psvi-document" name=
|
|
"const-psvi-document"></a>6.1.4 Construction from a PSVI</h4>
|
|
<p>Construction from a PSVI is identical to construction from the
|
|
Infoset.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="infoset-mapping-document" name=
|
|
"infoset-mapping-document"></a>6.1.5 Infoset Mapping</h4>
|
|
<p>A Document Node maps to a <b class="info-item">document
|
|
information item</b>. The mapping fails and produces no value if
|
|
the Document Node contains Text Node children that do not consist
|
|
entirely of white space or if the Document Node contains more than
|
|
one Element Node child.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[children]</b></dt>
|
|
<dd>
|
|
<p>A list of information items obtained by processing each of the
|
|
<span class="function"><a href="#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span> in order and mapping each to
|
|
the appropriate information item(s).</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[document
|
|
element]</b></dt>
|
|
<dd>
|
|
<p>The <b class="info-item">element information item</b> that is
|
|
among the <b class="infoset-property">[children]</b>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[unparsed
|
|
entities]</b></dt>
|
|
<dd>
|
|
<p>An unordered set of <b class="info-item">unparsed entity
|
|
information item</b>s constructed from the <b class=
|
|
"dm-node-prop">unparsed-entities</b>.</p>
|
|
<p>Each unparsed entity maps to an <b class="info-item">unparsed
|
|
entity information item</b>. The following properties are specified
|
|
by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[name]</b></dt>
|
|
<dd>
|
|
<p>The name of the entity.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[system
|
|
identifier]</b></dt>
|
|
<dd>
|
|
<p>The system identifier of the entity.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[public
|
|
identifier]</b></dt>
|
|
<dd>
|
|
<p>The public identifier of the entity.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[declaration base
|
|
URI]</b></dt>
|
|
<dd>
|
|
<p>Implementation defined. In the many cases, the <b class=
|
|
"dm-node-prop">document-uri</b> is the correct answer and
|
|
implementations <strong>must</strong> use this value if they have
|
|
no better information. Implementations that keep track of the
|
|
original <b class="infoset-property">[declaration base URI]</b> for
|
|
entities should use that value.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>The following properties of the <b class="info-item">unparsed
|
|
entity information item</b> have no value: <b class=
|
|
"infoset-property">[notation name]</b>, <b class=
|
|
"infoset-property">[notation]</b>.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>The following properties of the <b class="info-item">document
|
|
information item</b> have no value: <b class=
|
|
"infoset-property">[notations]</b> <b class=
|
|
"infoset-property">[character encoding scheme]</b> <b class=
|
|
"infoset-property">[standalone]</b> <b class=
|
|
"infoset-property">[version]</b> <b class="infoset-property">[all
|
|
declarations processed]</b>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="ElementNode" name="ElementNode"></a>6.2 Element
|
|
Nodes</h3>
|
|
<div class="div3">
|
|
<h4><a id="ElementNodeOverview" name=
|
|
"ElementNodeOverview"></a>6.2.1 Overview</h4>
|
|
<p>Element Nodes encapsulate XML elements. Elements have the
|
|
following properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p><b class="dm-node-prop">base-uri</b>, possibly empty.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">node-name</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">parent</b>, possibly empty</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">type-name</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">children</b>, possibly empty</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">attributes</b>, possibly empty</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">namespaces</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">nilled</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">string-value</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">typed-value</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">is-id</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">is-idrefs</b></p>
|
|
</li>
|
|
</ul>
|
|
<p>Element Nodes <strong>must</strong> satisfy the following
|
|
constraints.</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>The <b class="dm-node-prop">children</b> <strong>must</strong>
|
|
consist exclusively of Element, Processing Instruction, Comment,
|
|
and Text Nodes if it is not empty. Attribute, Namespace, and
|
|
Document Nodes can never appear as children</p>
|
|
</li>
|
|
<li>
|
|
<p>The Attribute Nodes of an element <strong>must</strong> have
|
|
distinct <code>xs:QName</code>s.</p>
|
|
</li>
|
|
<li>
|
|
<p>If a node <em>N</em> is among the <b class=
|
|
"dm-node-prop">children</b> of an element <em>E</em>, then the
|
|
<b class="dm-node-prop">parent</b> of <em>N</em>
|
|
<strong>must</strong> be <em>E</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Exclusive of Attribute and Namespace Nodes, if a node <em>N</em>
|
|
has a <b class="dm-node-prop">parent</b> element <em>E</em>, then
|
|
<em>N</em> <strong>must</strong> be among the <b class=
|
|
"dm-node-prop">children</b> of <em>E</em>. (Attribute and Namespace
|
|
Nodes have a parent, but they do not appear among the children of
|
|
their parent.)</p>
|
|
<p>The data model permits Element Nodes without parents (to
|
|
represent partial results during expression processing, for
|
|
example). Such Element Nodes <strong>must not</strong> appear among
|
|
the <b class="dm-node-prop">children</b> of any other node.</p>
|
|
</li>
|
|
<li>
|
|
<p>If an Attribute Node <em>A</em> is among the <b class=
|
|
"dm-node-prop">attributes</b> of an element <em>E</em>, then the
|
|
<b class="dm-node-prop">parent</b> of <em>A</em>
|
|
<strong>must</strong> be <em>E</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If an Attribute Node <em>A</em> has a <b class=
|
|
"dm-node-prop">parent</b> element <em>E</em>, then <em>A</em>
|
|
<strong>must</strong> be among the <b class=
|
|
"dm-node-prop">attributes</b> of <em>E</em>.</p>
|
|
<p>The data model permits Attribute Nodes without parents. Such
|
|
Attribute Nodes <strong>must not</strong> appear among the
|
|
<b class="dm-node-prop">attributes</b> of any Element Node.</p>
|
|
</li>
|
|
<li>
|
|
<p>If a Namespace Node <em>N</em> is among the namespaces of an
|
|
element <em>E</em>, then the parent of <em>N</em>
|
|
<strong>must</strong> be <em>E</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If a Namespace Node <em>N</em> has a parent element <em>E</em>,
|
|
then <em>N</em> <strong>must</strong> be among the <b class=
|
|
"dm-node-prop">namespaces</b> of <em>E</em>.</p>
|
|
<p>The data model permits Namespace Nodes without parents. Such
|
|
Namespace Nodes <strong>must not</strong> appear among the
|
|
<b class="dm-node-prop">namespaces</b> of any Element Node. This
|
|
constraint is irrelevant for implementations that do not support
|
|
Namespace Nodes.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the <span class="function"><a href=
|
|
"#dm-type-name"><span class="prefix">dm:</span>type-name</a></span>
|
|
of an Element Node is <code>xs:untyped</code>, then the
|
|
<span class="function"><a href="#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span> of all its descendant
|
|
elements <strong>must</strong> also be <code>xs:untyped</code> and
|
|
the <span class="function"><a href="#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span> of all its Attribute Nodes
|
|
<strong>must</strong> be <code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the <span class="function"><a href=
|
|
"#dm-type-name"><span class="prefix">dm:</span>type-name</a></span>
|
|
of an Element Node is <code>xs:untyped</code>, then the <b class=
|
|
"dm-node-prop">nilled</b> property <strong>must</strong> be
|
|
<code>false</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the <b class="dm-node-prop">nilled</b> property is
|
|
<code>true</code>, then the <b class="dm-node-prop">children</b>
|
|
property <strong>must not</strong> contain Element Nodes or Text
|
|
Nodes.</p>
|
|
</li>
|
|
<li>
|
|
<p>For every <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> that appears in the
|
|
<span class="function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span> of the element, the
|
|
<span class="function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span> of any Attribute Node among
|
|
the <b class="dm-node-prop">attributes</b> of the element, or in
|
|
any value of type <code>xs:QName</code> or <code>xs:NOTATION</code>
|
|
(or any type derived from those types) that appears in the
|
|
typed-value of the element or the typed-value of any of its
|
|
attributes, if the expanded QName has a non-empty URI, then there
|
|
<strong>must</strong> be a prefix binding for this URI among the
|
|
<b class="dm-node-prop">namespaces</b> of this Element Node.</p>
|
|
<p>If any of the expanded QNames has an empty URI, then there
|
|
<strong>must not</strong> be any binding among the <b class=
|
|
"dm-node-prop">namespaces</b> of this Element Node which binds the
|
|
empty prefix to a URI.</p>
|
|
</li>
|
|
<li>
|
|
<p>Every element must include a Namespace Node and/or namespace
|
|
binding for the prefix <code>xml</code> bound to the URI
|
|
<code>http://www.w3.org/XML/1998/namespace</code> and there must be
|
|
no other prefix bound to that URI.</p>
|
|
</li>
|
|
<li>
|
|
<p>The <b class="dm-node-prop">string-value</b> property of an
|
|
Element Node must be the concatenation of the <b class=
|
|
"dm-node-prop">string-value</b>s of all its Text Node descendants
|
|
in document order or, if the element has no such descendants, the
|
|
zero-length string.</p>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="ElementNodeAccessors" name=
|
|
"ElementNodeAccessors"></a>6.2.2 Accessors</h4>
|
|
<dl>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">attributes</b>
|
|
property. The order of Attribute Nodes is stable but implementation
|
|
dependent.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">base-uri</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">children</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-document-uri"><span class=
|
|
"prefix">dm:</span>document-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-id"><span class="prefix">dm:</span>is-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">is-id</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-idrefs"><span class=
|
|
"prefix">dm:</span>is-idrefs</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">is-idrefs</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">namespaces</b>
|
|
property as a set of prefix/URI pairs.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-nodes"><span class=
|
|
"prefix">dm:</span>namespace-nodes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">namespaces</b>
|
|
property as a sequence of Namespace Nodes. The order of Namespace
|
|
Nodes is stable but implementation dependent.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-nilled"><span class="prefix">dm:</span>nilled</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">nilled</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-kind"><span class=
|
|
"prefix">dm:</span>node-kind</a></span></dt>
|
|
<dd>
|
|
<p>Returns “<code>element</code>”.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">node-name</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class=
|
|
"dm-node-prop">string-value</b> property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">type-name</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-typed-value"><span class=
|
|
"prefix">dm:</span>typed-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">typed-value</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-infoset-element" name=
|
|
"const-infoset-element"></a>6.2.3 Construction from an Infoset</h4>
|
|
<p>The <b class="info-item">element information items</b> are
|
|
required. An Element Node is constructed for each <b class=
|
|
"info-item">element information item</b>.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[namespace name]</b>, <b class=
|
|
"infoset-property">[local name]</b>, <b class=
|
|
"infoset-property">[children]</b>, <b class=
|
|
"infoset-property">[attributes]</b>, <b class=
|
|
"infoset-property">[in-scope namespaces]</b>, <b class=
|
|
"infoset-property">[base URI]</b>, and <b class=
|
|
"infoset-property">[parent]</b>.</p>
|
|
<p>Element Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">base-uri</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[base URI]</b>
|
|
property, if available. Note that the base URI property, if
|
|
available, is always an absolute URI (if an absolute URI can be
|
|
computed) though it may contain Unicode characters that are not
|
|
allowed in URIs. These characters, if they occur, are present in
|
|
the <b class="dm-node-prop">base-uri</b> property and will have to
|
|
be encoded and escaped by the application to obtain a URI suitable
|
|
for retrieval, if retrieval is required.</p>
|
|
<p>In practice a <b class="infoset-property">[base URI]</b> is not
|
|
always known. In this case the value of the <b class=
|
|
"dm-node-prop">base-uri</b> property of the document node will be
|
|
the empty sequence. This is not intrinsically an error, though it
|
|
may cause some operations that depend on the base URI to fail.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">node-name</b></dt>
|
|
<dd>
|
|
<p>An <code>xs:QName</code> constructed from the <b class=
|
|
"infoset-property">[prefix]</b>, <b class="infoset-property">[local
|
|
name]</b>, and <b class="infoset-property">[namespace name]</b>
|
|
properties.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The node that corresponds to the value of the <b class=
|
|
"infoset-property">[parent]</b> property or the empty sequence if
|
|
there is no parent.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">type-name</b></dt>
|
|
<dd>
|
|
<p>All Element Nodes constructed from an infoset have the type
|
|
<code>xs:untyped</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">children</b></dt>
|
|
<dd>
|
|
<p>The sequence of nodes constructed from the information items
|
|
found in the <b class="infoset-property">[children]</b>
|
|
property.</p>
|
|
<p>For each element, processing instruction, comment, and maximal
|
|
sequence of adjacent <b class="info-item">character information
|
|
items</b> found in the <b class="infoset-property">[children]</b>
|
|
property, a corresponding Element, Processing Instruction, Comment,
|
|
or Text Node is constructed and that sequence of nodes is used as
|
|
the value of the <b class="dm-node-prop">children</b> property.</p>
|
|
<p>Because the data model requires that all general entities be
|
|
expanded, there will never be <b class="info-item">unexpanded
|
|
entity reference information item</b> children.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">attributes</b></dt>
|
|
<dd>
|
|
<p>A set of Attribute Nodes constructed from the <b class=
|
|
"info-item">attribute information items</b> appearing in the
|
|
<b class="infoset-property">[attributes]</b> property. This
|
|
includes all of the "special" attributes (<code>xml:lang</code>,
|
|
<code>xml:space</code>, <code>xsi:type</code>, etc.) but does not
|
|
include namespace declarations (because they are not
|
|
attributes).</p>
|
|
<p>Default and fixed attributes provided by the DTD are added to
|
|
the <b class="infoset-property">[attributes]</b> and are therefore
|
|
included in the data model <b class="dm-node-prop">attributes</b>
|
|
of an element.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">namespaces</b></dt>
|
|
<dd>
|
|
<p>A set of Namespace Nodes constructed from the <b class=
|
|
"info-item">namespace information items</b> appearing in the
|
|
<b class="infoset-property">[in-scope namespaces]</b> property.
|
|
Implementations that do not support Namespace Nodes may simply
|
|
preserve the relevant bindings in this property.</p>
|
|
<p>Implementations <strong>may</strong> ignore <b class=
|
|
"info-item">namespace information items</b> for namespaces which
|
|
are not known to be used. A namespace is known to be used if:</p>
|
|
<ul>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of the <b class=
|
|
"dm-node-prop">node-name</b> of the element.</p>
|
|
</li>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of the <b class=
|
|
"dm-node-prop">node-name</b> of any of the element's
|
|
attributes.</p>
|
|
</li>
|
|
</ul>
|
|
<p>Note: applications may rely on namespaces that are not known to
|
|
be used, for example when QNames are used in content and that
|
|
content does not have a type of <code>xs:QName</code> Such
|
|
applications may have difficulty processing data models where some
|
|
namespaces have been ignored.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">nilled</b></dt>
|
|
<dd>
|
|
<p>All Element Nodes constructed from an infoset have a <b class=
|
|
"dm-node-prop">nilled</b> property of "<em>false</em>".</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">string-value</b> is constructed from
|
|
the <b class="info-item">character information item</b> <b class=
|
|
"infoset-property">[children]</b> of the element and all its
|
|
descendants. The precise rules for selecting significant <b class=
|
|
"info-item">character information items</b> and constructing
|
|
characters from them is described in <a href=
|
|
"#const-infoset-text"><b>6.7.3 Construction from an Infoset</b></a>
|
|
of <a href="#TextNode"><b>6.7 Text Nodes</b></a>.</p>
|
|
<p>This process is equivalent to concatenating the <span class=
|
|
"function"><a href="#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>s of all of the Text Node
|
|
descendants of the resulting Element Node.</p>
|
|
<p>If the element has no such descendants, the <b class=
|
|
"dm-node-prop">string-value</b> is the empty string.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">string-value</b> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-id</b></dt>
|
|
<dd>
|
|
<p>All Element Nodes constructed from an infoset have a <b class=
|
|
"dm-node-prop">is-id</b> property of "<em>false</em>".</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-idrefs</b></dt>
|
|
<dd>
|
|
<p>All Element Nodes constructed from an infoset have a <b class=
|
|
"dm-node-prop">is-idrefs</b> property of "<em>false</em>".</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-psvi-element" name="const-psvi-element"></a>6.2.4
|
|
Construction from a PSVI</h4>
|
|
<p>The following Element Node properties are affected by PSVI
|
|
properties.</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">type-name</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">type-name</b> is determined as
|
|
described in <a href="#PSVI2NodeTypes"><b>3.3.1.1 Element and
|
|
Attribute Node Type Names</b></a>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">children</b></dt>
|
|
<dd>
|
|
<p>The sequence of nodes constructed from the information items
|
|
found in the <b class="infoset-property">[children]</b>
|
|
property.</p>
|
|
<p>For each element, processing instruction, comment, and maximal
|
|
sequence of adjacent <b class="info-item">character information
|
|
items</b> found in the <b class="infoset-property">[children]</b>
|
|
property, a corresponding Element, Processing Instruction, Comment,
|
|
or Text Node is constructed and that sequence of nodes is used as
|
|
the value of the <b class="dm-node-prop">children</b> property.</p>
|
|
<p>For elements with schema simple types, or complex types with
|
|
simple content, if the <b class="infoset-property">[schema
|
|
normalized value]</b> PSVI property exists, the processor
|
|
<strong>may</strong> use a sequence of nodes containing the
|
|
Processing Instruction and Comment Nodes corresponding to the
|
|
<b class="info-item">processing instruction</b> and <b class=
|
|
"info-item">comment information items</b> found in the <b class=
|
|
"infoset-property">[children]</b> property, plus an optional single
|
|
Text Node whose string value is the <b class=
|
|
"infoset-property">[schema normalized value]</b> for the <b class=
|
|
"dm-node-prop">children</b> property. If the <b class=
|
|
"infoset-property">[schema normalized value]</b> is the empty
|
|
string, the Text Node <strong>must not</strong> be present,
|
|
otherwise it <strong>must</strong> be present.</p>
|
|
<p>The relative order of Processing Instruction and Comment Nodes
|
|
must be preserved, but the position of the Text Node, if it is
|
|
present, among them is implementation defined.</p>
|
|
<p>The effect of the above rules is that where a fixed or default
|
|
value for an element is defined in the schema, and the element
|
|
takes this default value, a text node will be created to contain
|
|
the value, even though there are no character information items
|
|
representing the value in the PSVI. The position of this text node
|
|
relative to any comment or processing instruction children is
|
|
implementation-dependent.</p>
|
|
<p><a href="#xmlschema-1">[Schema Part 1]</a> also permits an
|
|
element with mixed content to take a default or fixed value (which
|
|
will always be a simple value), but at the time of this writing it
|
|
is unclear how such a defaulted value is represented in the PSVI.
|
|
Implementations therefore <strong>may</strong> represent such a
|
|
default value by creating a text node, but are not required to do
|
|
so.</p>
|
|
<p>Because the data model requires that all general entities be
|
|
expanded, there will never be <b class="info-item">unexpanded
|
|
entity reference information item</b> children.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">attributes</b></dt>
|
|
<dd>
|
|
<p>A set of Attribute Nodes constructed from the <b class=
|
|
"info-item">attribute information items</b> appearing in the
|
|
<b class="infoset-property">[attributes]</b> property. This
|
|
includes all of the "special" attributes (<code>xml:lang</code>,
|
|
<code>xml:space</code>, <code>xsi:type</code>, etc.) but does not
|
|
include namespace declarations (because they are not
|
|
attributes).</p>
|
|
<p>Default and fixed attributes provided by XML Schema processing
|
|
are added to the <b class="infoset-property">[attributes]</b> and
|
|
are therefore included in the data model <b class=
|
|
"dm-node-prop">attributes</b> of an element.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">namespaces</b></dt>
|
|
<dd>
|
|
<p>A set of Namespace Nodes constructed from the <b class=
|
|
"info-item">namespace information items</b> appearing in the
|
|
<b class="infoset-property">[in-scope namespaces]</b> property.
|
|
Implementations that do not support Namespace Nodes may simply
|
|
preserve the relevant bindings in this property.</p>
|
|
<p>Implementations <strong>may</strong> ignore <b class=
|
|
"info-item">namespace information items</b> for namespaces which
|
|
are not known to be used. A namespace is known to be used if:</p>
|
|
<ul>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of the <b class=
|
|
"dm-node-prop">node-name</b> of the element.</p>
|
|
</li>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of the <b class=
|
|
"dm-node-prop">node-name</b> of any of the element's
|
|
attributes.</p>
|
|
</li>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of any values of type
|
|
<code>xs:QName</code> that appear among the element's children or
|
|
the typed values of its attributes.</p>
|
|
</li>
|
|
</ul>
|
|
<p>Note: applications may rely on namespaces that are not known to
|
|
be used, for example when QNames are used in content and that
|
|
content does not have a type of <code>xs:QName</code> Such
|
|
applications may have difficulty processing data models where some
|
|
namespaces have been ignored.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">nilled</b></dt>
|
|
<dd>
|
|
<p>If the <b class="infoset-property">[validity]</b> property
|
|
exists on an information item and is "<em>valid</em>" then if the
|
|
<b class="infoset-property">[nil]</b> property exists and is true,
|
|
then the <b class="dm-node-prop">nilled</b> property is
|
|
"<em>true</em>". In all other cases, including all cases where
|
|
schema validity assessment was not attempted or did not succeed,
|
|
the <b class="dm-node-prop">nilled</b> property is
|
|
"<em>false</em>".</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<p>The string-value is calculated as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the element is empty: its string value is the zero length
|
|
string.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a type of <code>xs:untyped</code>, a complex
|
|
type with element-only content, or a complex type with mixed
|
|
content: its string-value is the concatenation of the <b class=
|
|
"dm-node-prop">string-value</b>s of all its Text Node descendants
|
|
in document order.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a simple type or a complex type with simple
|
|
content: its string-value is the <b class=
|
|
"infoset-property">[schema normalized value]</b> of the node.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If an implementation stores only the typed value of an element,
|
|
it may use any valid lexical representation of the typed value for
|
|
the <b class="dm-node-prop">string-value</b> property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The typed-value is calculated as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the element is of type <code>xs:untyped</code>, its
|
|
typed-value is its <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a complex type with empty content, its
|
|
typed-value is the empty sequence.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a simple type or a complex type with simple
|
|
content: its typed value is computed as described in <a href=
|
|
"#TypedValueDetermination"><b>3.3.1.2 Typed Value
|
|
Determination</b></a>. The result is a sequence of zero or more
|
|
atomic values. The relationship between the type-name, typed-value,
|
|
and string-value of an element node is consistent with XML Schema
|
|
validation.</p>
|
|
<p>Note that in the case of dates and times, the timezone is
|
|
preserved as described in <a href="#dates-and-times"><b>3.3.2 Dates
|
|
and Times</b></a>, and in the case of <code>xs:QName</code>s and
|
|
<code>xs:NOTATION</code>s, the prefix is preserved as described in
|
|
<a href="#qnames-and-notations"><b>3.3.3 QNames and
|
|
NOTATIONS</b></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a complex type with mixed content (including
|
|
<code>xs:anyType</code>), its typed-value is its <span class=
|
|
"function"><a href="#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise, the element must be a complex type with element-only
|
|
content. The typed-value of such an element is undefined.
|
|
Attempting to access this property with the <span class=
|
|
"function"><a href="#dm-typed-value"><span class=
|
|
"prefix">dm:</span>typed-value</a></span> accessor always raises an
|
|
error.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-id</b></dt>
|
|
<dd>
|
|
<p>If the element has a complex type with element-only content, the
|
|
<b class="dm-node-prop">is-id</b> property is <code>false</code>.
|
|
Otherwise, if the typed-value of the element consists of exactly
|
|
one atomic value and that value is of type <code>xs:ID</code>, or a
|
|
type derived from <code>xs:ID</code>, the <b class=
|
|
"dm-node-prop">is-id</b> property is <code>true</code>, otherwise
|
|
it is <code>false</code>.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>This means that in the case of a type constructed by list from
|
|
<code>xs:ID</code>, the ID is recognized provided that the list is
|
|
of length one. A type constructed as a union involving
|
|
<code>xs:ID</code> is recognized provided the actual value is of
|
|
type <code>xs:ID</code>.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>The element that is marked with the <b class=
|
|
"dm-node-prop">is-id</b> property, and which will therefore be
|
|
retrieved by the fn:id function, is the node whose typed value
|
|
contains the <code>xs:ID</code> value. This node is a child of the
|
|
element node that, according to XML Schema, is uniquely identified
|
|
by this ID.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-idrefs</b></dt>
|
|
<dd>
|
|
<p>If the element has a complex type with element-only content, the
|
|
<b class="dm-node-prop">is-idrefs</b> property is
|
|
<code>false</code>. Otherwise, if any of the atomic values in the
|
|
typed-value of the element is of type <code>xs:IDREF</code> or
|
|
<code>xs:IDREFS</code>, or a type derived from one of those types,
|
|
the <b class="dm-node-prop">is-idrefs</b> property is
|
|
<code>true</code>, otherwise it is <code>false</code>.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>All other properties have values that are consistent with
|
|
construction from an infoset.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="infoset-mapping-element" name=
|
|
"infoset-mapping-element"></a>6.2.5 Infoset Mapping</h4>
|
|
<p>An Element Node maps to an <b class="info-item">element
|
|
information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[namespace
|
|
name]</b></dt>
|
|
<dd>
|
|
<p>The namespace name of the value of <span class=
|
|
"function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[local name]</b></dt>
|
|
<dd>
|
|
<p>The local part of the value of <span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[prefix]</b></dt>
|
|
<dd>
|
|
<p>The prefix associated with the value of <span class=
|
|
"function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[children]</b></dt>
|
|
<dd>
|
|
<p>A list of information items obtained by processing each of the
|
|
<span class="function"><a href="#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span> in order and mapping each to
|
|
the appropriate information item(s).</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[attributes]</b></dt>
|
|
<dd>
|
|
<p>An unordered set of information items obtained by processing
|
|
each of the <span class="function"><a href=
|
|
"#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span> and mapping each to the
|
|
appropriate information item(s).</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[in-scope
|
|
namespaces]</b></dt>
|
|
<dd>
|
|
<p>An unordered set of <b class="info-item">namespace information
|
|
items</b> constructed from the <b class=
|
|
"dm-node-prop">namespaces</b>.</p>
|
|
<p>Each in-scope namespace maps to a <b class="info-item">namespace
|
|
information item</b>. The following properties are specified by
|
|
this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[prefix]</b></dt>
|
|
<dd>
|
|
<p>The prefix associated with the namespace.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[namespace
|
|
name]</b></dt>
|
|
<dd>
|
|
<p>The URI associated with the namespace.</p>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[base URI]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[parent]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node is the root of the infoset mapping operation,
|
|
<em>unknown</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<p>The following property has no value: <b class=
|
|
"infoset-property">[namespace attributes]</b>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="AttributeNode" name="AttributeNode"></a>6.3 Attribute
|
|
Nodes</h3>
|
|
<div class="div3">
|
|
<h4><a id="AttributeNodeOverview" name=
|
|
"AttributeNodeOverview"></a>6.3.1 Overview</h4>
|
|
<p>Attribute Nodes represent XML attributes. Attributes have the
|
|
following properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p><b class="dm-node-prop">node-name</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">parent</b>, possibly empty</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">type-name</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">string-value</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">typed-value</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">is-id</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">is-idrefs</b></p>
|
|
</li>
|
|
</ul>
|
|
<p>Attribute Nodes <strong>must</strong> satisfy the following
|
|
constraints.</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>If an Attribute Node <em>A</em> is among the <b class=
|
|
"dm-node-prop">attributes</b> of an element <em>E</em>, then the
|
|
<b class="dm-node-prop">parent</b> of <em>A</em>
|
|
<strong>must</strong> be <em>E</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If a Attribute Node <em>A</em> has a parent element <em>E</em>,
|
|
then <em>A</em> <strong>must</strong> be among the <b class=
|
|
"dm-node-prop">attributes</b> of <em>E</em>.</p>
|
|
<p>The data model permits Attribute Nodes without parents (to
|
|
represent partial results during expression processing, for
|
|
example). Such attributes <strong>must not</strong> appear among
|
|
the <b class="dm-node-prop">attributes</b> of any Element Node.</p>
|
|
</li>
|
|
<li>
|
|
<p>In the node-name of an attribute node, if a namespace URI is
|
|
present then a prefix <strong>must</strong> also be present.</p>
|
|
</li>
|
|
</ol>
|
|
<p>For convenience, the Element Node that owns this attribute is
|
|
called its "parent" even though an Attribute Node is not a "child"
|
|
of its parent element.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="AttributeNodeAccessors" name=
|
|
"AttributeNodeAccessors"></a>6.3.2 Accessors</h4>
|
|
<dl>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span></dt>
|
|
<dd>
|
|
<p>If the attribute has a parent, returns the value of the
|
|
<span class="function"><a href="#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span> of its parent; otherwise it
|
|
returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-document-uri"><span class=
|
|
"prefix">dm:</span>document-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-id"><span class="prefix">dm:</span>is-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">is-id</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-idrefs"><span class=
|
|
"prefix">dm:</span>is-idrefs</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">is-idrefs</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-nodes"><span class=
|
|
"prefix">dm:</span>namespace-nodes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-nilled"><span class="prefix">dm:</span>nilled</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-kind"><span class=
|
|
"prefix">dm:</span>node-kind</a></span></dt>
|
|
<dd>
|
|
<p>Returns “<code>attribute</code>”.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">node-name</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class=
|
|
"dm-node-prop">string-value</b> property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">type-name</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-typed-value"><span class=
|
|
"prefix">dm:</span>typed-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">typed-value</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-infoset-attribute" name=
|
|
"const-infoset-attribute"></a>6.3.3 Construction from an
|
|
Infoset</h4>
|
|
<p>The <b class="info-item">attribute information items</b> are
|
|
required. An Attribute Node is constructed for each <b class=
|
|
"info-item">attribute information item</b>.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[namespace name]</b>, <b class=
|
|
"infoset-property">[local name]</b>, <b class=
|
|
"infoset-property">[normalized value]</b>, <b class=
|
|
"infoset-property">[attribute type]</b>, and <b class=
|
|
"infoset-property">[owner element]</b>.</p>
|
|
<p>Attribute Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">node-name</b></dt>
|
|
<dd>
|
|
<p>An <code>xs:QName</code> constructed from the <b class=
|
|
"infoset-property">[prefix]</b>, <b class="infoset-property">[local
|
|
name]</b>, and <b class="infoset-property">[namespace name]</b>
|
|
properties.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The Element Node that corresponds to the value of the <b class=
|
|
"infoset-property">[owner element]</b> property or the empty
|
|
sequence if there is no owner.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">type-name</b></dt>
|
|
<dd>
|
|
<p>The value <code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<p>The <b class="infoset-property">[normalized value]</b> of the
|
|
attribute.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The attribute’s typed-value is its <span class=
|
|
"function"><a href="#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-id</b></dt>
|
|
<dd>
|
|
<p>If the attribute is named <code>xml:id</code> and its <b class=
|
|
"infoset-property">[attribute type]</b> property does not have the
|
|
value <code>ID</code>, then <a href="#xml-id">[xml:id]</a>
|
|
processing is performed. This will assure that the value does have
|
|
the type <code>ID</code> and that it is properly normalized. If an
|
|
error is encountered during xml:id processing, an implementation
|
|
<strong>may</strong> raise a dynamic error. The <b class=
|
|
"dm-node-prop">is-id</b> property is always <code>true</code> for
|
|
attributes named <code>xml:id</code>.</p>
|
|
<p>If the <b class="infoset-property">[attribute type]</b> property
|
|
has the value <code>ID</code>, <code>true</code>, otherwise
|
|
<code>false</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-idrefs</b></dt>
|
|
<dd>
|
|
<p>If the <b class="infoset-property">[attribute type]</b> property
|
|
has the value <code>IDREF</code> or <code>IDREFS</code>,
|
|
<code>true</code>, otherwise <code>false</code>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-psvi-attribute" name=
|
|
"const-psvi-attribute"></a>6.3.4 Construction from a PSVI</h4>
|
|
<p>The following Attribute Node properties are affected by PSVI
|
|
properties.</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>The <b class="infoset-property">[schema normalized value]</b>
|
|
PSVI property if that exists.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise, the <b class="infoset-property">[normalized
|
|
value]</b> property.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If an implementation stores only the typed value of an
|
|
attribute, it may use any valid lexical representation of the typed
|
|
value for the <b class="dm-node-prop">string-value</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">type-name</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">type-name</b> is determined as
|
|
described in <a href="#PSVI2NodeTypes"><b>3.3.1.1 Element and
|
|
Attribute Node Type Names</b></a>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The typed-value is calculated as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the attribute is of type <code>xs:untypedAtomic</code>: its
|
|
typed-value is its <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise, a sequence of zero or more atomic values as described
|
|
in <a href="#TypedValueDetermination"><b>3.3.1.2 Typed Value
|
|
Determination</b></a>. The relationship between the type-name,
|
|
typed-value, and string-value of an attribute node is consistent
|
|
with XML Schema validation.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-id</b></dt>
|
|
<dd>
|
|
<p>If the attribute is named <code>xml:id</code> and its <b class=
|
|
"infoset-property">[attribute type]</b> property does not have the
|
|
value <code>xs:ID</code> or a type derived from <code>xs:ID</code>,
|
|
then <a href="#xml-id">[xml:id]</a> processing is performed. This
|
|
will assure that the value does have the type <code>xs:ID</code>
|
|
and that it is properly normalized. If an error is encountered
|
|
during xml:id processing, an implementation <strong>may</strong>
|
|
raise a dynamic error. The <b class="dm-node-prop">is-id</b>
|
|
property is always true for attributes named
|
|
<code>xml:id</code>.</p>
|
|
<p>Otherwise, if the typed-value of the attribute consists of
|
|
exactly one atomic value and that value is of type
|
|
<code>xs:ID</code>, or a type derived from <code>xs:ID</code>, the
|
|
<b class="dm-node-prop">is-id</b> property is <code>true</code>,
|
|
otherwise it is <code>false</code>.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>This means that in the case of a type constructed by list from
|
|
<code>xs:ID</code>, the ID is recognized provided that the list is
|
|
of length one. A type constructed as a union involving
|
|
<code>xs:ID</code> is recognized provided the actual value is of
|
|
type <code>xs:ID</code>.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-idrefs</b></dt>
|
|
<dd>
|
|
<p>If any of the atomic values in the typed-value of the attribute
|
|
is of type <code>xs:IDREF</code> or <code>xs:IDREFS</code>, or a
|
|
type derived from one of those types, the <b class=
|
|
"dm-node-prop">is-idrefs</b> property is <code>true</code>,
|
|
otherwise it is <code>false</code>.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>This rule means that a type constructed by list with an item
|
|
type of <code>xs:IDREF</code> (or a type derived from
|
|
<code>xs:IDREF</code>) has the <b class=
|
|
"dm-node-prop">is-idrefs</b> property, whether or not the list type
|
|
is named <code>xs:IDREFS</code> or is derived from
|
|
<code>xs:IDREFS</code>. Because union types are allowed, it also
|
|
means that an element or attribute with the <b class=
|
|
"dm-node-prop">is-idrefs</b> property can contain atomic values of
|
|
type <code>xs:IDREF</code> alongside values of other types.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</dd>
|
|
</dl>
|
|
<p>All other properties have values that are consistent with
|
|
construction from an infoset.</p>
|
|
<p>Note: attributes from the XML Schema instance namespace,
|
|
"<code>http://www.w3.org/2001/XMLSchema-instance</code>",
|
|
(<code>xsi:schemaLocation</code>, <code>xsi:type</code>, etc.)
|
|
appear as ordinary attributes in the data model.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="infoset-mapping-attribute" name=
|
|
"infoset-mapping-attribute"></a>6.3.5 Infoset Mapping</h4>
|
|
<p>An Attribute Node maps to an <b class="info-item">attribute
|
|
information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[namespace
|
|
name]</b></dt>
|
|
<dd>
|
|
<p>The namespace name of the value of <span class=
|
|
"function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[local name]</b></dt>
|
|
<dd>
|
|
<p>The local part of the value of <span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[prefix]</b></dt>
|
|
<dd>
|
|
<p>The prefix associated with the value of <span class=
|
|
"function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[normalized
|
|
value]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[owner
|
|
element]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<p>The following properties have no value: <b class=
|
|
"infoset-property">[specified]</b> <b class=
|
|
"infoset-property">[attribute type]</b> <b class=
|
|
"infoset-property">[references]</b>.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="NamespaceNode" name="NamespaceNode"></a>6.4 Namespace
|
|
Nodes</h3>
|
|
<div class="div3">
|
|
<h4><a id="NamespaceNodeOverview" name=
|
|
"NamespaceNodeOverview"></a>6.4.1 Overview</h4>
|
|
<p>Each Namespace Node represents the binding of a namespace URI to
|
|
a namespace prefix or to the default namespace. Implementations
|
|
that do not use Namespace Nodes may represent the same information
|
|
using the <b class="dm-node-prop">namespaces</b> property of an
|
|
element node. Namespaces have the following properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p><b class="dm-node-prop">prefix</b>, possibly empty</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">uri</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">parent</b>, possibly empty</p>
|
|
</li>
|
|
</ul>
|
|
<p>Namespace Nodes <strong>must</strong> satisfy the following
|
|
constraints.</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>If a Namespace Node <em>N</em> is among the namespaces of an
|
|
element <em>E</em>, then the parent of <em>N</em>
|
|
<strong>must</strong> be <em>E</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If a Namespace Node <em>N</em> has a parent element <em>E</em>,
|
|
then <em>N</em> <strong>must</strong> be among the namespaces of
|
|
<em>E</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>A Namespace Node <strong>must</strong> not have the name
|
|
<code>xmlns</code> nor the string-value
|
|
<code>http://www.w3.org/2000/xmlns/</code>.</p>
|
|
</li>
|
|
</ol>
|
|
<p>The data model permits Namespace Nodes without parents, see
|
|
below.</p>
|
|
<p>In XPath 1.0, Namespace Nodes were directly accessible by
|
|
applications, by means of the namespace axis. In XPath 2.0 the
|
|
namespace axis is deprecated, and it is not available at all in
|
|
XQuery 1.0. XPath 2.0 implementations are not required to expose
|
|
the namespace axis, though they may do so if they wish to offer
|
|
backwards compatibility.</p>
|
|
<p>The information held in namespace nodes is instead made
|
|
available to applications using functions defined in <a href=
|
|
"#xpath-functions">[XQuery 1.0 and XPath 2.0 Functions and
|
|
Operators (Second Edition)]</a>. Some properties of Namespace Nodes
|
|
are not exposed by these functions: in particular, properties
|
|
related to the identity of Namespace Nodes, their parentage, and
|
|
their position in document order. Implementations that do not
|
|
expose the namespace axis can therefore avoid the overhead of
|
|
maintaining this information.</p>
|
|
<p>Implementations that expose the namespace axis
|
|
<strong>must</strong> provide unique Namespace Nodes for each
|
|
element. Each element has an associated set of Namespace Nodes, one
|
|
for each distinct namespace prefix that is in scope for the element
|
|
(including the <code>xml</code> prefix, which is implicitly
|
|
declared by <a href="#xml-names">[Namespaces in XML]</a> and one
|
|
for the default namespace if one is in scope for the element. The
|
|
element is the parent of each of these Namespace Nodes; however, a
|
|
Namespace Node is not a child of its parent element. In
|
|
implementations that expose the namespace axis, elements never
|
|
share namespace nodes.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>In implementations that do not expose the namespace axis, there
|
|
is no means by which the host language can tell if namespace nodes
|
|
are shared or not and, in such circumstances, sharing namespace
|
|
nodes may be a very reasonable implementation strategy.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="NamespaceNodeAccessors" name=
|
|
"NamespaceNodeAccessors"></a>6.4.2 Accessors</h4>
|
|
<dl>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-document-uri"><span class=
|
|
"prefix">dm:</span>document-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-id"><span class="prefix">dm:</span>is-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-idrefs"><span class=
|
|
"prefix">dm:</span>is-idrefs</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-nodes"><span class=
|
|
"prefix">dm:</span>namespace-nodes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-nilled"><span class="prefix">dm:</span>nilled</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-kind"><span class=
|
|
"prefix">dm:</span>node-kind</a></span></dt>
|
|
<dd>
|
|
<p>Returns “<code>namespace</code>”.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span></dt>
|
|
<dd>
|
|
<p>If the <b class="dm-node-prop">prefix</b> is not empty, returns
|
|
an <code>xs:QName</code> with the value of the <b class=
|
|
"dm-node-prop">prefix</b> property in the local-name and an empty
|
|
namespace name, otherwise returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">uri</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-typed-value"><span class=
|
|
"prefix">dm:</span>typed-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">uri</b>
|
|
property as an <code>xs:string</code>.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-infoset-namespace" name=
|
|
"const-infoset-namespace"></a>6.4.3 Construction from an
|
|
Infoset</h4>
|
|
<p>The <b class="info-item">namespace information items</b> are
|
|
required.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[prefix]</b>, <b class=
|
|
"infoset-property">[namespace name]</b>.</p>
|
|
<p>Namespace Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">prefix</b></dt>
|
|
<dd>
|
|
<p>The <b class="infoset-property">[prefix]</b> property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">uri</b></dt>
|
|
<dd>
|
|
<p>The <b class="infoset-property">[namespace name]</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The element in whose <b class="infoset-property">[in-scope
|
|
namespaces]</b> property the <b class="info-item">namespace
|
|
information item</b> appears, if the implementation exposes any
|
|
mechanism for accessing the <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>
|
|
accessor of Namespace Nodes.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-psvi-namespace" name=
|
|
"const-psvi-namespace"></a>6.4.4 Construction from a PSVI</h4>
|
|
<p>Construction from a PSVI is identical to construction from the
|
|
Infoset.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="infoset-mapping-namespace" name=
|
|
"infoset-mapping-namespace"></a>6.4.5 Infoset Mapping</h4>
|
|
<p>A Namespace Node maps to a <b class="info-item">namespace
|
|
information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[prefix]</b></dt>
|
|
<dd>
|
|
<p>The prefix associated with the namespace.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[namespace
|
|
name]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="ProcessingInstructionNode" name=
|
|
"ProcessingInstructionNode"></a>6.5 Processing Instruction
|
|
Nodes</h3>
|
|
<div class="div3">
|
|
<h4><a id="ProcessingInstructionNodeOverview" name=
|
|
"ProcessingInstructionNodeOverview"></a>6.5.1 Overview</h4>
|
|
<p>Processing Instruction Nodes encapsulate XML processing
|
|
instructions. Processing instructions have the following
|
|
properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p><b class="dm-node-prop">target</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">content</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">base-uri</b>, possibly empty</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">parent</b>, possibly empty</p>
|
|
</li>
|
|
</ul>
|
|
<p>Processing Instruction Nodes <strong>must</strong> satisfy the
|
|
following constraints.</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>The string "?>" <strong>must not</strong> occur within the
|
|
<b class="dm-node-prop">content</b>.</p>
|
|
</li>
|
|
<li>
|
|
<p>The <b class="dm-node-prop">target</b> <strong>must</strong> be
|
|
an <code>NCName</code>.</p>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="ProcessingInstructionNodeAccessors" name=
|
|
"ProcessingInstructionNodeAccessors"></a>6.5.2 Accessors</h4>
|
|
<dl>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">base-uri</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-document-uri"><span class=
|
|
"prefix">dm:</span>document-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-id"><span class="prefix">dm:</span>is-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-idrefs"><span class=
|
|
"prefix">dm:</span>is-idrefs</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-nodes"><span class=
|
|
"prefix">dm:</span>namespace-nodes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-nilled"><span class="prefix">dm:</span>nilled</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-kind"><span class=
|
|
"prefix">dm:</span>node-kind</a></span></dt>
|
|
<dd>
|
|
<p>Returns “<code>processing-instruction</code>”.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns an <code>xs:QName</code> with the value of the <b class=
|
|
"dm-node-prop">target</b> property in the local-name and an empty
|
|
namespace URI and empty prefix.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-typed-value"><span class=
|
|
"prefix">dm:</span>typed-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property as a <code>xs:string</code>.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-infoset-pi" name="const-infoset-pi"></a>6.5.3
|
|
Construction from an Infoset</h4>
|
|
<p>A Processing Instruction Node is constructed for each <b class=
|
|
"info-item">processing instruction information item</b> that is not
|
|
ignored.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[target]</b>, <b class=
|
|
"infoset-property">[content]</b>, <b class="infoset-property">[base
|
|
URI]</b>, and <b class="infoset-property">[parent]</b>.</p>
|
|
<p>Processing Instruction Node properties are derived from the
|
|
infoset as follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">target</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[target]</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">content</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[content]</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">base-uri</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[base URI]</b>
|
|
property, if available. Note that the base URI property, if
|
|
available, is always an absolute URI (if an absolute URI can be
|
|
computed) though it may contain Unicode characters that are not
|
|
allowed in URIs. These characters, if they occur, are present in
|
|
the <b class="dm-node-prop">base-uri</b> property and will have to
|
|
be encoded and escaped by the application to obtain a URI suitable
|
|
for retrieval, if retrieval is required.</p>
|
|
<p>In practice a <b class="infoset-property">[base URI]</b> is not
|
|
always known. In this case the value of the <b class=
|
|
"dm-node-prop">base-uri</b> property of the document node will be
|
|
the empty sequence. This is not intrinsically an error, though it
|
|
may cause some operations that depend on the base URI to fail.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The node corresponding to the value of the <b class=
|
|
"infoset-property">[parent]</b> property.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>There are no Processing Instruction Nodes for processing
|
|
instructions that are children of a <b class="info-item">document
|
|
type declaration information item</b>.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-psvi-pi" name="const-psvi-pi"></a>6.5.4
|
|
Construction from a PSVI</h4>
|
|
<p>Construction from a PSVI is identical to construction from the
|
|
Infoset.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="infoset-mapping-processing-instruction" name=
|
|
"infoset-mapping-processing-instruction"></a>6.5.5 Infoset
|
|
Mapping</h4>
|
|
<p>An Processing Instruction Node maps to a <b class=
|
|
"info-item">processing instruction information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[target]</b></dt>
|
|
<dd>
|
|
<p>The local part of the value of <span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[content]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[base URI]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[parent]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node is the root of the infoset mapping operation,
|
|
<em>unknown</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[notation]</b></dt>
|
|
<dd>
|
|
<p><em>no value</em>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="CommentNode" name="CommentNode"></a>6.6 Comment
|
|
Nodes</h3>
|
|
<div class="div3">
|
|
<h4><a id="CommentNodeOverview" name=
|
|
"CommentNodeOverview"></a>6.6.1 Overview</h4>
|
|
<p>Comment Nodes encapsulate XML comments. Comments have the
|
|
following properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p><b class="dm-node-prop">content</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">parent</b>, possibly empty</p>
|
|
</li>
|
|
</ul>
|
|
<p>Comment Nodes <strong>must</strong> satisfy the following
|
|
constraints.</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>The string "--" <strong>must not</strong> occur within the
|
|
<b class="dm-node-prop">content</b>.</p>
|
|
</li>
|
|
<li>
|
|
<p>The character "-" <strong>must not</strong> occur as the last
|
|
character of the <b class="dm-node-prop">content</b>.</p>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="CommentNodeAccessors" name=
|
|
"CommentNodeAccessors"></a>6.6.2 Accessors</h4>
|
|
<dl>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span></dt>
|
|
<dd>
|
|
<p>If the comment has a parent, returns the value of the
|
|
<span class="function"><a href="#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span> of its parent; otherwise,
|
|
returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-document-uri"><span class=
|
|
"prefix">dm:</span>document-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-id"><span class="prefix">dm:</span>is-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-idrefs"><span class=
|
|
"prefix">dm:</span>is-idrefs</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-nodes"><span class=
|
|
"prefix">dm:</span>namespace-nodes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-nilled"><span class="prefix">dm:</span>nilled</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-kind"><span class=
|
|
"prefix">dm:</span>node-kind</a></span></dt>
|
|
<dd>
|
|
<p>Returns “<code>comment</code>”.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-typed-value"><span class=
|
|
"prefix">dm:</span>typed-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property as a <code>xs:string</code>.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-infoset-comment" name=
|
|
"const-infoset-comment"></a>6.6.3 Construction from an Infoset</h4>
|
|
<p>The <b class="info-item">comment information items</b> are
|
|
optional.</p>
|
|
<p>A Comment Node is constructed for each <b class=
|
|
"info-item">comment information item</b>.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[content]</b> and <b class=
|
|
"infoset-property">[parent]</b>.</p>
|
|
<p>Comment Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">content</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[content]</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The node corresponding to the value of the <b class=
|
|
"infoset-property">[parent]</b> property.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>There are no Comment Nodes for comments that are children of a
|
|
<b class="info-item">document type declaration information
|
|
item</b>.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-psvi-comment" name="const-psvi-comment"></a>6.6.4
|
|
Construction from a PSVI</h4>
|
|
<p>Construction from a PSVI is identical to construction from the
|
|
Infoset.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="infoset-mapping-comment" name=
|
|
"infoset-mapping-comment"></a>6.6.5 Infoset Mapping</h4>
|
|
<p>A Comment Node maps to a <b class="info-item">comment
|
|
information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[content]</b></dt>
|
|
<dd>
|
|
<p>The value of the <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[parent]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node is the root of the infoset mapping operation,
|
|
<em>unknown</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="TextNode" name="TextNode"></a>6.7 Text Nodes</h3>
|
|
<div class="div3">
|
|
<h4><a id="TextNodeOverview" name="TextNodeOverview"></a>6.7.1
|
|
Overview</h4>
|
|
<p>Text Nodes encapsulate XML character content. Text has the
|
|
following properties:</p>
|
|
<ul>
|
|
<li>
|
|
<p><b class="dm-node-prop">content</b></p>
|
|
</li>
|
|
<li>
|
|
<p><b class="dm-node-prop">parent</b>, possibly empty.</p>
|
|
</li>
|
|
</ul>
|
|
<p>Text Nodes <strong>must</strong> satisfy the following
|
|
constraint:</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>If the <b class="dm-node-prop">parent</b> of a text node is not
|
|
empty, the Text Node <strong>must not</strong> contain the
|
|
zero-length string as its <b class="dm-node-prop">content</b>.</p>
|
|
</li>
|
|
</ol>
|
|
<p>In addition, Document and Element Nodes impose the constraint
|
|
that two consecutive Text Nodes can never occur as adjacent
|
|
siblings. When a Document or Element Node is constructed, Text
|
|
Nodes that would be adjacent <strong>must</strong> be combined into
|
|
a single Text Node. If the resulting Text Node is empty, it
|
|
<strong>must</strong> never be placed among the children of its
|
|
parent, it is simply discarded.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="TextNodeAccessors" name="TextNodeAccessors"></a>6.7.2
|
|
Accessors</h4>
|
|
<dl>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span></dt>
|
|
<dd>
|
|
<p>If the Text Node has a parent, returns the value of the
|
|
<span class="function"><a href="#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span> of its parent; otherwise,
|
|
returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-document-uri"><span class=
|
|
"prefix">dm:</span>document-uri</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-id"><span class="prefix">dm:</span>is-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-is-idrefs"><span class=
|
|
"prefix">dm:</span>is-idrefs</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-namespace-nodes"><span class=
|
|
"prefix">dm:</span>namespace-nodes</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-nilled"><span class="prefix">dm:</span>nilled</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-kind"><span class=
|
|
"prefix">dm:</span>node-kind</a></span></dt>
|
|
<dd>
|
|
<p>Returns “<code>text</code>”.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-type-name"><span class=
|
|
"prefix">dm:</span>type-name</a></span></dt>
|
|
<dd>
|
|
<p>Returns <code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-typed-value"><span class=
|
|
"prefix">dm:</span>typed-value</a></span></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property as an <code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt class="label"><span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-infoset-text" name="const-infoset-text"></a>6.7.3
|
|
Construction from an Infoset</h4>
|
|
<p>The <b class="info-item">character information items</b> are
|
|
required. A Text Node is constructed for each maximal sequence of
|
|
<b class="info-item">character information items</b> in document
|
|
order.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[character code]</b> and <b class=
|
|
"infoset-property">[parent]</b>.</p>
|
|
<p>The following infoset properties are optional: <b class=
|
|
"infoset-property">[element content whitespace]</b>.</p>
|
|
<p>A sequence of <b class="info-item">character information
|
|
items</b> is maximal if it satisfies the following constraints:</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>All of the information items in the sequence have the same
|
|
parent.</p>
|
|
</li>
|
|
<li>
|
|
<p>The sequence consists of adjacent <b class="info-item">character
|
|
information items</b> uninterrupted by other types of information
|
|
item.</p>
|
|
</li>
|
|
<li>
|
|
<p>No other such sequence exists that contains any of the same
|
|
<b class="info-item">character information items</b> and is
|
|
longer.</p>
|
|
</li>
|
|
</ol>
|
|
<p>Text Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">content</b></dt>
|
|
<dd>
|
|
<p>A string comprised of characters that correspond to the
|
|
<b class="infoset-property">[character code]</b> properties of each
|
|
of the <b class="info-item">character information items</b>.</p>
|
|
<p>If the resulting Text Node consists entirely of whitespace and
|
|
the <b class="infoset-property">[element content whitespace]</b>
|
|
property of the <b class="info-item">character information
|
|
items</b> used to construct this node are <code>true</code>, the
|
|
<b class="dm-node-prop">content</b> of the Text Node is the
|
|
zero-length string. Text Nodes are only allowed to be empty if they
|
|
have no parents; an empty Text Node will be discarded when its
|
|
parent is constructed, if it has a parent.</p>
|
|
<p>The content of the Text Node is not necessarily normalized as
|
|
described in the <a href="#charmod">[Character Model]</a>. It is
|
|
the responsibility of data producers to provide normalized text,
|
|
and the responsibility of applications to make sure that operations
|
|
do not de-normalize text.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The node corresponding to the value of the <b class=
|
|
"infoset-property">[parent]</b> property.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="const-psvi-text" name="const-psvi-text"></a>6.7.4
|
|
Construction from a PSVI</h4>
|
|
<p>For Text Nodes constructed from the <b class=
|
|
"infoset-property">[schema normalized value]</b> of elements,
|
|
<b class="dm-node-prop">content</b> contains the value of the
|
|
<b class="infoset-property">[schema normalized value]</b>.</p>
|
|
<p>Otherwise, construction from a PSVI is the same as construction
|
|
from the Infoset except for the <b class="dm-node-prop">content</b>
|
|
property. When constructing the <b class="dm-node-prop">content</b>
|
|
property, <b class="infoset-property">[element content
|
|
whitespace]</b> is not used to test if whitespace is collapsed.
|
|
Instead, if the resulting Text Node consists entirely of whitespace
|
|
and the <b class="info-item">character information items</b> used
|
|
to construct this node have a parent and that parent is an element
|
|
and its {content type} is not “<code>mixed</code>”, then the
|
|
<b class="dm-node-prop">content</b> of the Text Node is the
|
|
zero-length string.</p>
|
|
<p>Text Nodes are only allowed to be empty if they have no parents;
|
|
an empty Text Node will be discarded when its parent is
|
|
constructed, if it has a parent.</p>
|
|
</div>
|
|
<div class="div3">
|
|
<h4><a id="infoset-mapping-text" name=
|
|
"infoset-mapping-text"></a>6.7.5 Infoset Mapping</h4>
|
|
<p>A Text Node maps to a sequence of <b class="info-item">character
|
|
information items</b>.</p>
|
|
<p>Each character of the <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> of the node is converted
|
|
into a <b class="info-item">character information item</b> as
|
|
specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[character
|
|
code]</b></dt>
|
|
<dd>
|
|
<p>The Unicode code point value of the character.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[parent]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node is the root of the infoset mapping operation,
|
|
<em>unknown</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[element content
|
|
whitespace]</b></dt>
|
|
<dd>
|
|
<p><em>Unknown</em>.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>This sequence of characters constitutes the infoset mapping.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="conformance" name="conformance"></a>7 Conformance</h2>
|
|
<p>The data model is intended primarily as a component that can be
|
|
used by other specifications. Therefore, the data model relies on
|
|
specifications that use it (such as <a href="#xpath20">[XML Path
|
|
Language (XPath) 2.0 (Second Edition)]</a>, <a href="#xslt20">[XSLT
|
|
2.0 (Second Edition)]</a>, and <a href="#xquery">[XQuery]</a>) to
|
|
specify conformance criteria for the data model in their respective
|
|
environments. Specifications that set conformance criteria for
|
|
their use of the data model must not relax the constraints
|
|
expressed in this specification.</p>
|
|
<p>Authors of conformance criteria for the use of the data model
|
|
should pay particular attention to the following features of the
|
|
data model:</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>Support for the normative construction from an infoset described
|
|
in <a href="#const-infoset"><b>3.2 Construction from an
|
|
Infoset</b></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Support for the normative construction from a PSVI described in
|
|
<a href="#const-psvi"><b>3.3 Construction from a PSVI</b></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Support for XML 1.0 and XML 1.1.</p>
|
|
</li>
|
|
<li>
|
|
<p>How namespaces are supported, through nodes or through the
|
|
alternative, implementation-dependent representation.</p>
|
|
</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="back">
|
|
<div class="div1">
|
|
<h2><a id="infoset-conformance" name="infoset-conformance"></a>A
|
|
XML Information Set Conformance</h2>
|
|
<p>This specification conforms to the XML Information Set <a href=
|
|
"#xml-infoset">[Infoset]</a>. The following information items
|
|
<strong>must</strong> be exposed by the infoset producer to
|
|
construct a data model unless they are explicitly identified as
|
|
optional:</p>
|
|
<ul>
|
|
<li>
|
|
<p>The <b class="info-item">Document Information Item</b> with
|
|
<b class="infoset-property">[base URI]</b>, <b class=
|
|
"infoset-property">[children]</b>, and, optionally, <b class=
|
|
"infoset-property">[unparsed entities]</b> properties. If the
|
|
<b class="infoset-property">[unparsed entities]</b> property is
|
|
supported, the <b class="info-item">Unparsed Entity Information
|
|
Items</b> must also be supported.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="info-item">Element Information Items</b> with
|
|
<b class="infoset-property">[base URI]</b>, <b class=
|
|
"infoset-property">[children]</b>, <b class=
|
|
"infoset-property">[attributes]</b>, <b class=
|
|
"infoset-property">[in-scope namespaces]</b>, <b class=
|
|
"infoset-property">[prefix]</b>, <b class="infoset-property">[local
|
|
name]</b>, <b class="infoset-property">[namespace name]</b>,
|
|
<b class="infoset-property">[parent]</b> properties.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="info-item">Attribute Information Items</b> with
|
|
<b class="infoset-property">[namespace name]</b>, <b class=
|
|
"infoset-property">[prefix]</b>, <b class="infoset-property">[local
|
|
name]</b>, <b class="infoset-property">[normalized value]</b>,
|
|
<b class="infoset-property">[attribute type]</b>, and <b class=
|
|
"infoset-property">[owner element]</b> properties.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="info-item">Character Information Items</b> with
|
|
<b class="infoset-property">[character code]</b>, <b class=
|
|
"infoset-property">[parent]</b>, and, optionally, <b class=
|
|
"infoset-property">[element content whitespace]</b> properties.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="info-item">Processing Instruction Information
|
|
Items</b> with <b class="infoset-property">[base URI]</b>,
|
|
<b class="infoset-property">[target]</b>, <b class=
|
|
"infoset-property">[content]</b> and <b class=
|
|
"infoset-property">[parent]</b> properties.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="info-item">Comment Information Items</b> with
|
|
<b class="infoset-property">[content]</b> and <b class=
|
|
"infoset-property">[parent]</b> properties.</p>
|
|
</li>
|
|
<li>
|
|
<p><b class="info-item">Namespace Information Items</b> with
|
|
<b class="infoset-property">[prefix]</b> and <b class=
|
|
"infoset-property">[namespace name]</b> properties.</p>
|
|
</li>
|
|
</ul>
|
|
<p>Other information items and properties made available by the
|
|
Infoset processor are ignored. In addition to the properties above,
|
|
the following PSVI properties are required on <b class=
|
|
"info-item">Element Information Items</b> and <b class=
|
|
"info-item">Attribute Information Items</b> if the data model is
|
|
constructed from a PSVI:</p>
|
|
<ul>
|
|
<li>
|
|
<p><b class="infoset-property">[validity]</b>, <b class=
|
|
"infoset-property">[validation attempted]</b>, <b class=
|
|
"infoset-property">[type definition]</b>, <b class=
|
|
"infoset-property">[type definition namespace]</b>, <b class=
|
|
"infoset-property">[type definition name]</b>, <b class=
|
|
"infoset-property">[type definition anonymous]</b>, <b class=
|
|
"infoset-property">[nil]</b>, <b class="infoset-property">[member
|
|
type definition]</b>, <b class="infoset-property">[member type
|
|
definition namespace]</b>, <b class="infoset-property">[member type
|
|
definition name]</b>, <b class="infoset-property">[member type
|
|
definition anonymous]</b> and <b class="infoset-property">[schema
|
|
normalized value]</b>.</p>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="references" name="references"></a>B References</h2>
|
|
<div class="div2">
|
|
<h3><a id="normative-references" name=
|
|
"normative-references"></a>B.1 Normative References</h3>
|
|
<dl>
|
|
<dt class="label"><span><a id="xml-infoset" name=
|
|
"xml-infoset"></a>Infoset</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xml-infoset/"><cite>XML
|
|
Information Set (Second Edition)</cite></a>, John Cowan and Richard
|
|
Tobin, Editors. World Wide Web Consortium, 04 Feb 2004.
|
|
This version is
|
|
http://www.w3.org/TR/2004/REC-xml-infoset-20040204/. The <a href=
|
|
"http://www.w3.org/TR/xml-infoset/">latest version</a> is available
|
|
at http://www.w3.org/TR/xml-infoset/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xml-names" name=
|
|
"xml-names"></a>Namespaces in XML</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xml-names/"><cite>Namespaces in
|
|
XML 1.0 (Second Edition)</cite></a>, Richard Tobin, Dave Hollander,
|
|
Tim Bray, and Andrew Layman, Editors. World Wide Web Consortium,
|
|
16 Aug 2006. This version is
|
|
http://www.w3.org/TR/2006/REC-xml-names-20060816/. The <a href=
|
|
"http://www.w3.org/TR/xml-names/">latest version</a> is available
|
|
at http://www.w3.org/TR/xml-names/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xml-names11" name=
|
|
"xml-names11"></a>Namespaces in XML 1.1</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xml-names11/"><cite>Namespaces
|
|
in XML 1.1 (Second Edition)</cite></a>, Andrew Layman, Dave
|
|
Hollander, Richard Tobin, and Tim Bray, Editors. World Wide Web
|
|
Consortium, 16 Aug 2006. This version is
|
|
http://www.w3.org/TR/2006/REC-xml-names11-20060816. The <a href=
|
|
"http://www.w3.org/TR/xml-names11/">latest version</a> is available
|
|
at http://www.w3.org/TR/xml-names11/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xml-id" name=
|
|
"xml-id"></a>xml:id</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xml-id/"><cite>xml:id Version
|
|
1.0</cite></a>, Jonathan Marsh, Daniel Veillard, and Norman Walsh,
|
|
Editors. World Wide Web Consortium, 09 Sep 2005. This
|
|
version is http://www.w3.org/TR/2005/REC-xml-id-20050909/. The
|
|
<a href="http://www.w3.org/TR/xml-id/">latest version</a> is
|
|
available at http://www.w3.org/TR/xml-id/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xpath20" name="xpath20"></a>XML Path
|
|
Language (XPath) 2.0 (Second Edition)</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xpath20/"><cite>XML Path
|
|
Language (XPath) 2.0 (Second Edition)</cite></a>, Don Chamberlin,
|
|
Jonathan Robie, Anders Berglund, Scott Boag, <em>et. al.</em>,
|
|
Editors. World Wide Web Consortium, 14 December 2010. This version
|
|
is http://www.w3.org/TR/2010/REC-xpath20-20101214/. The <a href=
|
|
"http://www.w3.org/TR/xpath20/">latest version</a> is available at
|
|
http://www.w3.org/TR/xpath20/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xpath-functions" name=
|
|
"xpath-functions"></a>XQuery 1.0 and XPath 2.0 Functions and
|
|
Operators (Second Edition)</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xpath-functions/"><cite>XQuery
|
|
1.0 and XPath 2.0 Functions and Operators (Second
|
|
Edition)</cite></a>, Ashok Malhotra, Jim Melton, Norman Walsh, and
|
|
Michael Kay, Editors. World Wide Web Consortium, 14 December 2010.
|
|
This version is
|
|
http://www.w3.org/TR/2010/REC-xpath-functions-20101214/. The
|
|
<a href="http://www.w3.org/TR/xpath-functions/">latest version</a>
|
|
is available at http://www.w3.org/TR/xpath-functions/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xmlschema-1" name=
|
|
"xmlschema-1"></a>Schema Part 1</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xmlschema-1/"><cite>XML Schema
|
|
Part 1: Structures Second Edition</cite></a>, Henry S. Thompson,
|
|
Murray Maloney, David Beech, and Noah Mendelsohn, Editors. World
|
|
Wide Web Consortium, 28 Oct 2004. This version is
|
|
http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/. The <a href=
|
|
"http://www.w3.org/TR/xmlschema-1/">latest version</a> is available
|
|
at http://www.w3.org/TR/xmlschema-1/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xmlschema-2" name=
|
|
"xmlschema-2"></a>Schema Part 2</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xmlschema-2/"><cite>XML Schema
|
|
Part 2: Datatypes Second Edition</cite></a>, Paul V. Biron and
|
|
Ashok Malhotra, Editors. World Wide Web Consortium,
|
|
28 Oct 2004. This version is
|
|
http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/. The <a href=
|
|
"http://www.w3.org/TR/xmlschema-2/">latest version</a> is available
|
|
at http://www.w3.org/TR/xmlschema-2/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xslt-xquery-serialization" name=
|
|
"xslt-xquery-serialization"></a>XSLT 2.0 and XQuery 1.0
|
|
Serialization (Second Edition)</span></dt>
|
|
<dd>
|
|
<div><a href=
|
|
"http://www.w3.org/TR/xslt-xquery-serialization/"><cite>XSLT 2.0
|
|
and XQuery 1.0 Serialization (Second Edition)</cite></a>, Scott
|
|
Boag, Michael Kay, Joanne Tong, Norman Walsh, and Henry Zongaro,
|
|
Editors. World Wide Web Consortium, 14 December 2010. This version
|
|
is
|
|
http://www.w3.org/TR/2010/REC-xslt-xquery-serialization-20101214/.
|
|
The <a href=
|
|
"http://www.w3.org/TR/xslt-xquery-serialization/">latest
|
|
version</a> is available at
|
|
http://www.w3.org/TR/xslt-xquery-serialization/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xquery-semantics" name=
|
|
"xquery-semantics"></a>XQuery 1.0 and XPath 2.0 Formal Semantics
|
|
(Second Edition)</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xquery-semantics/"><cite>XQuery
|
|
1.0 and XPath 2.0 Formal Semantics (Second Edition)</cite></a>,
|
|
Jérôme Siméon, Michael Dyck, Denise Draper, Peter Frankhauser,
|
|
<em>et. al.</em>, Editors. World Wide Web Consortium, 14 December
|
|
2010. This version is
|
|
http://www.w3.org/TR/2010/REC-xquery-semantics-20101214/. The
|
|
<a href="http://www.w3.org/TR/xquery-semantics/">latest version</a>
|
|
is available at http://www.w3.org/TR/xquery-semantics/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="RFC2119" name="RFC2119"></a>RFC
|
|
2119</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.ietf.org/rfc/rfc2119.txt"><cite>Key words
|
|
for use in RFCs to Indicate Requirement Levels</cite></a>, S.
|
|
Bradner. Network Working Group, IETF, Mar 1997.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="RFC3986" name="RFC3986"></a>RFC
|
|
3986</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.ietf.org/rfc/rfc3986.txt"><cite>Uniform
|
|
Resource Identifier (URI): Generic Syntax</cite></a>, T.
|
|
Berners-Lee, R. Fielding, and L. Masinter. Network Working Group,
|
|
IETF, Jan 2005.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="RFC3987" name="RFC3987"></a>RFC
|
|
2987</span></dt>
|
|
<dd>
|
|
<div><a href=
|
|
"http://www.ietf.org/rfc/rfc3987.txt"><cite>Internationalized
|
|
Resource Identifiers (IRIs)</cite></a>, M. Duerst and M. Suignard.
|
|
Network Working Group, IETF, Jan 2005.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="charmod" name=
|
|
"charmod"></a>Character Model</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/charmod/"><cite>Character Model
|
|
for the World Wide Web 1.0: Fundamentals</cite></a>, François
|
|
Yergeau, Richard Ishida, Martin J. Dürst, <em>et. al.</em>,
|
|
Editors. World Wide Web Consortium, 15 Feb 2005. This
|
|
version is http://www.w3.org/TR/2005/REC-charmod-20050215/. The
|
|
<a href="http://www.w3.org/TR/charmod/">latest version</a> is
|
|
available at http://www.w3.org/TR/charmod/.</div>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="informative-references" name=
|
|
"informative-references"></a>B.2 Other References</h3>
|
|
<dl>
|
|
<dt class="label"><span><a id="XQDM00" name="XQDM00"></a>XML Query
|
|
Data Model</span></dt>
|
|
<dd>
|
|
<div><a href=
|
|
"http://www.w3.org/TR/2001/WD-query-datamodel-20010215/"><cite>XML
|
|
Query Data Model</cite></a>, Mary Fernández and Jonathan Robie,
|
|
Editors. World Wide Web Consortium, 15 Feb 2001.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xmlbase" name="xmlbase"></a>XML
|
|
Base</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xmlbase/"><cite>XML Base (Second
|
|
Edition)</cite></a>, Richard Tobin and Jonathan Marsh, Editors.
|
|
World Wide Web Consortium, 28 Jan 2009. This version is
|
|
http://www.w3.org/TR/2009/REC-xmlbase-20090128/. The <a href=
|
|
"http://www.w3.org/TR/xmlbase/">latest version</a> is available at
|
|
http://www.w3.org/TR/xmlbase/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xpath" name="xpath"></a>XPath
|
|
1.0</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xpath/"><cite>XML Path Language
|
|
(XPath) Version 1.0</cite></a>, James Clark and Steven DeRose,
|
|
Editors. World Wide Web Consortium, 16 Nov 1999. This
|
|
version is http://www.w3.org/TR/1999/REC-xpath-19991116/. The
|
|
<a href="http://www.w3.org/TR/xpath/">latest version</a> is
|
|
available at http://www.w3.org/TR/xpath/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xpath20req" name=
|
|
"xpath20req"></a>XPath 2.0 Requirements</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xpath20req/"><cite>XPath
|
|
Requirements Version 2.0</cite></a>, Mary Fernández, K Karun, and
|
|
Mark Scardina, Editors. World Wide Web Consortium,
|
|
3 Jun 2005. This version is
|
|
http://www.w3.org/TR/2005/WD-xpath20req-20050603/. The <a href=
|
|
"http://www.w3.org/TR/xpath20req/">latest version</a> is available
|
|
at http://www.w3.org/TR/xpath20req/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xslt20" name="xslt20"></a>XSLT 2.0
|
|
(Second Edition)</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xslt20/"><cite>XSL
|
|
Transformations (XSLT) Version 2.0 (Second Edition)</cite></a>
|
|
(planned), Michael Kay, Editor. World Wide Web Consortium, 14
|
|
December 2010. The <a href="http://www.w3.org/TR/xslt20/">latest
|
|
version</a> is available at http://www.w3.org/TR/xslt20/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="XQWG" name="XQWG"></a>XML Query
|
|
Working Group</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/XML/Query/"><cite>XML Query Working
|
|
Group</cite></a>, World Wide Web Consortium. Home page:
|
|
http://www.w3.org/XML/Query</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="XSLWG" name="XSLWG"></a>XSL Working
|
|
Group</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/Style/XSL/"><cite>XSL Working
|
|
Group</cite></a>, World Wide Web Consortium. Home page:
|
|
http://www.w3.org/Style/XSL/</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xquery" name=
|
|
"xquery"></a>XQuery</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xquery/"><cite>XQuery 1.0: An
|
|
XML Query Language (Second Edition)</cite></a>, Don Chamberlin,
|
|
Jonathan Robie, Anders Berglund, Scott Boag, <em>et. al.</em>,
|
|
Editors. World Wide Web Consortium, 14 December 2010. This version
|
|
is http://www.w3.org/TR/2010/REC-xquery-20101214/. The <a href=
|
|
"http://www.w3.org/TR/xquery/">latest version</a> is available at
|
|
http://www.w3.org/TR/xquery/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="xquery-requirements" name=
|
|
"xquery-requirements"></a>XML Query Requirements</span></dt>
|
|
<dd>
|
|
<div><a href="http://www.w3.org/TR/xquery-requirements/"><cite>XML
|
|
Query (XQuery) Requirements</cite></a>, Don Chamberlin, Peter
|
|
Fankhauser, Massimo Marchiori, and Jonathan Robie, Editors. World
|
|
Wide Web Consortium, 3 Jun 2005. This version is
|
|
http://www.w3.org/TR/2005/WD-xquery-requirements-20050603/. The
|
|
<a href="http://www.w3.org/TR/xquery-requirements/">latest
|
|
version</a> is available at
|
|
http://www.w3.org/TR/xquery-requirements/.</div>
|
|
</dd>
|
|
<dt class="label"><span><a id="ISO8601" name="ISO8601"></a>ISO
|
|
8601</span></dt>
|
|
<dd>
|
|
<div>ISO (International Organization for Standardization).
|
|
<em>Representations of dates and times, 2000-08-03.</em> Available
|
|
from: <a href="http://www.iso.org/">http://www.iso.org/</a></div>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="xdtschema" name="xdtschema"></a>C Schema for the
|
|
Extended XS Namespace</h2>
|
|
<p>The following schema defines the additional types in the
|
|
<code>xs:</code> namespace identified by this document.</p>
|
|
<p>You can retrieve the normative schema for this namespace from
|
|
<a href=
|
|
"http://www.w3.org/2007/xpath-datatypes">http://www.w3.org/2007/xpath-datatypes</a>.</p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version='1.0'?>
|
|
|
|
<!--
|
|
This is an XML Schema document for the XML Schema namespace,
|
|
http://www.w3.org/2001/XMLSchema, that has been extended to
|
|
include definitions for the xs:dayTimeDuration and
|
|
xs:yearMonthDuration types.
|
|
|
|
The other xs: types defined in XDM are not described here because
|
|
xs:untyped and xs:anyAtomicType are special types that cannot be
|
|
properly defined using XML Schema itself and because xs:untypedAtomic
|
|
should not be used for validation, but only used for unvalidated
|
|
elements and attributes.
|
|
-->
|
|
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
targetNamespace="http://www.w3.org/2001/XMLSchema"
|
|
elementFormDefault="qualified"
|
|
xml:lang="en">
|
|
|
|
<xs:include schemaLocation="http://www.w3.org/2001/XMLSchema.xsd"/>
|
|
|
|
<xs:simpleType name='dayTimeDuration'>
|
|
<xs:annotation>
|
|
<xs:documentation
|
|
source="http://www.w3.org/TR/xpath-datamodel#dayTimeDuration"/>
|
|
</xs:annotation>
|
|
<xs:restriction base='xs:duration'>
|
|
<xs:pattern value="[^YM]*[DT].*"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name='yearMonthDuration'>
|
|
<xs:annotation>
|
|
<xs:documentation
|
|
source="http://www.w3.org/TR/xpath-datamodel#yearMonthDuration"/>
|
|
</xs:annotation>
|
|
<xs:restriction base='xs:duration'>
|
|
<xs:pattern value="[^DT]*"/>
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
</xs:schema>
|
|
</pre></div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="glossary" name="glossary"></a>D Glossary
|
|
(Non-Normative)</h2>
|
|
<table summary="Glossary" width="100%">
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-anonymous-type-name">anonymous type name</a></td>
|
|
<td valign="top">
|
|
<p>An <b>anonymous type name</b> is an implementation dependent,
|
|
unique type name provided by the processor for every anonymous type
|
|
declared in the schemas available.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href="#dt-atomic-type">atomic
|
|
type</a></td>
|
|
<td valign="top">
|
|
<p>An <b>atomic type</b> is a <a title="primitive simple type"
|
|
href="#dt-primitive-simple-type">primitive simple type</a> or a
|
|
type derived by restriction from another atomic type.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href="#dt-atomic-value">atomic
|
|
value</a></td>
|
|
<td valign="top">
|
|
<p>An <b>atomic value</b> is a value in the value space of an
|
|
<a title="atomic type" href="#dt-atomic-type">atomic type</a> and
|
|
is labeled with the name of that atomic type.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-document">document</a></td>
|
|
<td valign="top">
|
|
<p>A tree whose root node is a Document Node is referred to as a
|
|
<b>document</b>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href="#dt-document-order">document
|
|
order</a></td>
|
|
<td valign="top">
|
|
<p>A <b>document order</b> is defined among all the nodes
|
|
accessible during a given query or transformation. Document order
|
|
is a total ordering, although the relative order of some nodes is
|
|
implementation-dependent. Informally, document order is the order
|
|
in which nodes appear in the XML serialization of a document.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-expanded-qname">expanded-QName</a></td>
|
|
<td valign="top">
|
|
<p>An <b>expanded-QName</b> is a set of three values consisting of
|
|
a possibly empty prefix, a possibly empty namespace URI, and a
|
|
local name.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-fragment">fragment</a></td>
|
|
<td valign="top">
|
|
<p>A tree whose root node is not a Document Node is referred to as
|
|
a <b>fragment</b>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-implementation-defined">implementation defined</a></td>
|
|
<td valign="top">
|
|
<p><b>Implementation-defined</b> indicates an aspect that may
|
|
differ between implementations, but must be specified by the
|
|
implementor for each particular implementation.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-implementation-dependent">implementation dependent</a></td>
|
|
<td valign="top">
|
|
<p><b>Implementation-dependent</b> indicates an aspect that may
|
|
differ between implementations, is not specified by this or any W3C
|
|
specification, and is not required to be specified by the
|
|
implementor for any particular implementation.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-incompletely-validated">incompletely validated</a></td>
|
|
<td valign="top">
|
|
<p>An <b>incompletely validated</b> document is an XML document
|
|
that has a corresponding schema but whose schema-validity
|
|
assessment has resulted in one or more element or attribute
|
|
information items being assigned values other than 'valid' for the
|
|
<b class="infoset-property">[validity]</b> property in the
|
|
PSVI.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href="#dt-instance">instance of the
|
|
data model</a></td>
|
|
<td valign="top">
|
|
<p>Every <b>instance of the data model</b> is a <a title="sequence"
|
|
href="#dt-sequence">sequence</a>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href="#dt-item">item</a></td>
|
|
<td valign="top">
|
|
<p>An <b>item</b> is either a <a title="Node" href=
|
|
"#dt-node">node</a> or an <a title="atomic value" href=
|
|
"#dt-atomic-value">atomic value</a></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href="#dt-root-node">item</a></td>
|
|
<td valign="top">
|
|
<p>The topmost node of a tree is called the <b>root node</b>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href="#dt-node">Node</a></td>
|
|
<td valign="top">
|
|
<p>There are seven kinds of <b>Nodes</b> in the data model:
|
|
<a href="#DocumentNode">document</a>, <a href=
|
|
"#ElementNode">element</a>, <a href="#AttributeNode">attribute</a>,
|
|
<a href="#TextNode">text</a>, <a href=
|
|
"#NamespaceNode">namespace</a>, <a href=
|
|
"#ProcessingInstructionNode">processing instruction</a>, and
|
|
<a href="#CommentNode">comment</a>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-primitive-simple-type">primitive simple type</a></td>
|
|
<td valign="top">
|
|
<p>There are 21 <b>primitive simple types</b>: the 19 defined in
|
|
<a href=
|
|
"http://www.w3.org/TR/xmlschema-2/#built-in-primitive-datatypes">Section
|
|
3.2 Primitive datatypes</a><sup><small>XS2</small></sup> of
|
|
<a href="#xmlschema-2">[Schema Part 2]</a> and
|
|
<code>xs:untypedAtomic</code> and <code>xs:anyAtomicType</code></p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-sequence">sequence</a></td>
|
|
<td valign="top">
|
|
<p>A <b>sequence</b> is an ordered collection of zero or more
|
|
<a title="item" href="#dt-item">items</a>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href="#dt-stable">stable</a></td>
|
|
<td valign="top">
|
|
<p>Document order is <b>stable</b>, which means that the relative
|
|
order of two nodes will not change during the processing of a given
|
|
query or transformation, even if this order is
|
|
implementation-dependent.</p>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td valign="top" width="20%"><a href=
|
|
"#dt-undefined">undefined</a></td>
|
|
<td valign="top">
|
|
<p>In certain situations a value is said to be <b>undefined</b>
|
|
(for example, the typed value of an element node). This term
|
|
indicates that the property in question has no value and that any
|
|
attempt to use its value results in an error.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="example" name="example"></a>E Example
|
|
(Non-Normative)</h2>
|
|
<p>The following XML document is used to illustrate the information
|
|
contained in a data model:</p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<?xml-stylesheet type="text/xsl" href="dm-example.xsl"?>
|
|
<catalog xmlns="http://www.example.com/catalog"
|
|
xmlns:html="http://www.w3.org/1999/xhtml"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
xsi:schemaLocation="http://www.example.com/catalog
|
|
dm-example.xsd"
|
|
xml:lang="en"
|
|
version="0.1">
|
|
|
|
<!-- This example is for data model illustration only.
|
|
It does not demonstrate good schema design. -->
|
|
|
|
<tshirt code="T1534017" label=" Staind : Been Awhile "
|
|
xlink:href="http://example.com/0,,1655091,00.html"
|
|
sizes="M L XL">
|
|
<title> Staind: Been Awhile Tee Black (1-sided) </title>
|
|
<description>
|
|
<html:p>
|
|
Lyrics from the hit song 'It's Been Awhile'
|
|
are shown in white, beneath the large
|
|
'Flock &amp; Weld' Staind logo.
|
|
</html:p>
|
|
</description>
|
|
<price> 25.00 </price>
|
|
</tshirt>
|
|
|
|
<album code="A1481344" label=" Staind : Its Been A While "
|
|
formats="CD">
|
|
<title> It's Been A While </title>
|
|
<description xsi:nil="true" />
|
|
<price currency="USD"> 10.99 </price>
|
|
<artist> Staind </artist>
|
|
</album>
|
|
|
|
</catalog>
|
|
</pre></div>
|
|
<p>The document is associated with the URI
|
|
"http://www.example.com/catalog.xml", and is valid with respect to
|
|
the following XML schema:</p>
|
|
<div class="exampleInner">
|
|
<pre>
|
|
<?xml version="1.0"?>
|
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
xmlns:cat="http://www.example.com/catalog"
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
targetNamespace="http://www.example.com/catalog"
|
|
elementFormDefault="qualified">
|
|
|
|
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
|
|
schemaLocation="http://www.w3.org/2001/xml.xsd" />
|
|
|
|
<xs:import namespace="http://www.w3.org/1999/xlink"
|
|
schemaLocation="http://www.cs.rpi.edu/~puninj/XGMML/xlinks-2001.xsd" />
|
|
|
|
<xs:element name="catalog">
|
|
<xs:complexType>
|
|
<xs:sequence>
|
|
<xs:element ref="cat:_item" maxOccurs="unbounded" />
|
|
</xs:sequence>
|
|
<xs:attribute name="version" type="xs:string" fixed="0.1" use="required" />
|
|
<xs:attribute ref="xml:base" />
|
|
<xs:attribute ref="xml:lang" />
|
|
</xs:complexType>
|
|
</xs:element>
|
|
|
|
<xs:element name="_item" type="cat:itemType" abstract="true" />
|
|
|
|
<xs:complexType name="itemType">
|
|
<xs:sequence>
|
|
<xs:element name="title" type="xs:token" />
|
|
<xs:element name="description" type="cat:description" nillable="true" />
|
|
<xs:element name="price" type="cat:price" maxOccurs="unbounded" />
|
|
</xs:sequence>
|
|
<xs:attribute name="label" type="xs:token" />
|
|
<xs:attribute name="code" type="xs:ID" use="required" />
|
|
<xs:attributeGroup ref="xlink:simpleLink" />
|
|
</xs:complexType>
|
|
|
|
<xs:element name="tshirt" type="cat:tshirtType" substitutionGroup="cat:_item" />
|
|
|
|
<xs:complexType name="tshirtType">
|
|
<xs:complexContent>
|
|
<xs:extension base="cat:itemType">
|
|
<xs:attribute name="sizes" type="cat:clothesSizes" use="required" />
|
|
<xs:attribute ref="xml:lang" use="optional"/>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
|
|
<xs:simpleType name="clothesSizes">
|
|
<xs:union memberTypes="cat:sizeList">
|
|
<xs:simpleType>
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="oneSize" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
</xs:union>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="sizeList">
|
|
<xs:restriction>
|
|
<xs:simpleType>
|
|
<xs:list itemType="cat:clothesSize" />
|
|
</xs:simpleType>
|
|
<xs:minLength value="1" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="clothesSize">
|
|
<xs:union memberTypes="cat:numberedSize cat:categorySize" />
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="numberedSize">
|
|
<xs:restriction base="xs:integer">
|
|
<xs:enumeration value="4" />
|
|
<xs:enumeration value="6" />
|
|
<xs:enumeration value="8" />
|
|
<xs:enumeration value="10" />
|
|
<xs:enumeration value="12" />
|
|
<xs:enumeration value="14" />
|
|
<xs:enumeration value="16" />
|
|
<xs:enumeration value="18" />
|
|
<xs:enumeration value="20" />
|
|
<xs:enumeration value="22" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="categorySize">
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="XS" />
|
|
<xs:enumeration value="S" />
|
|
<xs:enumeration value="M" />
|
|
<xs:enumeration value="L" />
|
|
<xs:enumeration value="XL" />
|
|
<xs:enumeration value="XXL" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:element name="album" type="cat:albumType" substitutionGroup="cat:_item" />
|
|
|
|
<xs:complexType name="albumType">
|
|
<xs:complexContent>
|
|
<xs:extension base="cat:itemType">
|
|
<xs:sequence>
|
|
<xs:element name="artist" type="xs:string" />
|
|
</xs:sequence>
|
|
<xs:attribute name="formats" type="cat:formatsType" use="required" />
|
|
<xs:attribute ref="xml:lang" use="optional"/>
|
|
</xs:extension>
|
|
</xs:complexContent>
|
|
</xs:complexType>
|
|
|
|
<xs:simpleType name="formatsType">
|
|
<xs:list itemType="cat:formatType" />
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="formatType">
|
|
<xs:restriction base="xs:token">
|
|
<xs:enumeration value="CD" />
|
|
<xs:enumeration value="MiniDisc" />
|
|
<xs:enumeration value="tape" />
|
|
<xs:enumeration value="vinyl" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:complexType name="description" mixed="true">
|
|
<xs:sequence>
|
|
<xs:any namespace="http://www.w3.org/1999/xhtml" processContents="lax"
|
|
minOccurs="0" maxOccurs="unbounded" />
|
|
</xs:sequence>
|
|
<xs:attribute ref="xml:lang" use="optional"/>
|
|
</xs:complexType>
|
|
|
|
<xs:complexType name="price">
|
|
<xs:simpleContent>
|
|
<xs:extension base="cat:monetaryAmount">
|
|
<xs:attribute name="currency" type="cat:currencyType" default="USD" />
|
|
</xs:extension>
|
|
</xs:simpleContent>
|
|
</xs:complexType>
|
|
|
|
<xs:simpleType name="currencyType">
|
|
<xs:restriction base="xs:token">
|
|
<xs:pattern value="[A-Z]{3}" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
<xs:simpleType name="monetaryAmount">
|
|
<xs:restriction base="xs:decimal">
|
|
<xs:fractionDigits value="3" />
|
|
<xs:pattern value="\d+(\.\d{2,3})?" />
|
|
</xs:restriction>
|
|
</xs:simpleType>
|
|
|
|
</xs:schema>
|
|
</pre></div>
|
|
<p>The schema is associated with the URI
|
|
"http://www.example.com/dm-example.xsd".</p>
|
|
<p>This example exposes the data model for a document that has an
|
|
associated schema and has been validated successfully against it.
|
|
In general, an XML Schema is not required, that is, the data model
|
|
can represent a schemaless, well-formed XML document with the rules
|
|
described in <a href="#types"><b>2.6 Types</b></a>.</p>
|
|
<p>The XML document is represented by the nodes described below.
|
|
The value <em>D1</em> represents a Document Node; the values
|
|
<em>E1, E2, etc.</em> represent Element Nodes; the values <em>A1,
|
|
A2, etc.</em> represent Attribute Nodes; the values <em>N1, N2,
|
|
etc.</em> represent Namespace Nodes; the values <em>P1, P2,
|
|
etc.</em> represent Processing Instruction Nodes; the values
|
|
<em>T1, T2, etc.</em> represent Text Nodes.</p>
|
|
<p>For brevity:</p>
|
|
<ul>
|
|
<li>
|
|
<p>Text Nodes in the data model that contain only white space are
|
|
not shown.</p>
|
|
</li>
|
|
<li>
|
|
<p>Literal strings are shown in quotes without the
|
|
<code>xs:string()</code> constructor</p>
|
|
</li>
|
|
<li>
|
|
<p>Literal decimals are shown without the <code>xs:decimal()</code>
|
|
constructor</p>
|
|
</li>
|
|
<li>
|
|
<p>Nodes are referred to using the syntax <code>[nodeID]</code></p>
|
|
</li>
|
|
<li>
|
|
<p>xs:QNames are used with the following prefixes bindings:</p>
|
|
<table border="0" summary="Namespace prefixes">
|
|
<tbody>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">xs</td>
|
|
<td rowspan="1" colspan="1">http://www.w3.org/2001/XMLSchema</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">xsi</td>
|
|
<td rowspan="1" colspan="1">
|
|
http://www.w3.org/2001/XMLSchema-instance</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">cat</td>
|
|
<td rowspan="1" colspan="1">http://www.example.com/catalog</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">xlink</td>
|
|
<td rowspan="1" colspan="1">http://www.w3.org/1999/xlink</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">html</td>
|
|
<td rowspan="1" colspan="1">http://www.w3.org/1999/xhtml</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">anon</td>
|
|
<td rowspan="1" colspan="1">An implementation-dependent prefix
|
|
associated with <a title="anonymous type name" href=
|
|
"#dt-anonymous-type-name">anonymous type names</a></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</li>
|
|
<li>
|
|
<p>The abbreviation "<code>\n</code>" is used in string literals to
|
|
represent a newline character; this isn't supported in XPath, but
|
|
it makes this presentation clearer.</p>
|
|
</li>
|
|
<li>
|
|
<p>Accessors that return the empty sequence have been omitted.</p>
|
|
</li>
|
|
<li>
|
|
<p>To simplify the presentation, we’re assuming an implementation
|
|
that does not expose the namespace axis. Therefore, Namespace Nodes
|
|
are shared across multiple elements. See <a href=
|
|
"#NamespaceNode"><b>6.4 Namespace Nodes</b></a>.</p>
|
|
</li>
|
|
</ul>
|
|
<table border="0" cellspacing="0" width="80%" summary=
|
|
"Datamodel Example">
|
|
<col width="150" span="1" />
|
|
<tbody>
|
|
<tr id="ex-D1" class="document">
|
|
<td colspan="3" rowspan="1">// Document node D1</td>
|
|
</tr>
|
|
<tr class="document">
|
|
<td rowspan="1" colspan="1">dm:base-uri(D1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="document">
|
|
<td rowspan="1" colspan="1">dm:node-kind(D1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"document"</td>
|
|
</tr>
|
|
<tr class="document">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(D1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"  Staind:  Been 
|
|
Awhile  Tee  Black  (1-sided)  \n   
|
|
        Lyrics  from  the 
|
|
hit  song  'It's  Been  Awhile'\n   
|
|
        are  shown  in 
|
|
white,  beneath  the  large\n     
|
|
      'Flock  &  Weld' 
|
|
Staind  logo.\n          25.00 
|
|
  It's  Been  A  While    10.99 
|
|
  Staind  "</td>
|
|
</tr>
|
|
<tr class="document">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(D1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic("  Staind:  Been  Awhile 
|
|
Tee  Black  (1-sided)  \n       
|
|
    Lyrics  from  the  hit 
|
|
song  'It's  Been  Awhile'\n     
|
|
      are  shown  in  white, 
|
|
beneath  the  large\n         
|
|
  'Flock  &  Weld'  Staind 
|
|
logo.\n          25.00   
|
|
It's  Been  A  While    10.99   
|
|
Staind  ")</td>
|
|
</tr>
|
|
<tr class="document">
|
|
<td rowspan="1" colspan="1">dm:children(D1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E1">E1</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-N1" class="namespace">
|
|
<td colspan="3" rowspan="1">// Namespace node N1</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-kind(N1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"namespace"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-name(N1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "xml")</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(N1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">
|
|
"http://www.w3.org/XML/1998/namespace"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(N1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">
|
|
"http://www.w3.org/XML/1998/namespace"</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-N2" class="namespace">
|
|
<td colspan="3" rowspan="1">// Namespace node N2</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-kind(N2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"namespace"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-name(N2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "html")</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(N2)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"http://www.w3.org/1999/xhtml"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(N2)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"http://www.w3.org/1999/xhtml"</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-N3" class="namespace">
|
|
<td colspan="3" rowspan="1">// Namespace node N3</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-kind(N3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"namespace"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-name(N3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(N3)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"http://www.example.com/catalog"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(N3)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"http://www.example.com/catalog"</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-N4" class="namespace">
|
|
<td colspan="3" rowspan="1">// Namespace node N4</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-kind(N4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"namespace"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-name(N4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "xlink")</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(N4)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"http://www.w3.org/1999/xlink"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(N4)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"http://www.w3.org/1999/xlink"</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-N5" class="namespace">
|
|
<td colspan="3" rowspan="1">// Namespace node N5</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-kind(N5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"namespace"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td rowspan="1" colspan="1">dm:node-name(N5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "xsi")</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(N5)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">
|
|
"http://www.w3.org/2001/XMLSchema-instance"</td>
|
|
</tr>
|
|
<tr class="namespace">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(N5)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">
|
|
"http://www.w3.org/2001/XMLSchema-instance"</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-P1" class="processing-instruction">
|
|
<td colspan="3" rowspan="1">// Processing Instruction node P1</td>
|
|
</tr>
|
|
<tr class="processing-instruction">
|
|
<td rowspan="1" colspan="1">dm:base-uri(P1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="processing-instruction">
|
|
<td rowspan="1" colspan="1">dm:node-kind(P1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"processing-instruction"</td>
|
|
</tr>
|
|
<tr class="processing-instruction">
|
|
<td rowspan="1" colspan="1">dm:node-name(P1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "xml-stylesheet")</td>
|
|
</tr>
|
|
<tr class="processing-instruction">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(P1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"type="text/xsl" 
|
|
href="dm-example.xsl""</td>
|
|
</tr>
|
|
<tr class="processing-instruction">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(P1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"type="text/xsl" 
|
|
href="dm-example.xsl""</td>
|
|
</tr>
|
|
<tr class="processing-instruction">
|
|
<td rowspan="1" colspan="1">dm:parent(P1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-D1">D1</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E1" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E1</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "catalog")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"  Staind:  Been 
|
|
Awhile  Tee  Black  (1-sided)  \n   
|
|
        Lyrics  from  the 
|
|
hit  song  'It's  Been  Awhile'\n   
|
|
        are  shown  in 
|
|
white,  beneath  the  large\n     
|
|
      'Flock  &  Weld' 
|
|
Staind  logo.\n          25.00 
|
|
  It's  Been  A  While    10.99 
|
|
  Staind  "</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">fn:error()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">anon:TYP000001</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-D1">D1</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E2">E2</a>], [<a href=
|
|
"#ex-E7">E7</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-A1">A1</a>], [<a href=
|
|
"#ex-A2">A2</a>], [<a href="#ex-A3">A3</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A1" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A1</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.w3.org/2001/XMLSchema-instance",
|
|
"xsi:schemaLocation")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"http://www.example.com/catalog 
|
|
                 
|
|
                 
|
|
                 
|
|
    dm-example.xsd"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
(xs:anyURI("http://www.example.com/catalog"),
|
|
xs:anyURI("catalog.xsd"))</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">anon:TYP000002</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E1">E1</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A2" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A2</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.w3.org/XML/1998/namespace", "xml:lang")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A2)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"en"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"en"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:NMTOKEN</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E1">E1</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A3" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A3</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "version")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A3)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"0.1"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"0.1"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:string</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E1">E1</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-C1" class="comment">
|
|
<td colspan="3" rowspan="1">// Comment node C1</td>
|
|
</tr>
|
|
<tr class="comment">
|
|
<td rowspan="1" colspan="1">dm:base-uri(C1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="comment">
|
|
<td rowspan="1" colspan="1">dm:node-kind(C1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"comment"</td>
|
|
</tr>
|
|
<tr class="comment">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(C1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"  This  example 
|
|
is  for  data  model  illustration 
|
|
only.\n          It  does 
|
|
not  demonstrate  good  schema  design. 
|
|
"</td>
|
|
</tr>
|
|
<tr class="comment">
|
|
<td rowspan="1" colspan="1">dm:typed-value(C1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"  This  example 
|
|
is  for  data  model  illustration 
|
|
only.\n          It  does 
|
|
not  demonstrate  good  schema  design. 
|
|
"</td>
|
|
</tr>
|
|
<tr class="comment">
|
|
<td rowspan="1" colspan="1">dm:parent(C1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E1">E1</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E2" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E2</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "tshirt")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E2)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"  Staind:  Been 
|
|
Awhile  Tee  Black  (1-sided)  \n   
|
|
        Lyrics  from  the 
|
|
hit  song  'It's  Been  Awhile'\n   
|
|
        are  shown  in 
|
|
white,  beneath  the  large\n     
|
|
      'Flock  &  Weld' 
|
|
Staind  logo.\n          25.00 
|
|
"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E2)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">fn:error()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:tshirtType</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E1">E1</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E3">E3</a>], [<a href=
|
|
"#ex-E4">E4</a>], [<a href="#ex-E6">E6</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-A4">A4</a>], [<a href=
|
|
"#ex-A5">A5</a>], [<a href="#ex-A6">A6</a>], [<a href=
|
|
"#ex-A7">A7</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E2)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A4" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A4</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "code")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A4)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"T1534017"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:ID("T1534017")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:ID</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">true</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E2">E2</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A5" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A5</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "label")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A5)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"Staind  :  Been 
|
|
Awhile"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:token("Staind : Been Awhile")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:token</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E2">E2</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A6" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A6</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.w3.org/1999/xlink", "xlink:href")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A6)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">
|
|
"http://example.com/0,,1655091,00.html"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://example.com/0,,1655091,00.html")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:anyURI</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E2">E2</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A7" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A7</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "sizes")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A7)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"M  L  XL"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">(xs:token("M"), xs:token("L"),
|
|
xs:token("XL"))</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:sizeList</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E2">E2</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E3" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E3</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "title")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E3)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"Staind:  Been  Awhile 
|
|
Tee  Black  (1-sided)"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E3)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:token("Staind: Been Awhile Tee Black
|
|
(1-sided)")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:token</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E2">E2</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E3)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-T1" class="text">
|
|
<td colspan="3" rowspan="1">// Text node T1</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:base-uri(T1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:node-kind(T1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"text"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(T1)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"Staind:  Been  Awhile 
|
|
Tee  Black  (1-sided)"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(T1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic("Staind:  Been  Awhile  Tee 
|
|
Black  (1-sided)")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:type-name(T1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:parent(T1)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E3">E3</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E4" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E4</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "description")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E4)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"\n         
|
|
  Lyrics  from  the  hit  song 
|
|
'It's  Been  Awhile'\n         
|
|
  are  shown  in  white,  beneath 
|
|
the  large\n           
|
|
'Flock  &  Weld'  Staind  logo.\n 
|
|
      "</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E4)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1"><span>xs:untypedAtomic(</span>"\n 
|
|
          Lyrics  from 
|
|
the  hit  song  'It's  Been 
|
|
Awhile'\n            are 
|
|
shown  in  white,  beneath  the 
|
|
large\n            'Flock 
|
|
&  Weld'  Staind  logo.\n     
|
|
  ")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:description</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E2">E2</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E5">E5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E4)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E5" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E5</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.w3.org/1999/xhtml", "html:p")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E5)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"\n         
|
|
  Lyrics  from  the  hit  song 
|
|
'It's  Been  Awhile'\n         
|
|
  are  shown  in  white,  beneath 
|
|
the  large\n           
|
|
'Flock  &  Weld'  Staind  logo.\n 
|
|
      "</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E5)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1"><span>xs:untypedAtomic(</span>"\n 
|
|
          Lyrics  from 
|
|
the  hit  song  'It's  Been 
|
|
Awhile'\n            are 
|
|
shown  in  white,  beneath  the 
|
|
large\n            'Flock 
|
|
&  Weld'  Staind  logo.\n     
|
|
  ")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:anyType</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E4">E4</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E5)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-T2" class="text">
|
|
<td colspan="3" rowspan="1">// Text node T2</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:base-uri(T2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:node-kind(T2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"text"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(T2)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"\n         
|
|
  Lyrics  from  the  hit  song 
|
|
'It's  Been  Awhile'\n         
|
|
  are  shown  in  white,  beneath 
|
|
the  large\n           
|
|
'Flock  &  Weld'  Staind  logo.\n 
|
|
      "</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(T2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic("\n           
|
|
Lyrics  from  the  hit  song  'It's 
|
|
Been  Awhile'\n           
|
|
are  shown  in  white,  beneath  the 
|
|
large\n            'Flock 
|
|
&  Weld'  Staind  logo.\n     
|
|
  ")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:type-name(T2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:parent(T2)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E5">E5</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E6" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E6</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "price")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E6)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"25.00"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td colspan="3" rowspan="1">// The typed-value is based on the
|
|
content type of the complex type for the element</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E6)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:monetaryAmount(25.0)</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:price</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E2">E2</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E6)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-T3" class="text">
|
|
<td colspan="3" rowspan="1">// Text node T3</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:base-uri(T3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:node-kind(T3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"text"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(T3)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"25.00"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(T3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic("25.00")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:type-name(T3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:parent(T3)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E6">E6</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E7" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E7</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "album")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E7)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"  It's  Been  A 
|
|
While    10.99    Staind  "</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E7)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">fn:error()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:albumType</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E1">E1</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E8">E8</a>], [<a href=
|
|
"#ex-E9">E9</a>], [<a href="#ex-E10">E10</a>], [<a href=
|
|
"#ex-E11">E11</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-A8">A8</a>], [<a href=
|
|
"#ex-A9">A9</a>], [<a href="#ex-A10">A10</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E7)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E7)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A8" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A8</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "code")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A8)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"A1481344"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:ID("A1481344")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:ID</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">true</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E7">E7</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A9" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A9</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "label")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A9)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"Staind  :  Its 
|
|
Been  A  While"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:token("Staind : Its Been A
|
|
While")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:token</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E7">E7</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A10" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A10</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "formats")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A10)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"CD"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:formatType("CD")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:formatType</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E7">E7</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E8" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E8</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "title")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E8)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"It's  Been  A 
|
|
While"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E8)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:token("It's Been A While")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:token</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E7">E7</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E8)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E8)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-T4" class="text">
|
|
<td colspan="3" rowspan="1">// Text node T4</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:base-uri(T4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:node-kind(T4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"text"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(T4)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"It's  Been  A 
|
|
While"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(T4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic("It's  Been  A  While")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:type-name(T4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:parent(T4)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E8">E8</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E9" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E9</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "description")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E9)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">""</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td colspan="3" rowspan="1">// xsi:nil is true so the typed value
|
|
is the empty sequence</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E9)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:description</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E7">E7</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-A11">A11</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E9)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E9)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A11" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A11</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.w3.org/2001/XMLSchema-instance",
|
|
"xsi:nil")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A11)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"true"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:boolean("true")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:boolean</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E9">E9</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E10" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E10</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "price")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E10)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"10.99"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E10)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:monetaryAmount(10.99)</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:price</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E7">E7</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-A12">A12</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E10)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E10)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-A12" class="attribute">
|
|
<td colspan="3" rowspan="1">// Attribute node A12</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-kind(A12)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"attribute"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:node-name(A12)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:QName("", "currency")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(A12)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"USD"</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:typed-value(A12)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:currencyType("USD")</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:type-name(A12)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">cat:currencyType</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-id(A12)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(A12)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="attribute">
|
|
<td rowspan="1" colspan="1">dm:parent(A12)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E10">E10</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-T5" class="text">
|
|
<td colspan="3" rowspan="1">// Text node T5</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:base-uri(T5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:node-kind(T5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"text"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(T5)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"10.99"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(T5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic("10.99")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:type-name(T5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:parent(T5)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E10">E10</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-E11" class="element">
|
|
<td colspan="3" rowspan="1">// Element node E11</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:base-uri(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-kind(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"element"</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:node-name(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:QName("http://www.example.com/catalog", "artist")</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(E11)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"  Staind  "</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(E11)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">" Staind "</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:type-name(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">xs:string</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-id(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:is-idrefs(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">false</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:parent(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E7">E7</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:children(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:attributes(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">()</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td rowspan="1" colspan="1">dm:namespace-nodes(E11)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-N1">N1</a>], [<a href=
|
|
"#ex-N2">N2</a>], [<a href="#ex-N3">N3</a>], [<a href=
|
|
"#ex-N4">N4</a>], [<a href="#ex-N5">N5</a>])</td>
|
|
</tr>
|
|
<tr class="element">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:namespace-bindings(E11)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
("xml", "http://www.w3.org/XML/1998/namespace",
|
|
"html", "http://www.w3.org/1999/xhtml",
|
|
"", "http://www.example.com/catalog",
|
|
"xlink", "http://www.w3.org/1999/xlink",
|
|
"xsi", "http://www.w3.org/2001/XMLSchema-instance")</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
<tr id="ex-T6" class="text">
|
|
<td colspan="3" rowspan="1">// Text node T6</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:base-uri(T6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">
|
|
xs:anyURI("http://www.example.com/catalog.xml")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:node-kind(T6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">"text"</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:string-value(T6)</td>
|
|
<td valign="baseline" rowspan="1" colspan="1">=</td>
|
|
<td rowspan="1" colspan="1">"  Staind  "</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td valign="baseline" rowspan="1" colspan="1">
|
|
dm:typed-value(T6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic("  Staind  ")</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:type-name(T6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td class="diff-chg" title="DM.E008" rowspan="1" colspan="1">
|
|
xs:untypedAtomic</td>
|
|
</tr>
|
|
<tr class="text">
|
|
<td rowspan="1" colspan="1">dm:parent(T6)</td>
|
|
<td rowspan="1" colspan="1">= </td>
|
|
<td rowspan="1" colspan="1">([<a href="#ex-E11">E11</a>])</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" rowspan="1"> </td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>A graphical representation of the data model for the preceding
|
|
example is shown below. Document order in this representation can
|
|
be found by following the traditional left-to-right, depth-first
|
|
traversal; however, because the image has been rotated for easier
|
|
presentation, this appears to be bottom-to-top, depth-first
|
|
order.</p>
|
|
<table border="0" cellspacing="0" summary="Graphic">
|
|
<tbody>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><img src="dm-example.png" alt=
|
|
"Graphical depiction of the example data model." /></td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Graphic representation of the data
|
|
model. [<a href="dm-example-large.png">large view</a>, <a href=
|
|
"dm-example.svg">SVG</a>]</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="impl-summary" name="impl-summary"></a>F
|
|
Implementation-Defined and Implementation-Dependent Items
|
|
(Non-Normative)</h2>
|
|
<div class="div2">
|
|
<h3><a id="implementation-defined" name=
|
|
"implementation-defined"></a>F.1 Implementation-Defined Items</h3>
|
|
<p>The following items are <a title="implementation defined" href=
|
|
"#dt-implementation-defined">implementation-defined</a>.</p>
|
|
<ol>
|
|
<li>Support for additional user-defined or implementation-defined
|
|
types is implementation-defined. (See <a href=
|
|
"#types-representation"><b>2.6.1 Representation of
|
|
Types</b></a>)</li>
|
|
<li>Some typed values in the data model are <em>undefined</em>.
|
|
Attempting to access an undefined property is always an error.
|
|
Behavior in these cases is implementation-defined and the host
|
|
language is responsible for determining the result. (See <a href=
|
|
"#accessors"><b>5 Accessors</b></a>)</li>
|
|
</ol>
|
|
</div>
|
|
<div class="div2">
|
|
<h3><a id="implementation-dependent" name=
|
|
"implementation-dependent"></a>F.2 Implementation-Dependent
|
|
Items</h3>
|
|
<p>The following items are <a title="implementation dependent"
|
|
href="#dt-implementation-dependent">implementation-dependent</a>.</p>
|
|
<ol>
|
|
<li>The relative order of Namespace Nodes nodes is stable but
|
|
implementation-dependent. (See <a href="#document-order"><b>2.4
|
|
Document Order</b></a>)</li>
|
|
<li>The relative order of Attribute Nodes nodes is stable but
|
|
implementation-dependent. (See <a href="#document-order"><b>2.4
|
|
Document Order</b></a>)</li>
|
|
<li>The relative order of distinct trees is stable but
|
|
implementation-dependent. (See <a href="#document-order"><b>2.4
|
|
Document Order</b></a>)</li>
|
|
<li>The names of anonymous types are implementation-dependent. (See
|
|
<a href="#types-representation"><b>2.6.1 Representation of
|
|
Types</b></a>)</li>
|
|
<li>The prefix associated with type names is
|
|
implementation-dependent. (See <a href="#PSVI2NodeTypes"><b>3.3.1.1
|
|
Element and Attribute Node Type Names</b></a>)</li>
|
|
<li>The representation of the set of prefix/URI pairs returned by
|
|
the <span class="function"><a href=
|
|
"#dm-namespace-bindings"><span class=
|
|
"prefix">dm:</span>namespace-bindings</a></span> accessor is
|
|
implementation-dependent. (See <a href=
|
|
"#dm-namespace-bindings"><b>5.7 namespace-bindings
|
|
Accessor</b></a>)</li>
|
|
<li>The representation of namespaces, i.e. whether or not they are
|
|
represented as nodes, is implementation-dependent. (See <a href=
|
|
"#Node"><b>6 Nodes</b></a>)</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a id="ChangeLog" name="ChangeLog"></a>G Changes since the
|
|
First Edition (Non-Normative)</h2>
|
|
<p>The changes made to this document are described in detail in the
|
|
<a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html">Errata</a>
|
|
to the first edition. The rationale for each erratum is explained
|
|
in the corresponding Bugzilla database entry. The following table
|
|
summarizes the errata that have been applied.</p>
|
|
<table border="1" cellpadding="5" width="100%">
|
|
<thead>
|
|
<tr>
|
|
<td rowspan="1" colspan="1">Erratum</td>
|
|
<td rowspan="1" colspan="1">Bugzilla</td>
|
|
<td rowspan="1" colspan="1">Category</td>
|
|
<td rowspan="1" colspan="1">Description</td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E001">
|
|
E001</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=4352">4352</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">The schema in the examples appendix
|
|
isn't valid.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E002">
|
|
E002</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=4413">4413</a></td>
|
|
<td rowspan="1" colspan="1">substantive</td>
|
|
<td rowspan="1" colspan="1">The data model spec doesn't adequately
|
|
cover the determination of the typed value for an element whose
|
|
schema type is a complex type with simple content.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E003">
|
|
E003</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=4486">4486</a></td>
|
|
<td rowspan="1" colspan="1">substantive</td>
|
|
<td rowspan="1" colspan="1">The Data Model does not state any
|
|
constraints on the use of the namespace
|
|
'http://www.w3.org/2000/xmlns/'. Such constraints are needed to
|
|
ensure that an XDM document can be serialized as a
|
|
namespace-well-formed XML document.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E004">
|
|
E004</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=4487">4487</a></td>
|
|
<td rowspan="1" colspan="1">substantive</td>
|
|
<td rowspan="1" colspan="1">Nowhere does XDM state the constraint
|
|
that if a namespace URI is present in the node-name of an attribute
|
|
node then a prefix must also be present. This is necessary to
|
|
ensure that an XDM document can be serialized as
|
|
namespace-well-formed XML.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E005">
|
|
E005</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=4519">4519</a></td>
|
|
<td rowspan="1" colspan="1">substantive</td>
|
|
<td rowspan="1" colspan="1">The rules for is-id property for an
|
|
element node constructed from a PSVI appear arbitrarily different
|
|
from the rule for attribute nodes.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E006">
|
|
E006</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=4984">4984</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">(superseded)</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E007">
|
|
E007</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=5002">5002</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">Terminology: root node concept.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E008">
|
|
E008</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=5212">5212</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">Obsolete xdt: rather than xs: prefixes
|
|
used.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E009">
|
|
E009</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=5267">5267</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">xs:dayTimeDuration and
|
|
xs:yearMonthDuration listed as a primitive simple type.</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E010">
|
|
E010</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=4622">4622</a></td>
|
|
<td rowspan="1" colspan="1">substantive</td>
|
|
<td rowspan="1" colspan="1">dm:unparsed-entity-system-id absolute
|
|
or relative URI?</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E011">
|
|
E011</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=5207">5207</a></td>
|
|
<td rowspan="1" colspan="1">substantive</td>
|
|
<td rowspan="1" colspan="1">Accessing undefined static context base
|
|
URI and XPST0001</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E012">
|
|
E012</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=5983">5983</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">xs:integer is not primitive</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E013">
|
|
E013</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=6139">6139</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">reminders re empty Text Nodes</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E014">
|
|
E014</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=6255">6255</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">Base URI after validation</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E015">
|
|
E015</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=6374">6374</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">non-normative notes</td>
|
|
</tr>
|
|
<tr>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/XML/2007/qt-errata/xpath-datamodel-errata.html#E016">
|
|
E016</a></td>
|
|
<td rowspan="1" colspan="1"><a href=
|
|
"http://www.w3.org/Bugs/Public/show_bug.cgi?id=6287">6287</a></td>
|
|
<td rowspan="1" colspan="1">editorial</td>
|
|
<td rowspan="1" colspan="1">Terminology: "undefined"</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="accessors-list" id="accessors-list"></a>H Accessor
|
|
Summary (Non-Normative)</h2>
|
|
<p>This section summarizes the return values of each accessor by
|
|
node type.</p>
|
|
<div>
|
|
<h3 id="acc-summ-attributes">H.1 <a href=
|
|
"#dm-attributes"><em>dm:</em>attributes</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">attributes</b>
|
|
property. The order of Attribute Nodes is stable but implementation
|
|
dependent.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-base-uri">H.2 <a href=
|
|
"#dm-base-uri"><em>dm:</em>base-uri</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">base-uri</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">base-uri</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>If the attribute has a parent, returns the value of the
|
|
<span class="function"><a href="#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span> of its parent; otherwise it
|
|
returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">base-uri</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>If the comment has a parent, returns the value of the
|
|
<span class="function"><a href="#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span> of its parent; otherwise,
|
|
returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>If the Text Node has a parent, returns the value of the
|
|
<span class="function"><a href="#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span> of its parent; otherwise,
|
|
returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-children">H.3 <a href=
|
|
"#dm-children"><em>dm:</em>children</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">children</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">children</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-document-uri">H.4 <a href=
|
|
"#dm-document-uri"><em>dm:</em>document-uri</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the absolute URI of the resource from which the Document
|
|
Node was constructed, or the empty sequence if no such absolute URI
|
|
is available.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-is-id">H.5 <a href=
|
|
"#dm-is-id"><em>dm:</em>is-id</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">is-id</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">is-id</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-is-idrefs">H.6 <a href=
|
|
"#dm-is-idrefs"><em>dm:</em>is-idrefs</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">is-idrefs</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">is-idrefs</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-namespace-bindings">H.7 <a href=
|
|
"#dm-namespace-bindings"><em>dm:</em>namespace-bindings</a>
|
|
Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">namespaces</b>
|
|
property as a set of prefix/URI pairs.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-namespace-nodes">H.8 <a href=
|
|
"#dm-namespace-nodes"><em>dm:</em>namespace-nodes</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">namespaces</b>
|
|
property as a sequence of Namespace Nodes. The order of Namespace
|
|
Nodes is stable but implementation dependent.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-nilled">H.9 <a href=
|
|
"#dm-nilled"><em>dm:</em>nilled</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">nilled</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-node-kind">H.10 <a href=
|
|
"#dm-node-kind"><em>dm:</em>node-kind</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns “<code>document</code>”.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns “<code>element</code>”.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns “<code>attribute</code>”.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns “<code>namespace</code>”.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns “<code>processing-instruction</code>”.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns “<code>comment</code>”.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns “<code>text</code>”.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-node-name">H.11 <a href=
|
|
"#dm-node-name"><em>dm:</em>node-name</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">node-name</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">node-name</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>If the <b class="dm-node-prop">prefix</b> is not empty, returns
|
|
an <code>xs:QName</code> with the value of the <b class=
|
|
"dm-node-prop">prefix</b> property in the local-name and an empty
|
|
namespace name, otherwise returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns an <code>xs:QName</code> with the value of the <b class=
|
|
"dm-node-prop">target</b> property in the local-name and an empty
|
|
namespace URI and empty prefix.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-parent">H.12 <a href=
|
|
"#dm-parent"><em>dm:</em>parent</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">parent</b>
|
|
property.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-string-value">H.13 <a href=
|
|
"#dm-string-value"><em>dm:</em>string-value</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class=
|
|
"dm-node-prop">string-value</b> property.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class=
|
|
"dm-node-prop">string-value</b> property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class=
|
|
"dm-node-prop">string-value</b> property.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">uri</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-type-name">H.14 <a href=
|
|
"#dm-type-name"><em>dm:</em>type-name</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">type-name</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">type-name</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns <code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-typed-value">H.15 <a href=
|
|
"#dm-typed-value"><em>dm:</em>typed-value</a> Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">typed-value</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">typed-value</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">typed-value</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">uri</b>
|
|
property as an <code>xs:string</code>.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property as a <code>xs:string</code>.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property as a <code>xs:string</code>.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the value of the <b class="dm-node-prop">content</b>
|
|
property as an <code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-unparsed-entity-public-id">H.16 <a href=
|
|
"#dm-unparsed-entity-public-id"><em>dm:</em>unparsed-entity-public-id</a>
|
|
Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the public identifier of the specified unparsed entity
|
|
or the empty sequence if no such entity exists.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3 id="acc-summ-unparsed-entity-system-id">H.17 <a href=
|
|
"#dm-unparsed-entity-system-id"><em>dm:</em>unparsed-entity-system-id</a>
|
|
Accessor</h3>
|
|
<dl>
|
|
<dt><a href="#DocumentNode">Document Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the system identifier of the specified unparsed entity
|
|
or the empty sequence if no such entity exists.</p>
|
|
</dd>
|
|
<dt><a href="#ElementNode">Element Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#AttributeNode">Attribute Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#NamespaceNode">Namespace Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#ProcessingInstructionNode">Processing Instruction
|
|
Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#CommentNode">Comment Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
<dt><a href="#TextNode">Text Nodes</a></dt>
|
|
<dd>
|
|
<p>Returns the empty sequence.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="infoset-construction-summary" id=
|
|
"infoset-construction-summary"></a>I Infoset Construction Summary
|
|
(Non-Normative)</h2>
|
|
<p>This section summarizes data model construction from an Infoset
|
|
for each kind of information item. General notes <a href=
|
|
"#const-infoset">occur elsewhere</a>.</p>
|
|
<div>
|
|
<h3><a name="auto-const-infoset-document" id=
|
|
"auto-const-infoset-document"></a>I.1 Document Nodes Information
|
|
Items</h3>
|
|
<p>The <b class="info-item">document information item</b> is
|
|
required. A Document Node is constructed for each <b class=
|
|
"info-item">document information item</b>.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[children]</b> and <b class=
|
|
"infoset-property">[base URI]</b>.</p>
|
|
<p>The following infoset properties are optional: <b class=
|
|
"infoset-property">[unparsed entities]</b>.</p>
|
|
<p>Document Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">base-uri</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[base URI]</b>
|
|
property, if available. Note that the base URI property, if
|
|
available, is always an absolute URI (if an absolute URI can be
|
|
computed) though it may contain Unicode characters that are not
|
|
allowed in URIs. These characters, if they occur, are present in
|
|
the <b class="dm-node-prop">base-uri</b> property and will have to
|
|
be encoded and escaped by the application to obtain a URI suitable
|
|
for retrieval, if retrieval is required.</p>
|
|
<p>In practice a <b class="infoset-property">[base URI]</b> is not
|
|
always known. In this case the value of the <b class=
|
|
"dm-node-prop">base-uri</b> property of the document node will be
|
|
the empty sequence. This is not intrinsically an error, though it
|
|
may cause some operations that depend on the base URI to fail.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">children</b></dt>
|
|
<dd>
|
|
<p>The sequence of nodes constructed from the information items
|
|
found in the <b class="infoset-property">[children]</b>
|
|
property.</p>
|
|
<p>For each element, processing instruction, and comment found in
|
|
the <b class="infoset-property">[children]</b> property, a
|
|
corresponding Element, Processing Instruction, or Comment Node is
|
|
constructed and that sequence of nodes is used as the value of the
|
|
<b class="dm-node-prop">children</b> property.</p>
|
|
<p>If present among the <b class="infoset-property">[children]</b>,
|
|
the <b class="info-item">document type declaration information
|
|
item</b> is ignored.</p>
|
|
</dd>
|
|
<dt class="label"><b class=
|
|
"dm-node-prop">unparsed-entities</b></dt>
|
|
<dd>
|
|
<p>If the <b class="infoset-property">[unparsed entities]</b>
|
|
property is present and is not the empty set, the values of the
|
|
<b class="info-item">unparsed entity information items</b> must be
|
|
used to support the <span class="function"><a href=
|
|
"#dm-unparsed-entity-system-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-system-id</a></span> and
|
|
<span class="function"><a href=
|
|
"#dm-unparsed-entity-public-id"><span class=
|
|
"prefix">dm:</span>unparsed-entity-public-id</a></span>
|
|
accessors.</p>
|
|
<p>The internal structure of the values of the <b class=
|
|
"dm-node-prop">unparsed-entities</b> property is implementation
|
|
defined.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<p>The concatenation of the string-values of all its Text Node
|
|
descendants in document order. If the document has no such
|
|
descendants, the zero-length string.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> of the node as an
|
|
<code>xs:untypedAtomic</code> value.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">document-uri</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">document-uri</b> property holds the
|
|
absolute URI for the resource from which the document node was
|
|
constructed, if one is available and can be made absolute. For
|
|
example, if a collection of documents is returned by the
|
|
<span class="function">fn:collection</span> function, the <b class=
|
|
"dm-node-prop">document-uri</b> property may serve to distinguish
|
|
between them even though each has the same <b class=
|
|
"dm-node-prop">base-uri</b> property.</p>
|
|
<p>If the <b class="dm-node-prop">document-uri</b> is not the empty
|
|
sequence, then the following constraint must hold: the node
|
|
returned by evaluating <code>fn:doc()</code> with the <b class=
|
|
"dm-node-prop">document-uri</b> as its argument must return the
|
|
document node that provided the value of the <b class=
|
|
"dm-node-prop">document-uri</b> property.</p>
|
|
<p>In other words, for any Document Node <code>$arg</code>, either
|
|
<code>fn:document-uri($arg)</code> must return the empty sequence
|
|
or <code>fn:doc(fn:document-uri($arg))</code> must return
|
|
<code>$arg</code>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-infoset-element" id=
|
|
"auto-const-infoset-element"></a>I.2 Element Nodes Information
|
|
Items</h3>
|
|
<p>The <b class="info-item">element information items</b> are
|
|
required. An Element Node is constructed for each <b class=
|
|
"info-item">element information item</b>.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[namespace name]</b>, <b class=
|
|
"infoset-property">[local name]</b>, <b class=
|
|
"infoset-property">[children]</b>, <b class=
|
|
"infoset-property">[attributes]</b>, <b class=
|
|
"infoset-property">[in-scope namespaces]</b>, <b class=
|
|
"infoset-property">[base URI]</b>, and <b class=
|
|
"infoset-property">[parent]</b>.</p>
|
|
<p>Element Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">base-uri</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[base URI]</b>
|
|
property, if available. Note that the base URI property, if
|
|
available, is always an absolute URI (if an absolute URI can be
|
|
computed) though it may contain Unicode characters that are not
|
|
allowed in URIs. These characters, if they occur, are present in
|
|
the <b class="dm-node-prop">base-uri</b> property and will have to
|
|
be encoded and escaped by the application to obtain a URI suitable
|
|
for retrieval, if retrieval is required.</p>
|
|
<p>In practice a <b class="infoset-property">[base URI]</b> is not
|
|
always known. In this case the value of the <b class=
|
|
"dm-node-prop">base-uri</b> property of the document node will be
|
|
the empty sequence. This is not intrinsically an error, though it
|
|
may cause some operations that depend on the base URI to fail.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">node-name</b></dt>
|
|
<dd>
|
|
<p>An <code>xs:QName</code> constructed from the <b class=
|
|
"infoset-property">[prefix]</b>, <b class="infoset-property">[local
|
|
name]</b>, and <b class="infoset-property">[namespace name]</b>
|
|
properties.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The node that corresponds to the value of the <b class=
|
|
"infoset-property">[parent]</b> property or the empty sequence if
|
|
there is no parent.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">type-name</b></dt>
|
|
<dd>
|
|
<p>All Element Nodes constructed from an infoset have the type
|
|
<code>xs:untyped</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">children</b></dt>
|
|
<dd>
|
|
<p>The sequence of nodes constructed from the information items
|
|
found in the <b class="infoset-property">[children]</b>
|
|
property.</p>
|
|
<p>For each element, processing instruction, comment, and maximal
|
|
sequence of adjacent <b class="info-item">character information
|
|
items</b> found in the <b class="infoset-property">[children]</b>
|
|
property, a corresponding Element, Processing Instruction, Comment,
|
|
or Text Node is constructed and that sequence of nodes is used as
|
|
the value of the <b class="dm-node-prop">children</b> property.</p>
|
|
<p>Because the data model requires that all general entities be
|
|
expanded, there will never be <b class="info-item">unexpanded
|
|
entity reference information item</b> children.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">attributes</b></dt>
|
|
<dd>
|
|
<p>A set of Attribute Nodes constructed from the <b class=
|
|
"info-item">attribute information items</b> appearing in the
|
|
<b class="infoset-property">[attributes]</b> property. This
|
|
includes all of the "special" attributes (<code>xml:lang</code>,
|
|
<code>xml:space</code>, <code>xsi:type</code>, etc.) but does not
|
|
include namespace declarations (because they are not
|
|
attributes).</p>
|
|
<p>Default and fixed attributes provided by the DTD are added to
|
|
the <b class="infoset-property">[attributes]</b> and are therefore
|
|
included in the data model <b class="dm-node-prop">attributes</b>
|
|
of an element.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">namespaces</b></dt>
|
|
<dd>
|
|
<p>A set of Namespace Nodes constructed from the <b class=
|
|
"info-item">namespace information items</b> appearing in the
|
|
<b class="infoset-property">[in-scope namespaces]</b> property.
|
|
Implementations that do not support Namespace Nodes may simply
|
|
preserve the relevant bindings in this property.</p>
|
|
<p>Implementations <strong>may</strong> ignore <b class=
|
|
"info-item">namespace information items</b> for namespaces which
|
|
are not known to be used. A namespace is known to be used if:</p>
|
|
<ul>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of the <b class=
|
|
"dm-node-prop">node-name</b> of the element.</p>
|
|
</li>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of the <b class=
|
|
"dm-node-prop">node-name</b> of any of the element's
|
|
attributes.</p>
|
|
</li>
|
|
</ul>
|
|
<p>Note: applications may rely on namespaces that are not known to
|
|
be used, for example when QNames are used in content and that
|
|
content does not have a type of <code>xs:QName</code> Such
|
|
applications may have difficulty processing data models where some
|
|
namespaces have been ignored.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">nilled</b></dt>
|
|
<dd>
|
|
<p>All Element Nodes constructed from an infoset have a <b class=
|
|
"dm-node-prop">nilled</b> property of "<em>false</em>".</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">string-value</b> is constructed from
|
|
the <b class="info-item">character information item</b> <b class=
|
|
"infoset-property">[children]</b> of the element and all its
|
|
descendants. The precise rules for selecting significant <b class=
|
|
"info-item">character information items</b> and constructing
|
|
characters from them is described in <a href=
|
|
"#const-infoset-text"><b>6.7.3 Construction from an Infoset</b></a>
|
|
of <a href="#TextNode"><b>6.7 Text Nodes</b></a>.</p>
|
|
<p>This process is equivalent to concatenating the <span class=
|
|
"function"><a href="#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>s of all of the Text Node
|
|
descendants of the resulting Element Node.</p>
|
|
<p>If the element has no such descendants, the <b class=
|
|
"dm-node-prop">string-value</b> is the empty string.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">string-value</b> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-id</b></dt>
|
|
<dd>
|
|
<p>All Element Nodes constructed from an infoset have a <b class=
|
|
"dm-node-prop">is-id</b> property of "<em>false</em>".</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-idrefs</b></dt>
|
|
<dd>
|
|
<p>All Element Nodes constructed from an infoset have a <b class=
|
|
"dm-node-prop">is-idrefs</b> property of "<em>false</em>".</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-infoset-attribute" id=
|
|
"auto-const-infoset-attribute"></a>I.3 Attribute Nodes Information
|
|
Items</h3>
|
|
<p>The <b class="info-item">attribute information items</b> are
|
|
required. An Attribute Node is constructed for each <b class=
|
|
"info-item">attribute information item</b>.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[namespace name]</b>, <b class=
|
|
"infoset-property">[local name]</b>, <b class=
|
|
"infoset-property">[normalized value]</b>, <b class=
|
|
"infoset-property">[attribute type]</b>, and <b class=
|
|
"infoset-property">[owner element]</b>.</p>
|
|
<p>Attribute Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">node-name</b></dt>
|
|
<dd>
|
|
<p>An <code>xs:QName</code> constructed from the <b class=
|
|
"infoset-property">[prefix]</b>, <b class="infoset-property">[local
|
|
name]</b>, and <b class="infoset-property">[namespace name]</b>
|
|
properties.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The Element Node that corresponds to the value of the <b class=
|
|
"infoset-property">[owner element]</b> property or the empty
|
|
sequence if there is no owner.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">type-name</b></dt>
|
|
<dd>
|
|
<p>The value <code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<p>The <b class="infoset-property">[normalized value]</b> of the
|
|
attribute.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The attribute’s typed-value is its <span class=
|
|
"function"><a href="#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-id</b></dt>
|
|
<dd>
|
|
<p>If the attribute is named <code>xml:id</code> and its <b class=
|
|
"infoset-property">[attribute type]</b> property does not have the
|
|
value <code>ID</code>, then <a href="#xml-id">[xml:id]</a>
|
|
processing is performed. This will assure that the value does have
|
|
the type <code>ID</code> and that it is properly normalized. If an
|
|
error is encountered during xml:id processing, an implementation
|
|
<strong>may</strong> raise a dynamic error. The <b class=
|
|
"dm-node-prop">is-id</b> property is always <code>true</code> for
|
|
attributes named <code>xml:id</code>.</p>
|
|
<p>If the <b class="infoset-property">[attribute type]</b> property
|
|
has the value <code>ID</code>, <code>true</code>, otherwise
|
|
<code>false</code>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-idrefs</b></dt>
|
|
<dd>
|
|
<p>If the <b class="infoset-property">[attribute type]</b> property
|
|
has the value <code>IDREF</code> or <code>IDREFS</code>,
|
|
<code>true</code>, otherwise <code>false</code>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-infoset-namespace" id=
|
|
"auto-const-infoset-namespace"></a>I.4 Namespace Nodes Information
|
|
Items</h3>
|
|
<p>The <b class="info-item">namespace information items</b> are
|
|
required.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[prefix]</b>, <b class=
|
|
"infoset-property">[namespace name]</b>.</p>
|
|
<p>Namespace Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">prefix</b></dt>
|
|
<dd>
|
|
<p>The <b class="infoset-property">[prefix]</b> property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">uri</b></dt>
|
|
<dd>
|
|
<p>The <b class="infoset-property">[namespace name]</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The element in whose <b class="infoset-property">[in-scope
|
|
namespaces]</b> property the <b class="info-item">namespace
|
|
information item</b> appears, if the implementation exposes any
|
|
mechanism for accessing the <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>
|
|
accessor of Namespace Nodes.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-infoset-pi" id=
|
|
"auto-const-infoset-pi"></a>I.5 Processing Instruction Nodes
|
|
Information Items</h3>
|
|
<p>A Processing Instruction Node is constructed for each <b class=
|
|
"info-item">processing instruction information item</b> that is not
|
|
ignored.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[target]</b>, <b class=
|
|
"infoset-property">[content]</b>, <b class="infoset-property">[base
|
|
URI]</b>, and <b class="infoset-property">[parent]</b>.</p>
|
|
<p>Processing Instruction Node properties are derived from the
|
|
infoset as follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">target</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[target]</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">content</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[content]</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">base-uri</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[base URI]</b>
|
|
property, if available. Note that the base URI property, if
|
|
available, is always an absolute URI (if an absolute URI can be
|
|
computed) though it may contain Unicode characters that are not
|
|
allowed in URIs. These characters, if they occur, are present in
|
|
the <b class="dm-node-prop">base-uri</b> property and will have to
|
|
be encoded and escaped by the application to obtain a URI suitable
|
|
for retrieval, if retrieval is required.</p>
|
|
<p>In practice a <b class="infoset-property">[base URI]</b> is not
|
|
always known. In this case the value of the <b class=
|
|
"dm-node-prop">base-uri</b> property of the document node will be
|
|
the empty sequence. This is not intrinsically an error, though it
|
|
may cause some operations that depend on the base URI to fail.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The node corresponding to the value of the <b class=
|
|
"infoset-property">[parent]</b> property.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>There are no Processing Instruction Nodes for processing
|
|
instructions that are children of a <b class="info-item">document
|
|
type declaration information item</b>.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-infoset-comment" id=
|
|
"auto-const-infoset-comment"></a>I.6 Comment Nodes Information
|
|
Items</h3>
|
|
<p>The <b class="info-item">comment information items</b> are
|
|
optional.</p>
|
|
<p>A Comment Node is constructed for each <b class=
|
|
"info-item">comment information item</b>.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[content]</b> and <b class=
|
|
"infoset-property">[parent]</b>.</p>
|
|
<p>Comment Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">content</b></dt>
|
|
<dd>
|
|
<p>The value of the <b class="infoset-property">[content]</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The node corresponding to the value of the <b class=
|
|
"infoset-property">[parent]</b> property.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>There are no Comment Nodes for comments that are children of a
|
|
<b class="info-item">document type declaration information
|
|
item</b>.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-infoset-text" id=
|
|
"auto-const-infoset-text"></a>I.7 Text Nodes Information Items</h3>
|
|
<p>The <b class="info-item">character information items</b> are
|
|
required. A Text Node is constructed for each maximal sequence of
|
|
<b class="info-item">character information items</b> in document
|
|
order.</p>
|
|
<p>The following infoset properties are required: <b class=
|
|
"infoset-property">[character code]</b> and <b class=
|
|
"infoset-property">[parent]</b>.</p>
|
|
<p>The following infoset properties are optional: <b class=
|
|
"infoset-property">[element content whitespace]</b>.</p>
|
|
<p>A sequence of <b class="info-item">character information
|
|
items</b> is maximal if it satisfies the following constraints:</p>
|
|
<ol class="enumar">
|
|
<li>
|
|
<p>All of the information items in the sequence have the same
|
|
parent.</p>
|
|
</li>
|
|
<li>
|
|
<p>The sequence consists of adjacent <b class="info-item">character
|
|
information items</b> uninterrupted by other types of information
|
|
item.</p>
|
|
</li>
|
|
<li>
|
|
<p>No other such sequence exists that contains any of the same
|
|
<b class="info-item">character information items</b> and is
|
|
longer.</p>
|
|
</li>
|
|
</ol>
|
|
<p>Text Node properties are derived from the infoset as
|
|
follows:</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">content</b></dt>
|
|
<dd>
|
|
<p>A string comprised of characters that correspond to the
|
|
<b class="infoset-property">[character code]</b> properties of each
|
|
of the <b class="info-item">character information items</b>.</p>
|
|
<p>If the resulting Text Node consists entirely of whitespace and
|
|
the <b class="infoset-property">[element content whitespace]</b>
|
|
property of the <b class="info-item">character information
|
|
items</b> used to construct this node are <code>true</code>, the
|
|
<b class="dm-node-prop">content</b> of the Text Node is the
|
|
zero-length string. Text Nodes are only allowed to be empty if they
|
|
have no parents; an empty Text Node will be discarded when its
|
|
parent is constructed, if it has a parent.</p>
|
|
<p>The content of the Text Node is not necessarily normalized as
|
|
described in the <a href="#charmod">[Character Model]</a>. It is
|
|
the responsibility of data producers to provide normalized text,
|
|
and the responsibility of applications to make sure that operations
|
|
do not de-normalize text.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">parent</b></dt>
|
|
<dd>
|
|
<p>The node corresponding to the value of the <b class=
|
|
"infoset-property">[parent]</b> property.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="psvi-construction-summary" id=
|
|
"psvi-construction-summary"></a>J PSVI Construction Summary
|
|
(Non-Normative)</h2>
|
|
<p>This section summarizes data model construction from a PSVI for
|
|
each kind of information item. General notes <a href=
|
|
"#const-psvi">occur elsewhere</a>.</p>
|
|
<div>
|
|
<h3><a name="auto-const-psvi-document" id=
|
|
"auto-const-psvi-document"></a>J.1 Document Nodes Information
|
|
Items</h3>
|
|
<p>Construction from a PSVI is identical to construction from the
|
|
Infoset.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-psvi-element" id=
|
|
"auto-const-psvi-element"></a>J.2 Element Nodes Information
|
|
Items</h3>
|
|
<p>The following Element Node properties are affected by PSVI
|
|
properties.</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">type-name</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">type-name</b> is determined as
|
|
described in <a href="#PSVI2NodeTypes"><b>3.3.1.1 Element and
|
|
Attribute Node Type Names</b></a>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">children</b></dt>
|
|
<dd>
|
|
<p>The sequence of nodes constructed from the information items
|
|
found in the <b class="infoset-property">[children]</b>
|
|
property.</p>
|
|
<p>For each element, processing instruction, comment, and maximal
|
|
sequence of adjacent <b class="info-item">character information
|
|
items</b> found in the <b class="infoset-property">[children]</b>
|
|
property, a corresponding Element, Processing Instruction, Comment,
|
|
or Text Node is constructed and that sequence of nodes is used as
|
|
the value of the <b class="dm-node-prop">children</b> property.</p>
|
|
<p>For elements with schema simple types, or complex types with
|
|
simple content, if the <b class="infoset-property">[schema
|
|
normalized value]</b> PSVI property exists, the processor
|
|
<strong>may</strong> use a sequence of nodes containing the
|
|
Processing Instruction and Comment Nodes corresponding to the
|
|
<b class="info-item">processing instruction</b> and <b class=
|
|
"info-item">comment information items</b> found in the <b class=
|
|
"infoset-property">[children]</b> property, plus an optional single
|
|
Text Node whose string value is the <b class=
|
|
"infoset-property">[schema normalized value]</b> for the <b class=
|
|
"dm-node-prop">children</b> property. If the <b class=
|
|
"infoset-property">[schema normalized value]</b> is the empty
|
|
string, the Text Node <strong>must not</strong> be present,
|
|
otherwise it <strong>must</strong> be present.</p>
|
|
<p>The relative order of Processing Instruction and Comment Nodes
|
|
must be preserved, but the position of the Text Node, if it is
|
|
present, among them is implementation defined.</p>
|
|
<p>The effect of the above rules is that where a fixed or default
|
|
value for an element is defined in the schema, and the element
|
|
takes this default value, a text node will be created to contain
|
|
the value, even though there are no character information items
|
|
representing the value in the PSVI. The position of this text node
|
|
relative to any comment or processing instruction children is
|
|
implementation-dependent.</p>
|
|
<p><a href="#xmlschema-1">[Schema Part 1]</a> also permits an
|
|
element with mixed content to take a default or fixed value (which
|
|
will always be a simple value), but at the time of this writing it
|
|
is unclear how such a defaulted value is represented in the PSVI.
|
|
Implementations therefore <strong>may</strong> represent such a
|
|
default value by creating a text node, but are not required to do
|
|
so.</p>
|
|
<p>Because the data model requires that all general entities be
|
|
expanded, there will never be <b class="info-item">unexpanded
|
|
entity reference information item</b> children.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">attributes</b></dt>
|
|
<dd>
|
|
<p>A set of Attribute Nodes constructed from the <b class=
|
|
"info-item">attribute information items</b> appearing in the
|
|
<b class="infoset-property">[attributes]</b> property. This
|
|
includes all of the "special" attributes (<code>xml:lang</code>,
|
|
<code>xml:space</code>, <code>xsi:type</code>, etc.) but does not
|
|
include namespace declarations (because they are not
|
|
attributes).</p>
|
|
<p>Default and fixed attributes provided by XML Schema processing
|
|
are added to the <b class="infoset-property">[attributes]</b> and
|
|
are therefore included in the data model <b class=
|
|
"dm-node-prop">attributes</b> of an element.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">namespaces</b></dt>
|
|
<dd>
|
|
<p>A set of Namespace Nodes constructed from the <b class=
|
|
"info-item">namespace information items</b> appearing in the
|
|
<b class="infoset-property">[in-scope namespaces]</b> property.
|
|
Implementations that do not support Namespace Nodes may simply
|
|
preserve the relevant bindings in this property.</p>
|
|
<p>Implementations <strong>may</strong> ignore <b class=
|
|
"info-item">namespace information items</b> for namespaces which
|
|
are not known to be used. A namespace is known to be used if:</p>
|
|
<ul>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of the <b class=
|
|
"dm-node-prop">node-name</b> of the element.</p>
|
|
</li>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of the <b class=
|
|
"dm-node-prop">node-name</b> of any of the element's
|
|
attributes.</p>
|
|
</li>
|
|
<li>
|
|
<p>It appears in the <a title="expanded-QName" href=
|
|
"#dt-expanded-qname">expanded QName</a> of any values of type
|
|
<code>xs:QName</code> that appear among the element's children or
|
|
the typed values of its attributes.</p>
|
|
</li>
|
|
</ul>
|
|
<p>Note: applications may rely on namespaces that are not known to
|
|
be used, for example when QNames are used in content and that
|
|
content does not have a type of <code>xs:QName</code> Such
|
|
applications may have difficulty processing data models where some
|
|
namespaces have been ignored.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">nilled</b></dt>
|
|
<dd>
|
|
<p>If the <b class="infoset-property">[validity]</b> property
|
|
exists on an information item and is "<em>valid</em>" then if the
|
|
<b class="infoset-property">[nil]</b> property exists and is true,
|
|
then the <b class="dm-node-prop">nilled</b> property is
|
|
"<em>true</em>". In all other cases, including all cases where
|
|
schema validity assessment was not attempted or did not succeed,
|
|
the <b class="dm-node-prop">nilled</b> property is
|
|
"<em>false</em>".</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<p>The string-value is calculated as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the element is empty: its string value is the zero length
|
|
string.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a type of <code>xs:untyped</code>, a complex
|
|
type with element-only content, or a complex type with mixed
|
|
content: its string-value is the concatenation of the <b class=
|
|
"dm-node-prop">string-value</b>s of all its Text Node descendants
|
|
in document order.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a simple type or a complex type with simple
|
|
content: its string-value is the <b class=
|
|
"infoset-property">[schema normalized value]</b> of the node.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If an implementation stores only the typed value of an element,
|
|
it may use any valid lexical representation of the typed value for
|
|
the <b class="dm-node-prop">string-value</b> property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The typed-value is calculated as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the element is of type <code>xs:untyped</code>, its
|
|
typed-value is its <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a complex type with empty content, its
|
|
typed-value is the empty sequence.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a simple type or a complex type with simple
|
|
content: its typed value is computed as described in <a href=
|
|
"#TypedValueDetermination"><b>3.3.1.2 Typed Value
|
|
Determination</b></a>. The result is a sequence of zero or more
|
|
atomic values. The relationship between the type-name, typed-value,
|
|
and string-value of an element node is consistent with XML Schema
|
|
validation.</p>
|
|
<p>Note that in the case of dates and times, the timezone is
|
|
preserved as described in <a href="#dates-and-times"><b>3.3.2 Dates
|
|
and Times</b></a>, and in the case of <code>xs:QName</code>s and
|
|
<code>xs:NOTATION</code>s, the prefix is preserved as described in
|
|
<a href="#qnames-and-notations"><b>3.3.3 QNames and
|
|
NOTATIONS</b></a>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If the element has a complex type with mixed content (including
|
|
<code>xs:anyType</code>), its typed-value is its <span class=
|
|
"function"><a href="#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise, the element must be a complex type with element-only
|
|
content. The typed-value of such an element is undefined.
|
|
Attempting to access this property with the <span class=
|
|
"function"><a href="#dm-typed-value"><span class=
|
|
"prefix">dm:</span>typed-value</a></span> accessor always raises an
|
|
error.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-id</b></dt>
|
|
<dd>
|
|
<p>If the element has a complex type with element-only content, the
|
|
<b class="dm-node-prop">is-id</b> property is <code>false</code>.
|
|
Otherwise, if the typed-value of the element consists of exactly
|
|
one atomic value and that value is of type <code>xs:ID</code>, or a
|
|
type derived from <code>xs:ID</code>, the <b class=
|
|
"dm-node-prop">is-id</b> property is <code>true</code>, otherwise
|
|
it is <code>false</code>.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>This means that in the case of a type constructed by list from
|
|
<code>xs:ID</code>, the ID is recognized provided that the list is
|
|
of length one. A type constructed as a union involving
|
|
<code>xs:ID</code> is recognized provided the actual value is of
|
|
type <code>xs:ID</code>.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>The element that is marked with the <b class=
|
|
"dm-node-prop">is-id</b> property, and which will therefore be
|
|
retrieved by the fn:id function, is the node whose typed value
|
|
contains the <code>xs:ID</code> value. This node is a child of the
|
|
element node that, according to XML Schema, is uniquely identified
|
|
by this ID.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-idrefs</b></dt>
|
|
<dd>
|
|
<p>If the element has a complex type with element-only content, the
|
|
<b class="dm-node-prop">is-idrefs</b> property is
|
|
<code>false</code>. Otherwise, if any of the atomic values in the
|
|
typed-value of the element is of type <code>xs:IDREF</code> or
|
|
<code>xs:IDREFS</code>, or a type derived from one of those types,
|
|
the <b class="dm-node-prop">is-idrefs</b> property is
|
|
<code>true</code>, otherwise it is <code>false</code>.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>All other properties have values that are consistent with
|
|
construction from an infoset.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-psvi-attribute" id=
|
|
"auto-const-psvi-attribute"></a>J.3 Attribute Nodes Information
|
|
Items</h3>
|
|
<p>The following Attribute Node properties are affected by PSVI
|
|
properties.</p>
|
|
<dl>
|
|
<dt class="label"><b class="dm-node-prop">string-value</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>The <b class="infoset-property">[schema normalized value]</b>
|
|
PSVI property if that exists.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise, the <b class="infoset-property">[normalized
|
|
value]</b> property.</p>
|
|
</li>
|
|
</ul>
|
|
<p>If an implementation stores only the typed value of an
|
|
attribute, it may use any valid lexical representation of the typed
|
|
value for the <b class="dm-node-prop">string-value</b>
|
|
property.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">type-name</b></dt>
|
|
<dd>
|
|
<p>The <b class="dm-node-prop">type-name</b> is determined as
|
|
described in <a href="#PSVI2NodeTypes"><b>3.3.1.1 Element and
|
|
Attribute Node Type Names</b></a>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">typed-value</b></dt>
|
|
<dd>
|
|
<p>The typed-value is calculated as follows:</p>
|
|
<ul>
|
|
<li>
|
|
<p>If the attribute is of type <code>xs:untypedAtomic</code>: its
|
|
typed-value is its <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> as an
|
|
<code>xs:untypedAtomic</code>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise, a sequence of zero or more atomic values as described
|
|
in <a href="#TypedValueDetermination"><b>3.3.1.2 Typed Value
|
|
Determination</b></a>. The relationship between the type-name,
|
|
typed-value, and string-value of an attribute node is consistent
|
|
with XML Schema validation.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-id</b></dt>
|
|
<dd>
|
|
<p>If the attribute is named <code>xml:id</code> and its <b class=
|
|
"infoset-property">[attribute type]</b> property does not have the
|
|
value <code>xs:ID</code> or a type derived from <code>xs:ID</code>,
|
|
then <a href="#xml-id">[xml:id]</a> processing is performed. This
|
|
will assure that the value does have the type <code>xs:ID</code>
|
|
and that it is properly normalized. If an error is encountered
|
|
during xml:id processing, an implementation <strong>may</strong>
|
|
raise a dynamic error. The <b class="dm-node-prop">is-id</b>
|
|
property is always true for attributes named
|
|
<code>xml:id</code>.</p>
|
|
<p>Otherwise, if the typed-value of the attribute consists of
|
|
exactly one atomic value and that value is of type
|
|
<code>xs:ID</code>, or a type derived from <code>xs:ID</code>, the
|
|
<b class="dm-node-prop">is-id</b> property is <code>true</code>,
|
|
otherwise it is <code>false</code>.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>This means that in the case of a type constructed by list from
|
|
<code>xs:ID</code>, the ID is recognized provided that the list is
|
|
of length one. A type constructed as a union involving
|
|
<code>xs:ID</code> is recognized provided the actual value is of
|
|
type <code>xs:ID</code>.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</dd>
|
|
<dt class="label"><b class="dm-node-prop">is-idrefs</b></dt>
|
|
<dd>
|
|
<p>If any of the atomic values in the typed-value of the attribute
|
|
is of type <code>xs:IDREF</code> or <code>xs:IDREFS</code>, or a
|
|
type derived from one of those types, the <b class=
|
|
"dm-node-prop">is-idrefs</b> property is <code>true</code>,
|
|
otherwise it is <code>false</code>.</p>
|
|
<blockquote>
|
|
<table summary="Note" width="90%">
|
|
<tr>
|
|
<td valign="top" align="left" width="10%"><b>Note:</b></td>
|
|
<td valign="top" align="left">
|
|
<p>This rule means that a type constructed by list with an item
|
|
type of <code>xs:IDREF</code> (or a type derived from
|
|
<code>xs:IDREF</code>) has the <b class=
|
|
"dm-node-prop">is-idrefs</b> property, whether or not the list type
|
|
is named <code>xs:IDREFS</code> or is derived from
|
|
<code>xs:IDREFS</code>. Because union types are allowed, it also
|
|
means that an element or attribute with the <b class=
|
|
"dm-node-prop">is-idrefs</b> property can contain atomic values of
|
|
type <code>xs:IDREF</code> alongside values of other types.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</blockquote>
|
|
</dd>
|
|
</dl>
|
|
<p>All other properties have values that are consistent with
|
|
construction from an infoset.</p>
|
|
<p>Note: attributes from the XML Schema instance namespace,
|
|
"<code>http://www.w3.org/2001/XMLSchema-instance</code>",
|
|
(<code>xsi:schemaLocation</code>, <code>xsi:type</code>, etc.)
|
|
appear as ordinary attributes in the data model.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-psvi-namespace" id=
|
|
"auto-const-psvi-namespace"></a>J.4 Namespace Nodes Information
|
|
Items</h3>
|
|
<p>Construction from a PSVI is identical to construction from the
|
|
Infoset.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-psvi-pi" id="auto-const-psvi-pi"></a>J.5
|
|
Processing Instruction Nodes Information Items</h3>
|
|
<p>Construction from a PSVI is identical to construction from the
|
|
Infoset.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-psvi-comment" id=
|
|
"auto-const-psvi-comment"></a>J.6 Comment Nodes Information
|
|
Items</h3>
|
|
<p>Construction from a PSVI is identical to construction from the
|
|
Infoset.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-const-psvi-text" id=
|
|
"auto-const-psvi-text"></a>J.7 Text Nodes Information Items</h3>
|
|
<p>For Text Nodes constructed from the <b class=
|
|
"infoset-property">[schema normalized value]</b> of elements,
|
|
<b class="dm-node-prop">content</b> contains the value of the
|
|
<b class="infoset-property">[schema normalized value]</b>.</p>
|
|
<p>Otherwise, construction from a PSVI is the same as construction
|
|
from the Infoset except for the <b class="dm-node-prop">content</b>
|
|
property. When constructing the <b class="dm-node-prop">content</b>
|
|
property, <b class="infoset-property">[element content
|
|
whitespace]</b> is not used to test if whitespace is collapsed.
|
|
Instead, if the resulting Text Node consists entirely of whitespace
|
|
and the <b class="info-item">character information items</b> used
|
|
to construct this node have a parent and that parent is an element
|
|
and its {content type} is not “<code>mixed</code>”, then the
|
|
<b class="dm-node-prop">content</b> of the Text Node is the
|
|
zero-length string.</p>
|
|
<p>Text Nodes are only allowed to be empty if they have no parents;
|
|
an empty Text Node will be discarded when its parent is
|
|
constructed, if it has a parent.</p>
|
|
</div>
|
|
</div>
|
|
<div class="div1">
|
|
<h2><a name="infoset-mapping-summary" id=
|
|
"infoset-mapping-summary"></a>K Infoset Mapping Summary
|
|
(Non-Normative)</h2>
|
|
<p>This section summarizes the infoset mapping for each kind of
|
|
node. General notes <a href="#infoset-mapping">occur
|
|
elsewhere</a>.</p>
|
|
<div>
|
|
<h3><a name="auto-infoset-mapping-document" id=
|
|
"auto-infoset-mapping-document"></a>K.1 Document Nodes Information
|
|
Items</h3>
|
|
<p>A Document Node maps to a <b class="info-item">document
|
|
information item</b>. The mapping fails and produces no value if
|
|
the Document Node contains Text Node children that do not consist
|
|
entirely of white space or if the Document Node contains more than
|
|
one Element Node child.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[children]</b></dt>
|
|
<dd>
|
|
<p>A list of information items obtained by processing each of the
|
|
<span class="function"><a href="#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span> in order and mapping each to
|
|
the appropriate information item(s).</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[document
|
|
element]</b></dt>
|
|
<dd>
|
|
<p>The <b class="info-item">element information item</b> that is
|
|
among the <b class="infoset-property">[children]</b>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[unparsed
|
|
entities]</b></dt>
|
|
<dd>
|
|
<p>An unordered set of <b class="info-item">unparsed entity
|
|
information item</b>s constructed from the <b class=
|
|
"dm-node-prop">unparsed-entities</b>.</p>
|
|
<p>Each unparsed entity maps to an <b class="info-item">unparsed
|
|
entity information item</b>. The following properties are specified
|
|
by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[name]</b></dt>
|
|
<dd>
|
|
<p>The name of the entity.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[system
|
|
identifier]</b></dt>
|
|
<dd>
|
|
<p>The system identifier of the entity.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[public
|
|
identifier]</b></dt>
|
|
<dd>
|
|
<p>The public identifier of the entity.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[declaration base
|
|
URI]</b></dt>
|
|
<dd>
|
|
<p>Implementation defined. In the many cases, the <b class=
|
|
"dm-node-prop">document-uri</b> is the correct answer and
|
|
implementations <strong>must</strong> use this value if they have
|
|
no better information. Implementations that keep track of the
|
|
original <b class="infoset-property">[declaration base URI]</b> for
|
|
entities should use that value.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>The following properties of the <b class="info-item">unparsed
|
|
entity information item</b> have no value: <b class=
|
|
"infoset-property">[notation name]</b>, <b class=
|
|
"infoset-property">[notation]</b>.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>The following properties of the <b class="info-item">document
|
|
information item</b> have no value: <b class=
|
|
"infoset-property">[notations]</b> <b class=
|
|
"infoset-property">[character encoding scheme]</b> <b class=
|
|
"infoset-property">[standalone]</b> <b class=
|
|
"infoset-property">[version]</b> <b class="infoset-property">[all
|
|
declarations processed]</b>.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-infoset-mapping-element" id=
|
|
"auto-infoset-mapping-element"></a>K.2 Element Nodes Information
|
|
Items</h3>
|
|
<p>An Element Node maps to an <b class="info-item">element
|
|
information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[namespace
|
|
name]</b></dt>
|
|
<dd>
|
|
<p>The namespace name of the value of <span class=
|
|
"function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[local name]</b></dt>
|
|
<dd>
|
|
<p>The local part of the value of <span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[prefix]</b></dt>
|
|
<dd>
|
|
<p>The prefix associated with the value of <span class=
|
|
"function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[children]</b></dt>
|
|
<dd>
|
|
<p>A list of information items obtained by processing each of the
|
|
<span class="function"><a href="#dm-children"><span class=
|
|
"prefix">dm:</span>children</a></span> in order and mapping each to
|
|
the appropriate information item(s).</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[attributes]</b></dt>
|
|
<dd>
|
|
<p>An unordered set of information items obtained by processing
|
|
each of the <span class="function"><a href=
|
|
"#dm-attributes"><span class=
|
|
"prefix">dm:</span>attributes</a></span> and mapping each to the
|
|
appropriate information item(s).</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[in-scope
|
|
namespaces]</b></dt>
|
|
<dd>
|
|
<p>An unordered set of <b class="info-item">namespace information
|
|
items</b> constructed from the <b class=
|
|
"dm-node-prop">namespaces</b>.</p>
|
|
<p>Each in-scope namespace maps to a <b class="info-item">namespace
|
|
information item</b>. The following properties are specified by
|
|
this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[prefix]</b></dt>
|
|
<dd>
|
|
<p>The prefix associated with the namespace.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[namespace
|
|
name]</b></dt>
|
|
<dd>
|
|
<p>The URI associated with the namespace.</p>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[base URI]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[parent]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node is the root of the infoset mapping operation,
|
|
<em>unknown</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<p>The following property has no value: <b class=
|
|
"infoset-property">[namespace attributes]</b>.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-infoset-mapping-attribute" id=
|
|
"auto-infoset-mapping-attribute"></a>K.3 Attribute Nodes
|
|
Information Items</h3>
|
|
<p>An Attribute Node maps to an <b class="info-item">attribute
|
|
information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[namespace
|
|
name]</b></dt>
|
|
<dd>
|
|
<p>The namespace name of the value of <span class=
|
|
"function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[local name]</b></dt>
|
|
<dd>
|
|
<p>The local part of the value of <span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[prefix]</b></dt>
|
|
<dd>
|
|
<p>The prefix associated with the value of <span class=
|
|
"function"><a href="#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[normalized
|
|
value]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[owner
|
|
element]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
<p>The following properties have no value: <b class=
|
|
"infoset-property">[specified]</b> <b class=
|
|
"infoset-property">[attribute type]</b> <b class=
|
|
"infoset-property">[references]</b>.</p>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-infoset-mapping-namespace" id=
|
|
"auto-infoset-mapping-namespace"></a>K.4 Namespace Nodes
|
|
Information Items</h3>
|
|
<p>A Namespace Node maps to a <b class="info-item">namespace
|
|
information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[prefix]</b></dt>
|
|
<dd>
|
|
<p>The prefix associated with the namespace.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[namespace
|
|
name]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-infoset-mapping-processing-instruction" id=
|
|
"auto-infoset-mapping-processing-instruction"></a>K.5 Processing
|
|
Instruction Nodes Information Items</h3>
|
|
<p>An Processing Instruction Node maps to a <b class=
|
|
"info-item">processing instruction information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[target]</b></dt>
|
|
<dd>
|
|
<p>The local part of the value of <span class="function"><a href=
|
|
"#dm-node-name"><span class=
|
|
"prefix">dm:</span>node-name</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[content]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[base URI]</b></dt>
|
|
<dd>
|
|
<p>The value of <span class="function"><a href=
|
|
"#dm-base-uri"><span class=
|
|
"prefix">dm:</span>base-uri</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[parent]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node is the root of the infoset mapping operation,
|
|
<em>unknown</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[notation]</b></dt>
|
|
<dd>
|
|
<p><em>no value</em>.</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-infoset-mapping-comment" id=
|
|
"auto-infoset-mapping-comment"></a>K.6 Comment Nodes Information
|
|
Items</h3>
|
|
<p>A Comment Node maps to a <b class="info-item">comment
|
|
information item</b>.</p>
|
|
<p>The following properties are specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[content]</b></dt>
|
|
<dd>
|
|
<p>The value of the <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span>.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[parent]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node is the root of the infoset mapping operation,
|
|
<em>unknown</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div>
|
|
<h3><a name="auto-infoset-mapping-text" id=
|
|
"auto-infoset-mapping-text"></a>K.7 Text Nodes Information
|
|
Items</h3>
|
|
<p>A Text Node maps to a sequence of <b class="info-item">character
|
|
information items</b>.</p>
|
|
<p>Each character of the <span class="function"><a href=
|
|
"#dm-string-value"><span class=
|
|
"prefix">dm:</span>string-value</a></span> of the node is converted
|
|
into a <b class="info-item">character information item</b> as
|
|
specified by this mapping:</p>
|
|
<dl>
|
|
<dt class="label"><b class="infoset-property">[character
|
|
code]</b></dt>
|
|
<dd>
|
|
<p>The Unicode code point value of the character.</p>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[parent]</b></dt>
|
|
<dd>
|
|
<ul>
|
|
<li>
|
|
<p>If this node is the root of the infoset mapping operation,
|
|
<em>unknown</em>.</p>
|
|
</li>
|
|
<li>
|
|
<p>If this node has a parent, the information item that corresponds
|
|
to the node returned by <span class="function"><a href=
|
|
"#dm-parent"><span class="prefix">dm:</span>parent</a></span>.</p>
|
|
</li>
|
|
<li>
|
|
<p>Otherwise <em>no value</em>.</p>
|
|
</li>
|
|
</ul>
|
|
</dd>
|
|
<dt class="label"><b class="infoset-property">[element content
|
|
whitespace]</b></dt>
|
|
<dd>
|
|
<p><em>Unknown</em>.</p>
|
|
</dd>
|
|
</dl>
|
|
<p>This sequence of characters constitutes the infoset mapping.</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|