Re: Using Jivan in a Barracuda App
Jacob Kjome <[email protected]>
| Newsgroups | gmane.comp.java.enhydra.barracuda.general |
|---|---|
| Message-ID | <[email protected]> |
DefaultDOMWriter uses XMLC to format the DOM. You can create your own DOMWriter if you want. This is actually why I wanted to rename DefaultDOMWriter to XMLCDOMWriter. Calling is "Default" hides its implementation too much, and the whole point to switch out implementations at will anyway, not use a single default one. The DOMLoader is the more generic of the 3 interfaces. Anyway, knowing that, you can create your own DOMWriter implementation that doesn't use XMLC's DOM formatter. Oh, and I forgot, there still is a dependency on XMLC via the XMLCDeferredParsingDOMFactory instance created by default in the DefaultDOMLoader. Hmm.... Those should really be separated more. Maybe we should add another getGlobalInstance() that takes a DOMFactory as a parameter and have the default dom factory loaded up via reflection. That way, DefaultDOMLoader would be much more generic. Anyway... Here are some ways to use the JivanDOMFactory.... First do... DefaultDOMLoader loader = DefaultDOMLoader.getGlobalInstance(); Then, either use the object repository assember as shown by Thelmo below (except change XMLCDeferredParsingDOMFactory to JivanDOMFactory) or use the following... JivanDOMFactory jfactory = new JivanDOMFactory(); jfactory.setServletContext(getServletContext()); loader.setDefaultDOMFactory(jfactory); //note that you can also choose to set the default dom factory to something else and use Jivan for a specific fully qualified class name (String) or file path such as.... String docPath = "/WEB-INF/mydocs/myfile.html"; loader.registerDOMFactory(jfactory, docPath); Then do.... Document doc = loader.getDOM(docPath); Of course, you can skip the DOMLoader as you did before, but at that point, you might as well just load things as described here... http://www.jivan.org/parser/samples.html You can also look at how JivanDOMFactory is implemented to for an example of how to use it directly. Hope that clears things up a bit. Jake At 01:18 PM 11/18/2003 -0500, you wrote: >Thanks, when I try this without the xmlc.jar file, it complains that the >class > >org/enhydra/xml/io/DOMFormatter > >is not found. Is the xmlc.jar files still required? > >david > >Thelmo Loisio wrote: >> >>On Tue, 2003-11-18 at 17:19, David R Robison wrote: >> >>> >>>Do you have an example of what to set in the object-repository to use jivan? >>>David >>> >> >> >> >From the contrib package here it is snippet from >>object-repository.xml... >> >><object name="$df" >>class="org.enhydra.barracuda.core.util.dom.XMLCDeferredParsingDOMFactory"> >> <!-- set the servlet context so that the dom factory can read >>web.xml context params --> >> <method name="setServletContext" arg="$sc"/> >> </object> >> >> <object class="org.enhydra.barracuda.core.util.dom.DefaultDOMLoader"> >> <method name="getGlobalInstance" return="$dl"/> >> </object> >> >>... and from java within an handleViewEvent method... >> >>Document page = >>DefaultDOMLoader.getGlobalInstance().getDOM(WaitHTML.class, >>context.getViewCapabilities().getClientLocale()); >> >> >> > > >-- > >David R Robison >Open Roads Consulting, Inc. >708 S. Battlefield Blvd., Chesapeake, VA 23322 >phone: (757) 546-3401 >e-mail: ><mailto:[email protected]>[email protected] >web: <http://openroadsconsulting.com>http://openroadsconsulting.com