<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<rss version="2.0" xmlns:admin="http://webns.net/mvcb/" xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:wsil="http://schemas.xmlsoap.org/ws/2001/10/inspection/">
  <channel>
    <title>alek blogs xml</title>
    <link>http://www.extreme.indiana.edu/~aslom/blog/</link>
    <description>thoughts on data format for world domination</description>
    <admin:generatorAgent rdf:resource="http://www.extreme.indiana.edu/~aslom/blog/micro" />
    <admin:errorReportsTo rdf:resource="mailto:aslom@indiana.edu" />
    <dc:language>en-us</dc:language>
    <dc:date>2004-05-22T02:40:17Z</dc:date>
    <item>
      <title>Comparing XB1 to JDOM ...</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2003/07/30/ComparingXB1ToJDOM.html</link>
      <dc:subject>ComparingXB1ToJDOM</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/07/30/ComparingXB1ToJDOM.html</guid>
      <dc:date>2003-07-30T20:06:00-05:00</dc:date>
      <description>


&lt;p>This is mini review of "&lt;span class="ts">&lt;a href="http://www.artima.com/intv/jdomP.html">A
Design Review of JDOM&lt;/a> (&lt;/span>&lt;span class="sts">A Conversation with Elliotte
Rusty Harold, Part III)&lt;/span>&lt;span class="ts">"&lt;/span>. &lt;/p>


&lt;p> &lt;/p>


&lt;p>Let see how Xml Pull Builder a.k.a. XB1 (for more details on XB1 see its
&lt;a href="http://www.extreme.indiana.edu/xgws/xsoap/xpp/xb1/">home page&lt;/a>) compares to JDOM based on points raised in article.&lt;/p>


&lt;h4>A Short History of JDOM&lt;/h4>


&lt;p>Before we do this few word about XB1. XmlPull Builder Version 1 a.k.a. XB1 is
lightweight document object model to represent XML tree that is implemented on
to &lt;a href="http://www.xmlpull.org/">Common API for XML Pull Parsing&lt;/a> and alpha
version is in &lt;a href="http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/">
XPP3/MXP1&lt;/a>.&lt;/p>


&lt;h4>JDOM Offers Many Convenience Methods&lt;/h4>


&lt;p>XB1 is currently rather modest API and do not have lot of methods (except for obvious overloading of
methods) and that makes API quite simple (at least for now).&lt;/p>


&lt;h4>JDOM Allows Malformed Documents&lt;/h4>


&lt;p>XB1 implementation also allows creation of malformed documents or let put it
this way: the implementation does not do extensive checks but XB1 API allows
implementations that will do those checks (XB1 API is composed of interfaces).
BTW: example with control characters is not good as XML allows to have control
characters but escaped as numerical entities AFAIR ...&lt;/p>


&lt;h4>JDOM Ignores Setter Method Conventions&lt;/h4>


&lt;p>I do not see problem here: JDOM is not Java Bean and chaining methods may be
sometimes convenient (but should not be overused). This looks like rather weak
complaint ...&lt;/p>


&lt;h4>JDOM Uses Java Collections&lt;/h4>


&lt;p>XB1 goes one step even further and it uses Generics for even more natural
iterators than mentioned NodeList (currently moving to use future java.lang
SimpleIterator interface so
idiomatic for(XmlElement el: node.elements()) will work in JDK 1.5) .&lt;/p>


&lt;h4>JDOM Uses Too Many Checked Exceptions&lt;/h4>


&lt;p>XB1 has only one exception (at least for now) and it is runtime exception for
all reasons mentioned in the article and i woould add one more reason:
RuntimeException makes it easier to integrate XB1 into existing code.&lt;/p>


&lt;h4>Will JDOM Remain Class-Based?&lt;/h4>


&lt;p>I agree that interface based API is more versatile as it allows to abstract
form implementation and allow creating XML tree models directly from other data
sources that XML event stream from parser (like databases)&lt;/p>


&lt;h4>Conclusion&lt;/h4>


&lt;p>I was disappointed that XPath integration (and good performance of it) was
not mentioned. Also I would like to see some tests that compared memory
footprint and how easy is to build partial tree: this is very easy with XML pull
parsing but quite difficult with push parsing (in SAX it requires provide way to
overwrite endElement() callback and in general is as much fun as writing SOAP
deserializer with SAX). And as far as future of XML Tree APIs: I would like to
see how easy is to annotate XML infoset items with additional
information (needs for it emerges with data bindings and PSVI)&lt;/p>


&lt;p>But after all what makes and breaks APIs is how programmers feel about them,
and I feel good about XB1 when I am using it (nothing to do with the fact that I am author of it
of course ..)&lt;/p>


&lt;p> &lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p>This is mini review of "<span class="ts"><a href="http://www.artima.com/intv/jdomP.html">A
Design Review of JDOM</a> (</span>
          <span class="sts">A Conversation with Elliotte
Rusty Harold, Part III)</span>
          <span class="ts">"</span>. </p>


<p> </p>


<p>Let see how Xml Pull Builder a.k.a. XB1 (for more details on XB1 see its
<a href="http://www.extreme.indiana.edu/xgws/xsoap/xpp/xb1/">home page</a>) compares to JDOM based on points raised in article.</p>


<h4>A Short History of JDOM</h4>


<p>Before we do this few word about XB1. XmlPull Builder Version 1 a.k.a. XB1 is
lightweight document object model to represent XML tree that is implemented on
to <a href="http://www.xmlpull.org/">Common API for XML Pull Parsing</a> and alpha
version is in <a href="http://www.extreme.indiana.edu/xgws/xsoap/xpp/mxp1/">
XPP3/MXP1</a>.</p>


<h4>JDOM Offers Many Convenience Methods</h4>


<p>XB1 is currently rather modest API and do not have lot of methods (except for obvious overloading of
methods) and that makes API quite simple (at least for now).</p>


<h4>JDOM Allows Malformed Documents</h4>


<p>XB1 implementation also allows creation of malformed documents or let put it
this way: the implementation does not do extensive checks but XB1 API allows
implementations that will do those checks (XB1 API is composed of interfaces).
BTW: example with control characters is not good as XML allows to have control
characters but escaped as numerical entities AFAIR ...</p>


<h4>JDOM Ignores Setter Method Conventions</h4>


<p>I do not see problem here: JDOM is not Java Bean and chaining methods may be
sometimes convenient (but should not be overused). This looks like rather weak
complaint ...</p>


<h4>JDOM Uses Java Collections</h4>


<p>XB1 goes one step even further and it uses Generics for even more natural
iterators than mentioned NodeList (currently moving to use future java.lang
SimpleIterator interface so
idiomatic for(XmlElement el: node.elements()) will work in JDK 1.5) .</p>


<h4>JDOM Uses Too Many Checked Exceptions</h4>


<p>XB1 has only one exception (at least for now) and it is runtime exception for
all reasons mentioned in the article and i woould add one more reason:
RuntimeException makes it easier to integrate XB1 into existing code.</p>


<h4>Will JDOM Remain Class-Based?</h4>


<p>I agree that interface based API is more versatile as it allows to abstract
form implementation and allow creating XML tree models directly from other data
sources that XML event stream from parser (like databases)</p>


<h4>Conclusion</h4>


<p>I was disappointed that XPath integration (and good performance of it) was
not mentioned. Also I would like to see some tests that compared memory
footprint and how easy is to build partial tree: this is very easy with XML pull
parsing but quite difficult with push parsing (in SAX it requires provide way to
overwrite endElement() callback and in general is as much fun as writing SOAP
deserializer with SAX). And as far as future of XML Tree APIs: I would like to
see how easy is to annotate XML infoset items with additional
information (needs for it emerges with data bindings and PSVI)</p>


<p>But after all what makes and breaks APIs is how programmers feel about them,
and I feel good about XB1 when I am using it (nothing to do with the fact that I am author of it
of course ..)</p>


<p> </p>



</body>
    </item>
    <item>
      <title>Xydra: easy way to add Web Services to your portal </title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2003/07/27/XydraEasyWayToAddWebServicesToYourPortal.html</link>
      <dc:subject>XydraEasyWayToAddWebServicesToYourPortal</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/07/27/XydraEasyWayToAddWebServicesToYourPortal.html</guid>
      <dc:date>2003-07-27T23:55:00-05:00</dc:date>
      <description>


