Subject: Re: [xsl] character entities From: Joerg Pietschmann <joerg.pietschmann@xxxxxx> Date: Wed, 21 Nov 2001 12:25:12 +0100 |
David Carlisle <davidc@xxxxxxxxx> wrote: > > [general entities] should be abolished anyway... > why? they make life more interesting... Uh, my life is interesting enough without them... > > ...replace them by <nag:refer item="e04BL-a"/> [complaints] Well, you can always use a two pass approach. If implementing the first pass (expanding the references) in XSLT is a performance issue, do it as a SAX handler. Furthermore: > a) you lose a lot of validation > checks if you do that as you would have to basically allow nag:refer > everyhere, and it would be able to refer to any content. I doubt this. I did not bother to understand the example you gave, but since you did not mention that you have to put not-well formed XML into the entities, i assume they have some semantic. You can use nag:ref-formula, nag:ref-constraint etc. instead of the general nag:refer and allow the elements only in the context where they make sense. The referenced elements can then have a well defined internal structure. This will make the dictionary more complicated and thwart automagic dictionary generation, but so what. > b) The logic in the stylesheet becomes muct more difficult. > ... this sort of logic becomes _really_ hard to maintain if in _every_ step > of every Xpath expression you have to take account of the fact that > the elements you are looking for might not be in the tree directly but > only in the trees referred to by <nag:refer If the references become somewhat standardized, you should be able to put this logic into reusable templates. Don't complain about that such a standardisation is not possible. You can always refine your data model. It's like moving from FORTRAN to PASCAL :-) > That's the nice thing about entities: when walking over the > tree you dont need to care if the text is directly in the document or in > an entity Well, there are things i take issue with: 1. Entities are multi-role, each with a quite different semantic: - text replacement (including by not well-formed XML fragments) - physical structure of the document - reference to non-XML information This is bad. 2. Entities definitions require DTDs which also may provide a structure definition. How do you mix this and a structure definition by a Schema? 3. Entity related stuff cannot be generated by XSLT (though this could be fixed by inventing xsl:entityref and DTD generating elements). My vision is: - Abolish entities and notations, except perhaps aliases for character references. - Do physical structuring of a XML document by a <xml:include href=.../> element, which should probably be handled at the parser level by default (can be switched off). - Abolish DTDs as such and use XSchema (or a XML-ified DTD version for simple cases) to declare validity constraints. - Better leverage of URIs for all kind of references. Specify a catalog URI to replace PUBLIC ids. Universally use URIResolvers in XML related software. Text replacement and reference to non-XML information (like binary images) would be handled at the XSLT level and could use either standardized markup (xlink and perhaps xinclude stuff) or customized markup. This would separate conceps which are currently muddled toghether and make for a more modular system of XML-related standards. Regards J.Pietschmann XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] character entities, David Carlisle | Thread | Re: [xsl] character entities, David Carlisle |
RE: [xsl] How do I invoke a stylesh, Michael Kay | Date | Re: [xsl] character entities, David Carlisle |
Month |