<?xml version="1.0" encoding="utf-8"?>
<feed version="0.3" xmlns="http://purl.org/atom/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>spikes</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/" />
<modified>2006-12-06T23:25:00Z</modified>
<tagline>Random spikes from Chris Fry&apos;s brain.</tagline>
<id>tag:www.cfry.net,2007:/blog/spikes//2</id>
<generator url="http://www.movabletype.org/" version="3.01D">Movable Type</generator>
<copyright>Copyright (c) 2006, Chris</copyright>
<entry>
<title>XProc: An XML Pipeline Language</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2006/12/xproc_an_xml_pi.html" />
<modified>2006-12-06T23:25:00Z</modified>
<issued>2006-12-06T23:22:12Z</issued>
<id>tag:www.cfry.net,2006:/blog/spikes//2.100</id>
<created>2006-12-06T23:22:12Z</created>
<summary type="text/plain">I just heard that Norm Walsh is using StAX in his trial implementation of XProc http://xproc.org/ ....</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>I just heard that Norm Walsh is using StAX in his trial implementation of XProc <a href="http://xproc.org/">http://xproc.org/</a> .</p>]]>

</content>
</entry>
<entry>
<title>A new StAX implementation for JSON</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2006/12/a_new_stax_impl.html" />
<modified>2006-12-01T20:14:06Z</modified>
<issued>2006-12-01T20:12:19Z</issued>
<id>tag:www.cfry.net,2006:/blog/spikes//2.99</id>
<created>2006-12-01T20:12:19Z</created>
<summary type="text/plain">Peter Morelli just pointed this out to me. Jettison is a collection of StAX parsers and writers which read and write JSON. This allows nearly transparent enablement of JSON based web services in services frameworks like CXF. There are currently...</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>Peter Morelli just pointed this out to me. </p>

<p><a href="http://jettison.codehaus.org/"><br />
Jettison is a collection of StAX </a> parsers and writers which read and write JSON. This allows nearly transparent enablement of JSON based web services in services frameworks like CXF.</p>

<p>There are currently two included conventions for mapping JSON to XML. The first, is BadgerFish which implements<br />
the full XML infoset in JSON using various techniques. The second, is called the "mapped" convention. It allows you to manually map XML namespaces to JSON element prefixes.</p>

<p>Jettison was developed for usage in XFire and CXF to enable JSON based services.</p>]]>

</content>
</entry>
<entry>
<title>Stax is part of JEE 5.0</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2006/07/stax_is_part_of.html" />
<modified>2006-07-30T05:31:28Z</modified>
<issued>2006-07-30T05:19:57Z</issued>
<id>tag:www.cfry.net,2006:/blog/spikes//2.89</id>
<created>2006-07-30T05:19:57Z</created>
<summary type="text/plain">Stax (JSR 173) is now part of JEE 5.0, it got a nice congratulations post here , thanks Mike. The whole reason this api exists is so you don&apos;t have to create a strange inversion of control architecture to parse...</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>Stax (<a href="http://jcp.org/en/jsr/detail?id=173">JSR 173</a>) is now part of <a href="https://java.sun.com/javaee/technologies/">JEE 5.0</a>, it got a nice congratulations post <a href="http://javathehutt.blogspot.com/2005/07/javaone-2005-jee-50-and-philosophical.html">here </a>, thanks Mike.  The whole reason this api exists is so you don't have to create a strange inversion of control architecture to parse XML.  You drive the XML parser it doesn't drive you.</p>]]>

</content>
</entry>
<entry>
<title>RSS Overview</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2005/09/rss_overview.html" />
<modified>2005-09-21T10:08:56Z</modified>
<issued>2005-09-02T00:24:12Z</issued>
<id>tag:www.cfry.net,2005:/blog/spikes//2.45</id>
<created>2005-09-02T00:24:12Z</created>
<summary type="text/plain">Mark just published a nice overview of RSS and Atom, useful for anyone that&apos;s interested in thes syndication technologies....</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>Mark just published a nice <a href="http://www.mnot.net/blog/2005/09/01/rss_tutorial">overview</a> of RSS and Atom, useful for anyone that's interested in thes syndication technologies.</p>]]>

</content>
</entry>
<entry>
<title>RSS Venture Fund</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2005/07/rss_venture_fun.html" />
<modified>2005-09-21T10:08:56Z</modified>
<issued>2005-07-07T18:49:56Z</issued>
<id>tag:www.cfry.net,2005:/blog/spikes//2.37</id>
<created>2005-07-07T18:49:56Z</created>
<summary type="text/plain">It seems like the entire RSS things is really out of the bag now. There is a 100M venture fund being formed to invest in RSS technologies, read more here....</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>It seems like the entire RSS things is really out of the bag now.  There is a 100M venture fund being formed to invest in RSS technologies, read more <a href="http://www.siliconvalleywatcher.com/mt/archives/2005/06/were_off_to_the.php">here</a>.</p>]]>

</content>
</entry>
<entry>
<title>RSS, tagging and attention</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2005/05/rss_tagging_and.html" />
<modified>2005-05-19T23:34:04Z</modified>
<issued>2005-05-19T23:31:55Z</issued>
<id>tag:www.cfry.net,2005:/blog/spikes//2.34</id>
<created>2005-05-19T23:31:55Z</created>
<summary type="text/plain">One of the things I have been thinking about lately is that Web 2.0 technologies are more about focusing attention than they are about categorizing information. Blogs, RSS and tagging combined seem to create a great information system where small...</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>One of the things I have been thinking about lately is that Web 2.0 technologies are more about focusing attention than they are about categorizing information.  Blogs, RSS and tagging combined seem to create a great information system where small bits of information are brought to your attention and ranked in importance by the collective behavior of all internet users out there.</p>]]>

</content>
</entry>
<entry>
<title>Annotation/Tag driven knowledge organization</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2005/05/annotationtag_d.html" />
<modified>2005-09-21T10:08:56Z</modified>
<issued>2005-05-03T18:48:21Z</issued>
<id>tag:www.cfry.net,2005:/blog/spikes//2.32</id>
<created>2005-05-03T18:48:21Z</created>
<summary type="text/plain">A couple of cool sites are copying delicious and creating organized knowledge using tags. There is one site that is doing it around events at upcoming.org This is a way for people to autocategorize information and allow others to search...</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>A couple of cool sites are copying <a href="http://del.icio.us">delicious</a> and creating organized knowledge  using tags.  There is one  site that is doing it around events at <a href="http://upcoming.org">upcoming.org </a> This is a way for people to autocategorize information and allow others to search their categories.    It reminds me a little of the early days of the web when everyone was adding tags to their HTML pages.  However the nice thing about these tags are that they are entered by others and not the author of the event/link so they have some resistance to being gamed.  The whole area is called <a href="http://en.wikipedia.org/wiki/Folksonomy">folksonomy</a>.</p>]]>

</content>
</entry>
<entry>
<title>AJAX</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2005/03/ajax.html" />
<modified>2005-03-18T00:38:03Z</modified>
<issued>2005-03-18T00:35:55Z</issued>
<id>tag:www.cfry.net,2005:/blog/spikes//2.31</id>
<created>2005-03-18T00:35:55Z</created>
<summary type="text/plain">It seems like there is a cool new way to write Web Applications using old technology. Google is using it to create rich applications like web mail and maps. Check out blog entries here http://www.ajaxian.com/....</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>It seems like there is a cool new way to write Web Applications using old technology.  Google is using it to create rich applications like web mail and maps.  Check out blog entries here <a href="http://www.ajaxian.com/">http://www.ajaxian.com/</a>.</p>]]>

</content>
</entry>
<entry>
<title>A Framework for Versioning XML at the Java API/XML Processor Level</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2005/03/a_framework_for_1.html" />
<modified>2005-09-21T10:08:56Z</modified>
<issued>2005-03-14T21:40:18Z</issued>
<id>tag:www.cfry.net,2005:/blog/spikes//2.30</id>
<created>2005-03-14T21:40:18Z</created>
<summary type="text/plain">This is an idea I have had for a while. It basically recognizes that versioning of XML documents should be done at the instance level and not at the schema level. Developers working in the enterprise are confronted by XML...</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>This is an idea I have had for a while.  It basically recognizes that versioning of XML documents should be done at the instance level and not at the schema level.</p>

<p>Developers working in the enterprise are confronted by XML documents (SOAP Payloads, Customer Purchase Orders, Application Data) that each have a different version and are described by various schemas.  This article is about an idea I have for a java framework for processing versioned XML documents.  Many people think that the eXtensible part of XML means somehow that XML documents are more versionable than other documents.  This is not the case.  That X simply means that the original DTD/XML spec allowed you to create a fixed new grammar that described a set of documents.  Instances of a specific XML grammar are not any more versionable than any other data format.  This article focuses on versioning at the XML level.</p>

<p>One of the first principles of a versioning framework is to ignore what you don’t understand.<br />
<strong><br />
Requirement 1: The XML Processor must ignore any content it does not understand.</strong></p>

<p>SOAP has a simple mechanism for indicating in the processing model that something must be understood.  If you do make non-backward compatible changes you will want to signal to the framework that it should fault if it encounters the new element.  This leads to requirement 2, that you must be able to signal required elements.  A sub requirement to this is that content which is not understood is preferred.<br />
<strong><br />
Requirement 2: The processor must fault if it encounters an element that it must understand.</strong></p>

<p>The last requirement is that it must be possible to create applications that are both forward and backward compatible using the versioning framework.</p>

<p><strong>Requirement 3: Applications must be both backward and forwards compatible.</strong></p>

<p>The following section outlines a proposal for the versioning framework.  It has five new attributes <em>mustUnderstand</em>, <em>mayIgnore</em>, <em>version</em>, <em>ref</em>, <em>vref</em>.  The above requirements coupled with these attributes lead to a generic processing framework that all XML processors can use and is not coupled to any specific XML vocabulary.  </p>

<p><strong>Attribute:</strong> mustUnderstand<br />
<strong>Definition:</strong>  All processors must understand any element tagged with this attribute, they also mustUnderstand all children of this element except those elements specifically tagged with mayIgnore<br />
<strong>Values: </strong>true | false</p>

<p><strong>Attribute:</strong> mayIgnore<br />
<strong>Definition:</strong> All processors may ignore this element<br />
<strong>Values:</strong> true | false</p>

<p><strong>Attribute:</strong> version<br />
<strong>Definition:</strong> identifies this element as belonging to a specific version of the grammar<br />
<strong>Values:</strong> integer ( . integer ) *</p>

<p><strong>Attribute:</strong> vref<br />
<strong>Definition:</strong> allows the document to target an element identified by a vid attribute<br />
<strong>Values:</strong> String</p>

<p><strong>Attribute:</strong> vid <br />
<strong>Definition:</strong> the target of the vref element<br />
<strong>Values:</strong> String</p>

<p><br />
Examples:</p>

<p class="MsoNormal">&lt;doc xmlns:ver=”http://cfry.net/xml_versioning”&gt;</p>
<p class="MsoNormal">&nbsp;&nbsp; &lt;element ver:mustUnderstand=”true” version=”1.0”&gt;</p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;…. Content</p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; &lt;/element&gt;</p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; &lt;element2 ver:mayIgnore=”true” version=”2.0”&gt;</p>
<p class="MsoNormal">&nbsp;&nbsp;&nbsp; &lt;/element2&gt;</p>
<p class="MsoNormal">&lt;/doc&gt;</p>
All processors must report element but mayIgnore element2.  Any processor can choose to ignore and delete element2.]]>

</content>
</entry>
<entry>
<title>StAX based WebService engine</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2004/09/stax_based_webs.html" />
<modified>2005-09-21T10:08:56Z</modified>
<issued>2004-09-21T18:26:35Z</issued>
<id>tag:www.cfry.net,2004:/blog/spikes//2.19</id>
<created>2004-09-21T18:26:35Z</created>
<summary type="text/plain">James Strachan is building a StAX based web service engine, check out his post here...</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>James Strachan is building a StAX based web service engine, check out his post <a href="http://radio.weblogs.com/0112098/2004/09/21.html#a506">here </a></p>]]>

</content>
</entry>
<entry>
<title>XML Prefixes and Namespaces</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2004/09/xml_prefixes_an.html" />
<modified>2005-09-21T10:08:56Z</modified>
<issued>2004-09-08T22:24:52Z</issued>
<id>tag:www.cfry.net,2004:/blog/spikes//2.12</id>
<created>2004-09-08T22:24:52Z</created>
<summary type="text/plain">Arguably namespaces and encodings are the two most complex beasts to handle when processing XML. Namespaces are actually a graft onto the original XML 1.0 specification see XML 1.0 and namespaces. The namespace spec changed the allowable names in an...</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>Arguably namespaces and encodings are the two most complex beasts to handle when processing XML. Namespaces are actually a graft onto the original XML 1.0 specification see XML 1.0 and namespaces. The namespace spec changed the allowable names in an xml document to allow you to define a namespace. Originally an XML name could have any number of colons, for example "x:a:chris" was a legal name. The namespace spec changed that to allow only a single colon. For example "x:chris" would create a name that had a localPart "chris" and the namespace uri that was bound to "x". </p>

<p>The following fragment illustrates some things that you can do with namespaces: </p>

<p>&lt;doc xmlns=&quot;myNamespace&quot; xmlns:pre=&quot;myNamespace&quot; xmlns:pro=&quot;myNamespace&quot;&gt; <br>
&lt;pro:A pre:a=&quot;foo&quot; b=&quot;foo&quot;&gt; <br>
&lt;C&gt; <br>
&lt;B xmlns=&quot;&quot; pro:a=&quot;foo&quot; xmlns:pro=&quot;bar&quot;/&gt; <br>
&lt;/C&gt; <br>
&lt;/pro:A&gt; <br>
&lt;/doc&gt; </p>

<p>The following output (from the stream API) indicates the namespace of the elements in brackets. Some things to note, if you undeclare the default namespace the element that contains that redeclaration is not in the default namespace. Also you can use a namespace declaration in an attribute list before you declare it. </p>

<p>START_ELEMENT [&lt;['myNamespace']:doc xmlns=&quot;myNamespace&quot; xmlns:pre=&quot;myNamespace&quot; 
xmlns:pro=&quot;myNamespace&quot;&gt;] <br>
START_ELEMENT [&lt;['myNamespace']:pro:A ['myNamespace']:pre:a=&quot;foo&quot; b=&quot;foo&quot;&gt;] <br>
START_ELEMENT [&lt;['myNamespace']:C&gt;] <br>
START_ELEMENT [&lt;B xmlns=&quot;&quot; xmlns:pro=&quot;bar&quot; ['bar']:pro:a=&quot;foo&quot;&gt;] <br>
END_ELEMENT [&lt;/B&gt;] <br>
END_ELEMENT [&lt;/['myNamespace']:C&gt;] <br>
END_ELEMENT [&lt;/['myNamespace']:pro:A&gt;] <br>
END_ELEMENT [&lt;/['myNamespace']:doc&gt;] </p>

<p>The first thing to note is that namespaces are scoped. That is, you can rebind them in the scope of the startelement that declared them. Anything that references the prefix will get bound to the new uri. This is to allow documents to be nested inside other documents and not have their namespaces change. The default namespace is attached to anything that is not specifically bound with a prefix. You can undeclare the default namespace by binding it to "". You can also have multiple prefixes bound to the same uri. This creates situation where unless you know the prefix used to bind the uri to the local name you can never recreate the document. </p>

<p><br />
Attributes and Namespaces</p>

<p>Many people think that attributes are automatically put into the namespace of the element that declares the attribute. This isn't true. Attributes are in the default namespace (if it is active) or in the namespace that is bound to the prefix that is declared. </p>

<p><br />
QName</p>

<p>Prefixes are part of the XML Infoset http://www.w3.org/TR/xml-infoset/#infoitem.element </p>

<p>They are defined here http://www.w3.org/TR/REC-xml-names/#ns-qualnames </p>

<p>They are explicitly referenced in the XPath API http://www.w3.org/TR/xpath#predicates </p>

<p><br />
Why do prefixes matter?</p>

<p>1) Philosophical: prefixes are explicitly part of the the XML Infoset. Therefore parsers/processors should be required to always report them. </p>

<p>2) A large majority of XML applications actually use prefixes. It is extremely common for developers to utilize prefixes in their applications, even if they strictly don't need to or shouldn't. It's treated like an alias for the namespace URI. (Of course, it's not a good idea for developers to treat it as an alias since the prefix is only properly valid in it's declared scope, but still some do). Therefore, since prefixes are widely used, it doesn't make sense to burden the majority of developers with a prefix-free QName for the minority of developers who in practice don't use prefixes. </p>

<p><br />
Prefixes and Canonicalization</p>

<p>http://www.w3.org/TR/xml-c14n#NoNSPrefixRewriting </p>

<p>4.4 No Namespace Prefix Rewriting The C14N-20000119 Canonical XML draft described a method for rewriting namespace prefixes such that two documents having logically equivalent namespace declarations would also have identical namespace prefixes. The goal was to eliminate dependence on the particular namespace prefixes in a document when testing for logical equivalence. However, there now exist a number of contexts in which namespace prefixes can impart information value in an XML document. For example, an XPath expression in an attribute value or element content can reference a namespace prefix. Thus, rewriting the namespace prefixes would damage such a document by changing its meaning (and it cannot be logically equivalent if its meaning has changed). </p>