&lt;p>&lt;a href="http://www.extreme.indiana.edu/xgws/xydra/">Xydra&lt;/a> is a library
that uses servlet to provide XHTML based WSDL invoker. Xydra servlet takes WSDL
with XML Schema complex types as input, generates XHTML form
to allow user to fill content of input message, gathers submitted input values and converts form name-value pairs
into XML message that is sent it to Web Service and then finally displays result message. &lt;/p>


&lt;p> &lt;/p>


&lt;p>One could ask: there are other WSDL invokers so what makes Xydra unique? Here
is couple reasons:&lt;/p>


        &lt;ul>
          &lt;li>Xydra has pluggable data model and currently two backend to
          represent form and XML message content  One is traditional
          name-value pairs that are structured into tree (called TreePath) and
          second that is based on &lt;a href="http://protege.stanford.edu/">Protege&lt;/a>
          engine to use ontology describing web service to allow more reach
          constraints and relationship validation (called OntoBrew).&lt;/li>
          &lt;li>It is very easy to customize Xydra look and feel: just save
          auto-generated XHTML page, modify it to your needs and tell Xydra to
          use this XHTML page as template. What makes it really easy is that
          template is a regular XHTML page that is used by Xydra processing
          engine (unsurprisingly called Diesel) to annotate it with runtime
          information.&lt;/li>
          &lt;li>Xydra support complex types and generate nice XHTML form UI for
          arbitrarily nested XHTML forms.&lt;/li>
          &lt;li>You get source code so you can improve it :-)&lt;/li>
        &lt;/ul>


&lt;p>Sample installation is available online to test drive Xydra. It is open
source so anybody can play with it, improve it, and give us feedback, patches
are gladly accepted, we may even fix some bugs when reported (good bug report
that contains all information necessary to reproduce problem and/or unit test
greatly increases chances of getting problem fixed ...) &lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p><a href="http://www.extreme.indiana.edu/xgws/xydra/">Xydra</a> is a library
that uses servlet to provide XHTML based WSDL invoker. Xydra servlet takes WSDL
with XML Schema complex types as input, generates XHTML form
to allow user to fill content of input message, gathers submitted input values and converts form name-value pairs
into XML message that is sent it to Web Service and then finally displays result message. </p>


<p> </p>


<p>One could ask: there are other WSDL invokers so what makes Xydra unique? Here
is couple reasons:</p>


        <ul>
          <li>Xydra has pluggable data model and currently two backend to
          represent form and XML message content  One is traditional
          name-value pairs that are structured into tree (called TreePath) and
          second that is based on <a href="http://protege.stanford.edu/">Protege</a>
          engine to use ontology describing web service to allow more reach
          constraints and relationship validation (called OntoBrew).</li>
          <li>It is very easy to customize Xydra look and feel: just save
          auto-generated XHTML page, modify it to your needs and tell Xydra to
          use this XHTML page as template. What makes it really easy is that
          template is a regular XHTML page that is used by Xydra processing
          engine (unsurprisingly called Diesel) to annotate it with runtime
          information.</li>
          <li>Xydra support complex types and generate nice XHTML form UI for
          arbitrarily nested XHTML forms.</li>
          <li>You get source code so you can improve it :-)</li>
        </ul>


<p>Sample installation is available online to test drive Xydra. It is open
source so anybody can play with it, improve it, and give us feedback, patches
are gladly accepted, we may even fix some bugs when reported (good bug report
that contains all information necessary to reproduce problem and/or unit test
greatly increases chances of getting problem fixed ...) </p>



</body>
    </item>
    <item>
      <title>WSE2 younger brother of WSIF?</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2003/06/25/WSE2YoungerBrotherOfWSIF.html</link>
      <dc:subject>WSE2YoungerBrotherOfWSIF</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/06/25/WSE2YoungerBrotherOfWSIF.html</guid>
      <dc:date>2003-06-25T22:20:00-05:00</dc:date>
      <description>

&lt;blockquote>&lt;p>
(...)Ok, so let's start to talk about the product:
It is about SOAP Services. Actually, they still call it Web Services but in fact,
it has nothing to do with the web at all.
It is only about SOAP anymore - and it is only about SOAP as a framing format anymore.
Frankly, I think that this is a very good thing: using HTTP in your mission critical
applications might not be the best idea.
&lt;b>Wouldn't it be way cooler if you could just take an XML document,
wrap it in a SOAP envelope and send it over whatever reliable protocol you like?&lt;/b>
While still using all WS-* and GXA specifications?
&lt;/p>&lt;/blockquote>

