← Prev in month ← Prev in thread
Next in thread → Next in month →

Re: [xml-dev] Is there any legitimate case for processing based on a specific namespace prefix?

From
G. Ken Holman <>
To
"" <>
Date
2012-08-28T21:15:04Z
ID
<>
Thread
Re: [xml-dev] Is there any legitimate case for processing based on a specific namespace prefix?
At 2012-08-28 20:20 +0000, Costello, Roger L. wrote:
>Hi Folks,
>
>Recall that a namespace prefix may be anything.
>
>For example, by convention 'xsl' is used as the prefix for the XSLT 
>namespace, but I could equally well use 'foo' or 'bar' as the prefix.
>
>Is there ever a time when it is okay to create an XML application 
>that checks for a specific prefix, e.g.,
>
>     If the prefix is 'foo' then
>             do A, B, C
>      Else
>            do X, Y, Z

Not that I can think of.

>It seems to me that such code would be very brittle and very unwise.

I agree.

>But perhaps there are legitimate cases where this is okay.
>
>If so, would you provide a concrete example please?

The only time I found it necessary was when dealing with an 
application that was incorrectly hardwired to a prefix.  While not 
true any more, there was a time when a particular XSL-FO processor 
was hardwired to expect <fo:block>.  My practice is to use the 
default namespace and <block>.  For one client I had to change my 
practice because of the non-conformant behaviour of his choice of software.

Another client asked me to use <fo:block> because that is what his 
staff had been trained to expect, thus anything else wasn't expected 
to be as maintainable.

Some students tell me they prefer <fo:block> for readability.  But I 
think it is just what you are used to and I personally like <block> 
because it "feels" more like using HTML.

When I write UBL instances I use no prefix for the document element 
and I use the committee's choice of prefix ("cac" and "cbc") for all 
other elements ... but just for the benefit of those who might be 
thrown by seeing "foo" and "bar".

So I think your answer is "when dealing only with software, the 
prefix doesn't matter, but when dealing with people, the prefix might 
very well matter (but not for software reasons)".

As a convention, when I'm using XSLT 2.0 to write XSLT, I'll use 
<xsl:> for instructions and <xslo:> for the result tree ... the 
processor outputs <xsl:>.  Back when using XSLT 1.0 I would use 
<xst:> for instructions and <xsl:> for the result tree so that the 
processor would output <xsl:>.

I hope this helps.

. . . . . . . . . . . Ken

--
Public XSLT, XSL-FO, UBL and code list classes in Europe -- Oct 2012
Contact us for world-wide XML consulting and instructor-led training
Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm
Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/x/
G. Ken Holman                   mailto:
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal
← Prev in month ← Prev in thread
Next in thread → Next in month →