RE: XML Infoset Comment Resolution: issue-query-*

> I am not convinced.

Clearly I am not explaining this well.  Let me try again.

The XML Infoset model for namespaces it the same as XPath's.  There is
a one-to-one correspondence between Infoset Namespace infoitems and
XPath Namespace nodes.

Compare XPath:

  Each element has an associated set of namespace nodes, one for each
  distinct namespace prefix that is in scope for the element [...]

with Infoset:

  There is one namespace information item for each namespace in scope
  for each element in the document.

The cut-and-paste motivation that I gave is exactly what XSLT does.
For example:

instance:

<foo>

<a:A xmlns:a="http://example.org/a">
 <b:B xmlns:b="http://example.org/b">contents of B</b:B>
</a:A>

<c:C xmlns:c="http://example.org/c"/>

</foo>

stylesheet:

<xsl:stylesheet version="1.0" 
		xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
		xmlns:b="http://example.org/b"
		xmlns:c="http://example.org/c">

<xsl:template match="/">
 <xsl:apply-templates select="foo/c:C"/>
</xsl:template>

<xsl:template match="c:C">
 <xsl:copy>
  <xsl:apply-templates select="//b:B"/>
 </xsl:copy>
</xsl:template>

<xsl:template match="b:B">
 <xsl:copy>
  <xsl:apply-templates/>
 </xsl:copy>
</xsl:template>

</xsl:stylesheet>


This example copies the c:C element and copies the b:B element into
it.  The result (from XT, reformatted) is:

<?xml version="1.0" encoding="utf-8"?>
<c:C xmlns:c="http://example.org/c">
<b:B xmlns:a="http://example.org/a" 
     xmlns:b="http://example.org/b">contents of B</b:B>
</c:C>

Observe that the "a" namespace binding was copied along with the b:B
element.

-- Richard

Received on Tuesday, 27 March 2001 09:17:01 UTC