&lt;p>
this &lt;a href="http://www.extreme.indiana.edu/~aslom/blog/">desription of WSE2&lt;/a> sounds like what
&lt;a href="http://ws.apache.org/wsif/">WSIF&lt;/a> except that
WSIF has support for industry standards such as CORBA/IIOP
and does not require to send SOAP envlopes.
&lt;/p>
&lt;p>However the problem with WSIF that it is only client side ...&lt;/p>



&lt;p> &lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

<blockquote><p>
(...)Ok, so let's start to talk about the product:
It is about SOAP Services. Actually, they still call it Web Services but in fact,
it has nothing to do with the web at all.
It is only about SOAP anymore - and it is only about SOAP as a framing format anymore.
Frankly, I think that this is a very good thing: using HTTP in your mission critical
applications might not be the best idea.
<b>Wouldn't it be way cooler if you could just take an XML document,
wrap it in a SOAP envelope and send it over whatever reliable protocol you like?</b>
While still using all WS-* and GXA specifications?
</p>
        </blockquote>

<p>
this <a href="">desription of WSE2</a> sounds like what
<a href="http://ws.apache.org/wsif/">WSIF</a> except that
WSIF has support for industry standards such as CORBA/IIOP
and does not require to send SOAP envlopes.
</p>
<p>However the problem with WSIF that it is only client side ...</p>



<p> </p>



</body>
    </item>
    <item>
      <title>Echo Arrives?</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2003/06/25/EchoArrives.html</link>
      <dc:subject>EchoArrives</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/06/25/EchoArrives.html</guid>
      <dc:date>2003-06-25T21:48:00-05:00</dc:date>
      <description>


&lt;p>As soon as &lt;a href="http://www.intertwingly.net/wiki/pie/RoadMap">Echo (aka Pie)&lt;/a>
is well defined
&lt;a href="http://www.extreme.indiana.edu/~aslom/blog/micro/index.html">microBlog&lt;/a>
will add support for it.
&lt;/p>


&lt;p> &lt;/p>



</description>
      <body xmlns="http://www.w3.org/1999/xhtml">


<p>As soon as <a href="http://www.intertwingly.net/wiki/pie/RoadMap">Echo (aka Pie)</a>
is well defined
<a href="http://www.extreme.indiana.edu/~aslom/blog/micro/index.html">microBlog</a>
will add support for it.
</p>


<p> </p>



</body>
    </item>
    <item>
      <title>good xml performance must be verifiable to matter</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2003/04/06/goodXmlPerformanceMustBeVerifiableToMatter.html</link>
      <dc:subject>goodXmlPerformanceMustBeVerifiableToMatter</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2003/04/06/goodXmlPerformanceMustBeVerifiableToMatter.html</guid>
      <dc:date>2003-04-06T20:40:00-06:00</dc:date>
      <description>
&lt;p>
Google found for me this
&lt;a href="http://www.c-art.com/pdf/Performer_BM.pdf">interesting report&lt;/a>
(&lt;a href="http://www.extreme.indiana.edu/~aslom/blog/repo/xml/perf/www.c-art.com/Performer_BM.pdf">local copy&lt;/a>)
on performance of XML object models.&lt;br>&lt;/br>
As this document is written to promote commercial product X-Fetch Performer
unfortunately details of tests (machines, JVM, code versions) or
at minimum source code for tests to verify results
is &lt;b>not available&lt;/b> and that renders those results
&lt;b>very unreliable&lt;/b> ...

&lt;/p>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">
<p>
Google found for me this
<a href="http://www.c-art.com/pdf/Performer_BM.pdf">interesting report</a>
(<a href="repo/xml/perf/www.c-art.com/Performer_BM.pdf">local copy</a>)
on performance of XML object models.<br></br>
As this document is written to promote commercial product X-Fetch Performer
unfortunately details of tests (machines, JVM, code versions) or
at minimum source code for tests to verify results
is <b>not available</b> and that renders those results
<b>very unreliable</b> ...

</p>

