[jdom-interest] How to find out the line number in the XML document
instance
Jason Hunter
jhunter at servlets.com
Mon Apr 15 00:27:10 PDT 2002
How much memory are you willing to devote to this feature? It's not the
implementation difficulty that's keeping us from adding line number
records, it's the memory requirement.
-jh-
Olle Hallin wrote:
>
> Thanks Laurent,
>
> It does not seem to be that hard to implement :)
>
> To the JDOM developers: wouldn't this be a Good Thing to have built-in in JDOM?
>
> Regards,
> Olle
>
> ----- Original Message -----
> From: "Laurent Bihanic" <laurent.bihanic at atosorigin.com>
> To: "Olle Hallin" <olle.hallin at hit.se>
> Cc: <jdom-interest at jdom.org>
> Sent: Friday, April 12, 2002 1:48 PM
> Subject: Re: [jdom-interest] How to find out the line number in the XML document instance
>
> >
> > Hi Olle,
> >
> > JDOM does not currently store the line number information. But there are some
> > plugs that should allow you to access it.
> >
> > First you'll need too write your own subclass of the JDOM node classes
> > (Element, Comment PI, etc.) for which you wish to keep the line number
> > information. To allow SAXBuilder to allocate instances of these classes,
> > you'll need to subclass DefaultJDOMFactory to get the line number information
> > and store it in your node instances.
> >
> > How does the factory access the line number information? It can use the
> > getDocumentLocator method provided by SAXHandler. But... to access the
> > SAXHandler instance you'll need to create your own subclass of SAXBuilder.
> >
> > It's not as complicated as it seems:
> >
> > public class MyBuilder extends SAXBuilder {
> > // Copy constructors here...
> > ...
> >
> > protected void configureContentHandler(SAXHandler contentHandler) {
> > super.configureContentHandler(contentHandler);
> > ((MyFactory)factory).setSAXHandler(contentHandler);
> > }
> >
> > public class MyFactory extends DefaultJDOMFactory {
> > private SAXHandler saxHandler;
> >
> > ...
> >
> > public void setSAXHandler(SAXHandler sh) {
> > this.saxHandler = sh;
> > }
> >
> > public Element element(String name) {
> > this.element(name, (Namespace) null);
> > }
> >
> > public Element element(String name, Namespace namespace) {
> > MyElement e = new MyElement(name, namespace);
> >
> > org.xml.sax.Locator loc = this.saxHandler.getDocumentLocator()
> > e.setLineNumber(loc.getLineNumber();
> > }
> > }
> >
> > Hope this helps,
> >
> > Laurent
> >
> >
> > Olle Hallin wrote:
> > > Hi all JDOM gurus!
> > >
> > > I am writing a product configurator driven by an XML document that defines all products and their components.
> > >
> > > In order to keep it simple, the plan is to let the product managers maintain this file directly by means of XML Spy assisted by an XML Schema.
> > > Many errors will be trapped by the schema, but not all.
> > >
> > > My question now is how to find the line number in the original XML document instance that corresponds to a certain JDOM Element?
> > > I want to give as exakt error messages as possible should I detect an error in an XML instance that has passed the schema validation.
> > >
> > > I use Xerces-J 2.0.0 as parser.
> > >
> > > Regards,
> > > Olle Hallin
> > >
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > To control your jdom-interest membership:
> > > http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com
> > >
> >
> >
> > --
> > wWw Zzzzz
> > (- -)
> > -------------ooO-(_)-Ooo-----------------------------------------------
> > Laurent Bihanic | Tel: +33 (0)1 55.91.21.93 (Direct line)
> > Atos Origin | +33 (0)1 55.91.20.00
> > Intégration - e-Business | Fax: +33 (0)1 55.91.22.31
> > Les Miroirs - Bat. C |
> > 18, avenue d'Alsace |
> > F-92926 La Defense Cedex | e-Mail: laurent.bihanic at atosorigin.com
> > -----------------------------------------------------------------------
> >
> > "Microsoft isn't the answer. Microsoft is the question and the answer
> > is no."
> >
> >
> > DISCLAIMER:
> > The opinions expressed are entirely my own and may not necessarily be
> > those of my employer. Also, I am not now nor have I ever been a
> > lawyer. My opinions are provided as-is with absolutely no warrantee of
> > merchantability or fitness for any particular use. Besides, you can't
> > prove I typed this. No body saw me type this. Who says I typed this?
> >
> >
>
> _______________________________________________
> To control your jdom-interest membership:
> http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com
More information about the jdom-interest
mailing list