Right, that's exactly how it works: public LSSerializer createLSSerializer() { try { Class serializerClass = ObjectFactory.findProviderClass( "org.apache.xml.serializer.dom3.LSSerializerImpl", ObjectFactory.findClassLoader(), true); return (LSSerializer) serializerClass.newInstance(); } catch (Exception e) {} // Fall back to Xerces' deprecated serializer if // the Xalan based serializer is unavailable. return new DOMSerializerImpl(); }
Was hoping to put a warning in there if it takes the fallback path but there's no DOMErrorHandler to report it to at this point. FYI: If you don't have Xerces on the classpath but instead try to access the JDK version [1] you may not get very far. Thanks. [1] http://markmail.org/message/e6rlhwymr43p4u4v Michael Glavassevich XML Parser Development IBM Toronto Lab E-mail: mrgla...@ca.ibm.com E-mail: mrgla...@apache.org Dick Deneer <dick.den...@donkeydevelopment.com> wrote on 11/22/2009 04:06:06 PM: > Hi Benson, > > As Michael notes, Xerces is now shipped with the serializer.jar > (which contains the xalan serializer). If you have this on your > classpath it will be used. > If you leave it out, then xerces will fall back to it's own (deprecated) one. > > regards > Dick Deneer > Op 22-nov-2009, om 21:54 heeft Benson Margulies het volgende geschreven: > > Hi Michael, > > So, if I put Xerces and not Xalan into classpath, and ask a document > for it's implementation, and ask that for the DOMImplementationLS, > what do I get? Whatever Sun tossed into the pot? And if I then add > Xalan, do I get the right one? > > --benson > > On Sat, Nov 21, 2009 at 10:24 PM, Michael Glavassevich <mrgla...@ca.ibm.com > > wrote: > Hi Benson, > > We're talking about two different implementations of the DOM Level 3 > LSSerializer, the more recently developed one in Xalan > (serializer.jar which Xerces now ships and shares with Xalan) and > the much older deprecated one in Xerces. If you're curious about the > history on that, there's an FAQ [1] on the website. > > Some users have decided to keep using Xerces' deprecated serializer > due to some quirks and issues with the currently available one from > Xalan. Folks really should be opening JIRA issues [2] against Xalan, > so those problems get addressed there. There's no intention to do > any further development or fixes to the one in Xerces. > > Thanks. > > [1] http://xerces.apache.org/xerces2-j/faq-general.html#faq-6 > [2] https://issues.apache.org/jira/browse/XALANJ > > > Michael Glavassevich > XML Parser Development > IBM Toronto Lab > E-mail: mrgla...@ca.ibm.com > E-mail: mrgla...@apache.org > Benson Margulies <bimargul...@gmail.com> wrote on 11/21/2009 02:17:49 PM: > > > > Could I please ask for a bit of clarification? The only LSSerializer > > I'm aware of is the DOM level 3 stuff, which, I thought, was the > > opposite of obsolete. As someone pointed out here, unlike TraX, it > > will serialize doctypes and do other handy things. In general, I'm > > beginning to prefer the DOMImplementationLS to JAXP and TraX. > > > On Sat, Nov 21, 2009 at 2:07 PM, Michael Glavassevich <mrgla...@ca.ibm.com > > > wrote: > > You should also be able to control whether spaces are preserved by > > registering an LSSerializerFilter. > > > > When I added one to your test program: > > > > if (useXerces) > > { > > domWriter = new DOMSerializerImpl(); > > domWriter.setFilter(new LSSerializerFilter() { > > public int getWhatToShow() { > > return LSSerializerFilter.SHOW_ALL; > > } > > public short acceptNode(Node n) { > > return LSSerializerFilter.FILTER_ACCEPT; > > }}); > > } > > > > the output I get is: > > > > > > Program started > > Xerces serializer will be used > > <?xml version="1.0" encoding="UTF-16"?> > > <root> > > <child1>text</child1> > > <child2> </child2> > > > > </root> > > > > Xalan serializer will be used > > <?xml version="1.0" encoding="UTF-16"?><root> > > <child1>text</child1> > > <child2> </child2> > > </root> > > > which I believe is what you were expecting. > > > > Thanks. > > > > Michael Glavassevich > > XML Parser Development > > IBM Toronto Lab > > E-mail: mrgla...@ca.ibm.com > > E-mail: mrgla...@apache.org > > > > Dick Deneer <dick.den...@donkeydevelopment.com> wrote on 11/21/2009 > > 01:19:27 PM: > > > > > > > Hi Jake, > > > > > > > > > I just tried your suggestion and the spaces are indeed preserved. > > > But still, I woud prefer another solution. I do not have any clue > > > about the xml (I use xerces in a xml editor) and I do not want to > > > change the xml. > > > And also I would like to stay with the LSSerializer (it also > > > serilalizes doctype nodes). > > > If there is another way please let me know. > > > > > > Thanks > > > Dick Deneer > > > > > > > > > > > > Op 21-nov-2009, om 19:03 heeft Jacob Kjome het volgende geschreven: > > > > > > > Have you tried xml:space="preserve"? > > > > > > > > Jake > > > > > > > > On 11/20/2009 4:36 PM, Dick Deneer wrote: > > > >> I am still using the deprecated LSSerializer because the xalan > > > >> serializer has issues with the pretty print. > > > >> But when I have simple elements with only space, the serializer > > > >> produces > > > >> empty elements. Is there a tweak to keep the spaces in this elements? > > > >> > > > >> Sample xml: > > > >> <root><child1>text</child1><child2> </child2></root> > > > >> I attached a simple test program, that you can just run to see the > > > >> results: > > > >> > > > >> Program started > > > >> Xerces serializer will be used > > > >> <?xml version="1.0" encoding="UTF-16"?> > > > >> <root> > > > >> <child1>text</child1> > > > >> <child2/> > > > >> </root> > > > >> > > > >> Xalan serializer will be used > > > >> <?xml version="1.0" encoding="UTF-16"?><root> > > > >> <child1>text</child1> > > > >> <child2> </child2> > > > >> </root> > > > >> > > > >> Regards > > > >> Dick Deneer > > > >> > > > >> --------------------------------------------------------------------- > > > >> --- > > > >> > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org > > > > For additional commands, e-mail: j-users-h...@xerces.apache.org > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: j-users-unsubscr...@xerces.apache.org > > > For additional commands, e-mail: j-users-h...@xerces.apache.org