</body>
    </item>
    <item>
      <title>order is important</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2002/12/28/orderIsImportant.html</link>
      <dc:subject>orderIsImportant</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/12/28/orderIsImportant.html</guid>
      <dc:date>2002-12-28T09:30:00+01:00</dc:date>
      <description>

this is
&lt;a href="http://ph8.blogspot.com/2002_12_01_ph8_archive.html#90066715">old joke&lt;/a>
but still funny and good conclusion:
&lt;blockquote>
"OK, you're up," the Genie says to the manager. The manager says,
"I want those two back in the office after lunch."
&lt;br>&lt;/br>
Moral of the story: Always let your boss have the first say.
&lt;/blockquote>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

this is
<a href="http://ph8.blogspot.com/2002_12_01_ph8_archive.html#90066715">old joke</a>
but still funny and good conclusion:
<blockquote>
"OK, you're up," the Genie says to the manager. The manager says,
"I want those two back in the office after lunch."
<br></br>
Moral of the story: Always let your boss have the first say.
</blockquote>

</body>
    </item>
    <item>
      <title>Grid, workflows, and other observations</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2002/11/03/GridWorkflowsAndOtherObservations.html</link>
      <dc:subject>GridWorkflowsAndOtherObservations</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/11/03/GridWorkflowsAndOtherObservations.html</guid>
      <dc:date>2002-11-03T13:45:00-06:00</dc:date>
      <description>

Bunch of observations:

&lt;ul>
&lt;li>we need simple (and working) easy to use workflow engine for BPEL4WS
that works on grid (for example on top of CoG API but workflow engine
hides that it uses any particular grid toolkit ...).
&lt;/li>

&lt;li>WSDL as ultimate URL - but how to find correct WSDL
needs for permanent URL and in OGSA it is GSH ...
&lt;/li>

&lt;li>different computing paradigms: Java is to java specific
so now we replace Java with XML and re-implement Jini -> Gird and Web Services ...
&lt;/li>

&lt;li>not to forget (note to myself): why we need components?
&lt;br>&lt;/br>
reusability and etc is nice but why they are really needed
is because only few grid users are grid programmers or computing scientist (TODO:
check term)
instead we need to provide generic tools such as components (and XCAT!)
&lt;/li>

&lt;li>XSpaces needs official release, badly! (another note to myself)
&lt;/li>

&lt;li>Noted observation:
&lt;strong>Grid Spam&lt;/strong> is grid application that sends (XML) messages/events
that are automatically converted into emails ...
&lt;/li>

&lt;li>PC + Management = Managewoment ???
&lt;/li>

&lt;li>new product besides eCluster, eUtility, eDisaster in IBM family  is now
eWeSolveYurProblemsForSmallFee &amp;lt;blink> &amp;lt;blink> ;-)
&lt;/li>

&lt;li>heard on Oprah: nobody talks about what is happening after the wedding?
yeah we need to explore this space too ...
&lt;/li>

&lt;/ul>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

Bunch of observations:

<ul>
<li>we need simple (and working) easy to use workflow engine for BPEL4WS
that works on grid (for example on top of CoG API but workflow engine
hides that it uses any particular grid toolkit ...).
</li>

<li>WSDL as ultimate URL - but how to find correct WSDL
needs for permanent URL and in OGSA it is GSH ...
</li>

<li>different computing paradigms: Java is to java specific
so now we replace Java with XML and re-implement Jini -> Gird and Web Services ...
</li>

<li>not to forget (note to myself): why we need components?
<br></br>
reusability and etc is nice but why they are really needed
is because only few grid users are grid programmers or computing scientist (TODO:
check term)
instead we need to provide generic tools such as components (and XCAT!)
</li>

<li>XSpaces needs official release, badly! (another note to myself)
</li>

<li>Noted observation:
<strong>Grid Spam</strong> is grid application that sends (XML) messages/events
that are automatically converted into emails ...
</li>

<li>PC + Management = Managewoment ???
</li>

<li>new product besides eCluster, eUtility, eDisaster in IBM family  is now
eWeSolveYurProblemsForSmallFee &lt;blink> &lt;blink> ;-)
</li>

<li>heard on Oprah: nobody talks about what is happening after the wedding?
yeah we need to explore this space too ...
</li>

