[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev] What Serializer to Use in a Java SAX Pipe
- From: Michael Kay <mike@saxonica.com>
- To: Jim Tivy <jimt@bluestream.com>
- Date: Fri, 14 Jun 2013 00:57:07 +0100
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: [xml-dev] 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]