<p>More formally, let D1 be a document containing an XPath in an attribute value or element content that refers to namespace prefixes used in D1. Further assume that the namespace prefixes in D1 will all be rewritten by the canonicalization method. Let D2 = D1, then modify the namespace prefixes in D2 and modify the XPath expression's references to namespace prefixes such that D2 and D1 remain logically equivalent. Since namespace rewriting does not include occurrences of namespace references in attribute values and element content, the canonical form of D1 does not equal the canonical form of D2 because the XPath will be different. Thus, although namespace rewriting normalizes the namespace declarations, the goal eliminating dependence on the particular namespace prefixes in the document is not achieved. </p>

<p>Moreover, it is possible to prove that namespace rewriting is harmful, rather than simply ineffective. Let D1 be a document containing an XPath in an attribute value or element content that refers to namespace prefixes used in D1. Further assume that the namespace prefixes in D1 will all be rewritten by the canonicalization method. Now let D2 be the canonical form of D1. Clearly, the canonical forms of D1 and D2 are equivalent (since D2 is the canonical form of the canonical form of D1), yet D1 and D2 are not logically equivalent because the aforementioned XPath works in D1 and doesn't work in D2. </p>

<p>Note that an argument similar to this can be leveled against the XML canonicalization method based on any of the cases in the Limitations, the problems cannot easily be fixed in those cases, whereas here we have an opportunity to avoid purposefully introducing such a limitation. </p>

<p>Applications that must test for logical equivalence must perform more sophisticated tests than mere octet stream comparison. However, this is quite likely to be necessary in any case in order to test for logical equivalencies based on application rules as well as rules from other XML-related recommendations, working drafts, and future works.</p>]]>

</content>
</entry>
<entry>
<title>XML Patterns</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2004/08/xml_patterns.html" />
<modified>2005-09-21T10:08:56Z</modified>
<issued>2004-08-27T07:27:03Z</issued>
<id>tag:www.cfry.net,2004:/blog/spikes//2.8</id>
<created>2004-08-27T07:27:03Z</created>
<summary type="text/plain"><![CDATA[XML has three basic patterns that I've seen: Configuration Data Data Description Programming Language/Scripting Tool Configuration Data In Weblogic Server we use XML to describe our server configuration. &lt;Server&gt; ... config data ... &lt;/Server&gt; Rowset Data XML can clearly be...]]></summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>XML has three basic patterns that I've seen:</p>

<ol>
 <li>Configuration Data</li>
 <li>Data Description</li>
 <li>Programming Language/Scripting Tool</li>
</ol>

<p><strong>Configuration Data</strong></p>

<p>In Weblogic Server we use XML to describe our server configuration.  </p>

<p style="margin-left: 3"><font face="Courier">
<span style="background-color: #CCCCFF">
&lt;Server&gt;
   ... config data ...
&lt;/Server&gt;
</span></font></p>

<p><strong>Rowset Data</strong></p>

<p>XML can clearly be used to describe data and is often seen in rows</p>

<p><strong>Interpreter</strong></p>

<p>Ant is the best example of using XML for scripting.</p>]]>

</content>
</entry>
<entry>
<title>XML is a bad transport for XML</title>
<link rel="alternate" type="text/html" href="http://www.cfry.net/blog/spikes/archives/2004/08/xml_is_a_bad_tr.html" />
<modified>2005-09-21T07:03:51Z</modified>
<issued>2004-08-24T08:23:53Z</issued>
<id>tag:www.cfry.net,2004:/blog/spikes//2.2</id>
<created>2004-08-24T08:23:53Z</created>
<summary type="text/plain">In general XML is a bad transport for XML. Often when you transmit XML your first inclination is to use SOAP or Web Services. This has the funny effect of making a very inefficient transport for XML. Here is why:...</summary>
<author>
<name>Chris</name>
<url>http://cfry.net</url>
<email>social@cfry.net</email>
</author>
<dc:subject>XML</dc:subject>
<content type="text/html" mode="escaped" xml:lang="en" xml:base="http://www.cfry.net/blog/spikes/">
<![CDATA[<p>In general XML is a bad transport for XML.  Often when you transmit XML your first inclination is to use SOAP or Web Services.  This has the funny effect of making a very inefficient transport for XML.  Here is why:  It's actually invalid to have certain characters in the Character Data section of XML.  This means when the SOAP processor writes the XML characters of the document you want to pass into the SOAP body it has to check that there are no '<' and other inadmissable characters in the XML you are passing in the SOAP message.  This leads to some slow processing.</p>]]>

</content>
</entry>

</feed>