</ul>

</body>
    </item>
    <item>
      <title>why including XML APIs in JDK is bad idea</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2002/10/27/whyIncludingXMLAPIsInJDKIsBadIdea.html</link>
      <dc:subject>whyIncludingXMLAPIsInJDKIsBadIdea</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/10/27/whyIncludingXMLAPIsInJDKIsBadIdea.html</guid>
      <dc:date>2002-10-27</dc:date>
      <description>

&lt;p>XML is not about APIs it is about processing XML.
if XML was finished and there was no work on standards (DOM3 comes to mind)
and implementations were finished and abandoned (Xerces2, Xalan etc.)
than &lt;em>maybe&lt;/em> it would make sense ...
&lt;/p>

&lt;p>actually that brings another point: java badly needs library (JAR)
&lt;b>dependency mechanism&lt;/b> in use &lt;strong>right now&lt;/strong> ...
&lt;/p>


</description>
      <body xmlns="http://www.w3.org/1999/xhtml">

<p>XML is not about APIs it is about processing XML.
if XML was finished and there was no work on standards (DOM3 comes to mind)
and implementations were finished and abandoned (Xerces2, Xalan etc.)
than <em>maybe</em> it would make sense ...
</p>

<p>actually that brings another point: java badly needs library (JAR)
<b>dependency mechanism</b> in use <strong>right now</strong> ...
</p>


</body>
    </item>
    <item>
      <title>XML API that is between DOM and SAX</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2002/10/09/XMLAPIThatIsBetweenDOMAndSAX.html</link>
      <dc:subject>XMLAPIThatIsBetweenDOMAndSAX</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/10/09/XMLAPIThatIsBetweenDOMAndSAX.html</guid>
      <dc:date>2002-10-09</dc:date>
      <description>
&lt;p>
what is between DOM and SAX?
        &lt;/p>
        &lt;p>
of course
KHR, KHS, LHR or LHS
        &lt;/p>
        &lt;p>

by looking up ASCII codes D=68 S=83 so average is 75.5= K=75 or L=76,
then second letters O=79 A=65 so average 72=H
and finally M=77 X=88 so average 82.5 R=82 or S=83 :-)
        &lt;/p>


</description>
      <body xmlns="http://www.w3.org/1999/xhtml">
<p>
what is between DOM and SAX?
        </p>
        <p>
of course
KHR, KHS, LHR or LHS
        </p>
        <p>

by looking up ASCII codes D=68 S=83 so average is 75.5= K=75 or L=76,
then second letters O=79 A=65 so average 72=H
and finally M=77 X=88 so average 82.5 R=82 or S=83 :-)
        </p>


</body>
    </item>
    <item>
      <title>XML and APIs</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2002/10/09/XMLAndAPIs.html</link>
      <dc:subject>XMLAndAPIs</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/10/09/XMLAndAPIs.html</guid>
      <dc:date>2002-10-09</dc:date>
      <description>
&lt;p>
APIs that are doing essentially the same things are bad ...
        &lt;/p>
        &lt;p>

Corba: why PL independent
        &lt;/p>
        &lt;p>

XML integration ...
        &lt;/p>
        &lt;p>

components as Web Services will help life easier ...
                        &lt;/p>
        &lt;p>

cost of monolithic applications ...
        what is API
        &lt;/p>
        &lt;p>

XML schemas (what is target)
        &lt;/p>
        &lt;p>

SOAP acronym  ...
        no Simple ...
        no Object ...
        so what is left ...
        &lt;/p>
        &lt;p>

CORBA has no abstract protocol
        &lt;/p>


</description>
      <body xmlns="http://www.w3.org/1999/xhtml">
<p>
APIs that are doing essentially the same things are bad ...
        </p>
        <p>

Corba: why PL independent
        </p>
        <p>

XML integration ...
        </p>
        <p>

components as Web Services will help life easier ...
                        </p>
        <p>

cost of monolithic applications ...
        what is API
        </p>
        <p>

XML schemas (what is target)
        </p>
        <p>

SOAP acronym  ...
        no Simple ...
        no Object ...
        so what is left ...
        </p>
        <p>

CORBA has no abstract protocol
        </p>


