[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: Datatype interface for RELAX NG
> One more comment. I am concerned about the efficiency when processing > base64Binary or hexBinary. It seems quite possible that applications will > have extremely large content with these types (many megabytes). It would be > desirable for the interface to allowed validating these types without > keeping the entire instance of the datatype in memory. How important is this capability? I thought about this at the very beginning of the development (of Sun XML Datatypes Library). But I abandoned this goal. - Firstly, this change makes base64/hex validators stateful objects. - All other grammar primitives (ChoicePattern, etc) are stateless and therefore can be shared and reused; stateful objects can't. Sharing a grammar among multiple threads seemed important. - OTOH, changing validators to the factory objects that creates actual stateful validators seemed cumbersome to me. - Secondly, it also affects the core validation code, which is another thing I don't want. - Thirdly, if the performance is really a problem, you can always skip validating that specific part by modifying your grammar a little bit. The base64/hex decoders in the application will detect errors anyway. -- Kohsuke KAWAGUCHI +1 650 786 0721 Sun Microsystems kohsuke.kawaguchi@eng.sun.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC