[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: What Serializer to Use in a Java SAX Pipe
Depends a bit what you are serializing... If you're writing events from your application (startElement, endElement etc) then I like to use the Stax push API in preference to SAX - it's much easier to use. You can get a serializer that implements the XMLStreamWriter interface from Saxon using Processor p = new Processor(); Serializer s = p.newSerializer(outputStream); s.setOutputProperty(property, value); XMLStreamWriter xsw = s.getStreamWriter(); Michael Kay Saxonica On 13 Jun 2013, at 21:11, Jim Tivy wrote: > Hi Folks > > Related to my serializer question - but different enough for its own post. > > By the way, what do people recommend for a serializer. > > I use the trax type code of: > > TransformerFactory transFact = this.getTransformerFactory(); > SAXTransformerFactory saxTFactory = (SAXTransformerFactory) > transFact; > m_tranHandler = saxTFactory.newTransformerHandler(); > m_transformer = m_tranHandler.getTransformer(); > > However for getTransformerFactory() > > // TransformerFactory transFact = new > net.sf.saxon.TransformerFactoryImpl(); > // TransformerFactory transFact = new TransformerFactoryImpl(); // > gets the JDK built in one - newInstance did not work. > //TransformerFactory transFact = TransformerFactory.newInstance(); > // TransformerFactory transFact = > TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl",null); > > TransformerFactory transFact = new > com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl(); > > I can only get the built in xalan factory working well - might be some other > requirements I have - but curious what people are doing there. > I really don't like reaching into the jdk like that as it is not supported > > Also, is there a way on the serializer to turn off DTD defaulted values > without wrapping the serializer and using the Attributes.isSpecified? > > Jim > >> -----Original Message----- >> From: George Cristian Bina [mailto:george@oxygenxml.com] >> Sent: June-11-13 6:22 AM >> To: Michael Kay >> Cc: Jim Tivy; xml-dev@lists.xml.org >> Subject: Re: Processing and Serialization of FIXED attributes >> >> Hi Mike, >> >> I think Jim wants this on the serialization part, while -expand:off seems > to apply >> to loading a document. He needs the values for processing the document but >> when the processing is done he does not want to save values that come from >> the DTD/schema. >> >> Hi Jim, >> >> The values added by the parser that are not present in the XML document > itself >> can be identified at SAX level by looking at the isSpecified() property - > if this is >> true then the value comes from the document, otherwise the value comes > from >> the DTD/schema. See for example: >> http://xerces.apache.org/xerces2- >> > j/javadocs/api/org/xml/sax/ext/Attributes2.html#isSpecified%28java.lang.Stri > ng >> %29 >> >> Hope this helps! >> >> Best Regards, >> George >> -- >> George Cristian Bina >> <oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger >> http://www.oxygenxml.com >> >> On 6/11/13 10:02 AM, Michael Kay wrote: >>> Saxon has an option (-expand:off) to suppress the expansion of fixed >>> attribute values defined in the schema or DTD. >>> >>> Michael Kay >>> Saxonica >>> >>> On 11 Jun 2013, at 04:47, Jim Tivy wrote: >>> >>>> Hello >>>> The DITA XML DTD has a number of #FIXED declarations in the DTDs that >>>> imply fixed values for class attributes. >>>> When this is processed in SAX and serialized the DITA class >>>> attributes are also serialized. >>>> It would be cleaner, for future XML authors to not have to see these >>>> class attributes inlined into the XML document. >>>> Do XSLT or other serializers commonly take out FIXED attributes or >>>> does the infoset mark them so they are not serialized - or is the >>>> usual form to serialize these. >>>> Inhttp://www.w3.org/TR/xslt-xquery-serialization-30/#xml-outputit >>>> states "MAY" >>>> >>>> . Thereconstructed tree >>>> <http://www.w3.org/TR/xslt-xquery-serialization-30/#reconstructed-tre >>>> e>*MAY*contain >>>> additional attributes and textnodes >>>> <http://www.w3.org/TR/xslt-xquery-serialization-30/#dt-node>resulting >>>> from the expansion of default and fixed values in its DTD or schema; >>>> also, in the presence of a DTD, non-CDATA attributes may lose >>>> whitespace characters as a result of attribute value normalization. >>>> >>>> My question is, what do most java based implementations of XLST >>>> processors, SAX processors and associated serializers do with respect >>>> to inlining or stripping out #FIXED attributes. >>>> >>>> Jim >>>> >>> > > > _______________________________________________________________________ > > XML-DEV is a publicly archived, unmoderated list hosted by OASIS > to support XML implementation and development. To minimize > spam in the archives, you must subscribe before posting. > > [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/ > Or unsubscribe: xml-dev-unsubscribe@lists.xml.org > subscribe: xml-dev-subscribe@lists.xml.org > List archive: http://lists.xml.org/archives/xml-dev/ > List Guidelines: http://www.oasis-open.org/maillists/guidelines.php >
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|