[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Content constructors and sequences
Mark Nahabedian wrote: > Quoting Jeni Tennison <jeni@xxxxxxxxxxxxxxxx>: >> Putting it another way, sequence constructors can either construct >> sequences holding a number of documentless nodes, or a sequence >> containing any kind of items. It's a dynamic error if the result >> sequence contains documentless nodes and either simple typed values >> or pre-existing nodes. > > Why is it that the sequence itself can't be considered to be a > document? There are several sorts of answers to that question. At a high level, it's because of the way the XML Infoset and XML Schema describe XML documents - documents contain element and attribute information items which have values which are of different types. Text nodes do not have types, and of course they get merged together. More practically, a sequence can't be considered a document because a document cannot contain nodes from other documents, so treating them like documents would mean that sequences could only contain nodes from that document, rather than nodes from other documents. And that would make certain operations hard to handle because you'd lose context information (all the nodes in the sequence would have this document as their parent, for example). >> First, you could just not worry about it. An attribute's name is a >> xs:QName, which incorporates the namespace URI so there's no >> problem getting that namespace URI. If an attribute's typed value >> is a xs:QName or a list of xs:QNames (which it should be if the >> values have are qualified names), then each of those xs:QName >> values must have its own namespace URI accessible as well. So an >> attribute doesn't need namespace nodes. (Possibly - can you think >> of some examples where you need to access a namespace node given >> you have access to a QName?) > > This is admittedly a stretch, but the value of the attribute could > be a string containing QNames, for example, an XPath expression. > Then again, one could probably construct such a degenerate case in > 1.0 as well. That's a good point - an attribute value that contains QNames in some nested way. On the other hand, the parentless attribute that you're trying to get namespace information from is a parentless attribute that you've created elsewhere in the same stylesheet. If you're having to re-parse and understand information through an attribute value, then you should probably be redesigning your stylesheet! :) Cheers, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|