</body>
    </item>
    <item>
      <title>XML and abstraction</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2002/10/09/XMLAndAbstraction.html</link>
      <dc:subject>XMLAndAbstraction</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/10/09/XMLAndAbstraction.html</guid>
      <dc:date>2002-10-09</dc:date>
      <description>
        &lt;p>too much abstraction is not good ...&lt;/p>
        &lt;p>how to keep close to XML infoset?
        &lt;/p>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>too much abstraction is not good ...</p>
        <p>how to keep close to XML infoset?
        </p>

</body>
    </item>
    <item>
      <title>streaming and incremental building of XML node tree</title>
      <link>http://www.extreme.indiana.edu/~aslom/blog/xml/2002/09/20/streamingAndIncrementalBuildingOfXMLNodeTree.html</link>
      <dc:subject>streamingAndIncrementalBuildingOfXMLNodeTree</dc:subject>
      <guid isPermaLink="false">http://www.extreme.indiana.edu/~aslom/blog/2002/09/20/streamingAndIncrementalBuildingOfXMLNodeTree.html</guid>
      <dc:date>2002-09-20</dc:date>
      <description>
        &lt;blockquote>How to combine best of SAX and DOM when working on SOAP&lt;/blockquote>
        &lt;p>
        &lt;b>motivation&lt;/b> DOM API (or one of its alternatives) is easier to use for document/literal encoding but
                streaming is essential for good performance ...
        &lt;/p>
        &lt;p>
        solution: two different modes of operation
        &lt;/p>
        &lt;ul>
                &lt;li>when constructing node tree (streaming)&lt;/li>
                &lt;li>walking already constructed node tree&lt;/li>
                &lt;/ul>

        &lt;p>

        one goal: have uniform API for both cases (stream is parsed as much as needed to walk tree)
        &lt;/p>
        &lt;p>
        second goal: expose enough information in API so app can control tree creation
                skipping parts of it or using XmlPullParser directly (no tree nodes created)
                parts of tree can be detached for later GC
        &lt;/p>
        &lt;p>

        handling fragments transparently
                add all ancestro namespace-prefix declarations
        &lt;/p>
&lt;pre>        XmlPullNode
                isFinished()
                finishParsing()
                XmlPullParser asPullParser
                XmlPullNodeWalker asNodeWalker
        XmlPullNodeWalker
                Object nextNode(),
                Object nextNodeChild(),
                String nextNodeText(),
                XmlPullNode nextNodeTag()
                XmlPullParser asPullParser();
&lt;/pre>
        &lt;p>

        DOM working as front partial tree - mirrors what is in XmlPullNode
                however operations directly on XmlPullNode are _not_ mirrored to DOM!!!

        &lt;/p>
        &lt;p>
        Possibly related: PullDOM http://www.prescod.net/python/pulldom.html
&lt;/p>

</description>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <blockquote>How to combine best of SAX and DOM when working on SOAP</blockquote>
        <p>
        <b>motivation</b> DOM API (or one of its alternatives) is easier to use for document/literal encoding but
                streaming is essential for good performance ...
        </p>
        <p>
        solution: two different modes of operation
        </p>
        <ul>
                <li>when constructing node tree (streaming)</li>
                <li>walking already constructed node tree</li>
                </ul>

        <p>

        one goal: have uniform API for both cases (stream is parsed as much as needed to walk tree)
        </p>
        <p>
        second goal: expose enough information in API so app can control tree creation
                skipping parts of it or using XmlPullParser directly (no tree nodes created)
                parts of tree can be detached for later GC
        </p>
        <p>

        handling fragments transparently
                add all ancestro namespace-prefix declarations
        </p>
<pre>        XmlPullNode
                isFinished()
                finishParsing()
                XmlPullParser asPullParser
                XmlPullNodeWalker asNodeWalker
        XmlPullNodeWalker
                Object nextNode(),
                Object nextNodeChild(),
                String nextNodeText(),
                XmlPullNode nextNodeTag()
                XmlPullParser asPullParser();
</pre>
        <p>

        DOM working as front partial tree - mirrors what is in XmlPullNode
                however operations directly on XmlPullNode are _not_ mirrored to DOM!!!

        </p>
        <p>
        Possibly related: PullDOM http://www.prescod.net/python/pulldom.html
</p>

</body>
    </item>
  </channel>
</rss>