<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IANP.ORG &#187; XML</title>
	<atom:link href="http://ianp.org/tag/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://ianp.org</link>
	<description>random thought and mutterings</description>
	<lastBuildDate>Thu, 25 Mar 2010 09:41:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Level Definition DTD for PushButtonEngine</title>
		<link>http://ianp.org/2009/05/level-definition-dtd-for-pushbuttonengine/</link>
		<comments>http://ianp.org/2009/05/level-definition-dtd-for-pushbuttonengine/#comments</comments>
		<pubDate>Sat, 23 May 2009 04:19:42 +0000</pubDate>
		<dc:creator>Ian Phillips</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://ianp.org/?p=103</guid>
		<description><![CDATA[I use Oxygen for all my XML editing and if you have a DTD or schema it has some pretty neat autocompletion and error highlighting features, with that in mind I&#8217;ve created a basic DTD for the level definition file in PBE, you can grab it from here. Note that it&#8217;s not ideal, as you [...]]]></description>
			<content:encoded><![CDATA[<p>I use Oxygen for all my XML editing and if you have a DTD or schema it has some pretty neat autocompletion and error highlighting features, with that in mind I&#8217;ve created a basic DTD for the level definition file in <a href="http://pushbuttonengine.com/">PBE</a>, you can grab it from <a href="http://ianp.org/files/2009/05/pbelevel.dtd">here</a>. Note that it&#8217;s not ideal, as you get spurious warnings for the fields that you specify inside your component definitions, but there&#8217;s not much that can be done about&nbsp;that.</p>

<p><em>Update (2009-05-24):</em> added an XSD <a href="http://ianp.org/files/2009/05/pbelevel.xsd">version of the file</a>, this handles unparsed content gracefully, useful for&nbsp;components.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianp.org/2009/05/level-definition-dtd-for-pushbuttonengine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adding Namespace Support to RvSnoop</title>
		<link>http://ianp.org/2006/10/adding-namespace-support-to-rvsnoop/</link>
		<comments>http://ianp.org/2006/10/adding-namespace-support-to-rvsnoop/#comments</comments>
		<pubDate>Tue, 17 Oct 2006 09:58:15 +0000</pubDate>
		<dc:creator>Ian Phillips</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[RvSnoop]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[TIBCO]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://ianp.org/?p=72</guid>
		<description><![CDATA[For RvSnoop I&#8217;m currently working on adding namespaces to all
of the files that are used to save the application preferences and
also the project files. This is a Good Thing in and of itself, as it
allows me to use XML Schema to validate and document the
files formats. But, more importantly, it gives me the opportunity to
refactor [...]]]></description>
			<content:encoded><![CDATA[<p>For <a href="http://rvsnoop.prg/">RvSnoop</a> I&#8217;m currently working on adding namespaces to all
of the files that are used to save the application preferences and
also the project files. This is a Good Thing in and of itself, as it
allows me to use <a href="http://www.w3.org/XML/Schema">XML Schema</a> to validate and document the
files formats. But, more importantly, it gives me the opportunity to
refactor as I go alond, the general plan is to make the projects in
the next release be based on directories rather than a single XML
file, this will allow me to use a disk based storage mechanism for
messages so that they will be persistent across&nbsp;sessions.</p>

<h3>Playing Well With&nbsp;Others</h3>

<p>At the same time, I&#8217;ve taken the opportunity to include some of the
<a href="http://www.apache.org/">Apache</a> <a href="http://jakarta.apache.org/commons/index.html">Commons</a> libraries in the build. There were
(well, still are) a number of small utility classes scattered around
which I&#8217;m planning on replacing with the versions from&nbsp;Apache.</p>

<p>One side effect of this is that the build is increasing in size, to
help control this I&#8217;m going to remove the <a href="http://www.oracle.com/database/berkeley-db/je/index.html">Berkeley DB</a>
dependency from the build. I was origiannly planning to use this for
the on disk message store but I&#8217;ve changed my mind here. My current
thinking is to just write the messages out to files but to have a
set of indexes (probably built using <a href="http://lucene.apache.org/java/docs/index.html">Lucene</a>) as well for
searching and&nbsp;sorting.</p>

<p>There should be another (alpha) release out later this week with the
Commons and Berkeley DB changes complete, and a release next week
with the new project&nbsp;structure.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianp.org/2006/10/adding-namespace-support-to-rvsnoop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuration via XML or code?</title>
		<link>http://ianp.org/2006/05/configuration-via-xml-or-code/</link>
		<comments>http://ianp.org/2006/05/configuration-via-xml-or-code/#comments</comments>
		<pubDate>Tue, 02 May 2006 19:34:56 +0000</pubDate>
		<dc:creator>Ian Phillips</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://ianp.org/?p=62</guid>
		<description><![CDATA[When is using XML based configuration files preferable to using source based interfaces and/or classes? I&#8217;ve been taking a look at command frameworks such as those that come with the various rich client toolkits out there, and also GUI Commands. It struck me that many things which I would allow via a concrete class or [...]]]></description>
			<content:encoded><![CDATA[<p>When is using XML based configuration files preferable to using source based interfaces and/or classes? I&#8217;ve been taking a look at command frameworks such as those that come with the various rich client toolkits out there, and also <a href="http://pietschy.org/software/gui-commands/">GUI Commands</a>. It struck me that many things which I would allow via a concrete class or an abstract base class these frameworks try to push out into XML files.<span id="more-62"></span>
I can see that XML could be good for huge apps such as, for example, <a href="http://www.eclipse.org/">Eclipse</a>, where the developers want to provide extensibility without a huge class loading overhead. But most of these rich client kits are designed to be used to create small to medium sized applications and if this is what you are doing then I don&#8217;t see the point of scattering configuration information around the place, it&#8217;s better to keep it all together and the only place that this can happen is right there in the source code.
One final argument for keeping some of this external is for easy internationalisation, but this can be achieved simply using standard Java resource bundles or Eclipse style NLS libraries (I prefer the eclipse style NLS approach as it makes code more&nbsp;readable).</p>
]]></content:encoded>
			<wfw:commentRss>http://ianp.org/2006/05/configuration-via-xml-or-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Where is the user interface?</title>
		<link>http://ianp.org/2005/11/where-is-the-user-interface/</link>
		<comments>http://ianp.org/2005/11/where-is-the-user-interface/#comments</comments>
		<pubDate>Thu, 17 Nov 2005 15:56:55 +0000</pubDate>
		<dc:creator>Ian Phillips</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://ianp.org/?p=56</guid>
		<description><![CDATA[This is related to this quote by Michael Kay on the XML-DEV mailing list, on the subject of&#160;validation.


  There is also scope for reasonableness checks to catch data input
  errors. But they belong as close to the user interface level as
  possible, not at the information management&#160;level.


Which is fine as far as [...]]]></description>
			<content:encoded><![CDATA[<p>This is related to this quote by Michael Kay on the XML-DEV mailing list, on the subject of&nbsp;validation.</p>

<blockquote>
  <p>There is also scope for reasonableness checks to catch data input
  errors. But they belong as close to the user interface level as
  possible, not at the information management&nbsp;level.</p>
</blockquote>

<p>Which is fine as far as it goes but the use of the term &#8216;user interface&#8217; is misleading, I think, to most people (myself included) this implies &#8216;end user&#8217; but this is not always the case. If, for example, you are writing a service (web- or otherwise) for external, or even only internal, use, then the &#8216;user interface&#8217; is the service interface that you expose and it&#8217;s perfectly reasonable (in fact, I&#8217;d argue that it&#8217;s pretty much essential) to validate every message that your service&nbsp;receives.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianp.org/2005/11/where-is-the-user-interface/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSR-173 Reference Implementation</title>
		<link>http://ianp.org/2003/11/jsr-173-reference-implementation/</link>
		<comments>http://ianp.org/2003/11/jsr-173-reference-implementation/#comments</comments>
		<pubDate>Tue, 18 Nov 2003 19:11:04 +0000</pubDate>
		<dc:creator>Ian Phillips</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://ianp.org/?p=21</guid>
		<description><![CDATA[I&#8217;ve been looking at the new streaming API for XML (JSR-173), I&#8217;ve been generally impressed but have found a bug in the reference implementation, here&#8217;s the details, using this test&#160;program:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.io.*;
import javax.xml.stream.*;
public class StaxWriterTest &#123;
	static String nsURI = &#34;http://ianp.org/nsURI&#34;;
	static String nsPrefix = &#34;a&#34;;
	static int depth = 0; // Used to pretty print the output.
	static XMLStreamWriter [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking at the new streaming <abbr>API</abbr> for <abbr title="Extensible Markup Language">XML</abbr> (<a href="http;//www.jcp.org/en/jsr/detail?id=173">JSR-173</a>), I&#8217;ve been generally impressed but have found a bug in the reference implementation, here&#8217;s the details, using this test&nbsp;program:</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
</pre></td><td class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.xml.stream.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> StaxWriterTest <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> nsURI <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;http://ianp.org/nsURI&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #003399;">String</span> nsPrefix <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;a&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">int</span> depth <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Used to pretty print the output.</span>
	<span style="color: #000000; font-weight: bold;">static</span> XMLStreamWriter w<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			w.<span style="color: #006633;">writeStartDocument</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			indent<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeStartElement</span><span style="color: #009900;">&#40;</span>nsURI, <span style="color: #0000ff;">&quot;root&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeNamespace</span><span style="color: #009900;">&#40;</span>nsPrefix, nsURI<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			indent<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeEmptyElement</span><span style="color: #009900;">&#40;</span>nsURI, <span style="color: #0000ff;">&quot;levelOne&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeAttribute</span><span style="color: #009900;">&#40;</span>nsURI, <span style="color: #0000ff;">&quot;foo&quot;</span>, <span style="color: #0000ff;">&quot;foo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			indent<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeStartElement</span><span style="color: #009900;">&#40;</span>nsURI, <span style="color: #0000ff;">&quot;levelOne&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeEndElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			indent<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeStartElement</span><span style="color: #009900;">&#40;</span>nsURI, <span style="color: #0000ff;">&quot;levelOne&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			indent<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeEmptyElement</span><span style="color: #009900;">&#40;</span>nsURI, <span style="color: #0000ff;">&quot;levelTwo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeAttribute</span><span style="color: #009900;">&#40;</span>nsURI, <span style="color: #0000ff;">&quot;foo&quot;</span>, <span style="color: #0000ff;">&quot;foo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			indent<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeEndElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			indent<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeStartElement</span><span style="color: #009900;">&#40;</span>nsURI, <span style="color: #0000ff;">&quot;levelOne&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeEndElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			indent<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">writeEndElement</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">flush</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			w.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Exception</span> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003399;">System</span>.<span style="color: #006633;">exit</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> indent<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>d <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> depth <span style="color: #339933;">+=</span> d<span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
			<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> depth<span style="color: #339933;">;</span> <span style="color: #339933;">++</span>i<span style="color: #009900;">&#41;</span>
			w.<span style="color: #006633;">writeCharacters</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;  &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>d <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> depth <span style="color: #339933;">+=</span> d<span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>XMLStreamException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">RuntimeException</span><span style="color: #009900;">&#40;</span>e<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>


<p>This is using version 7 of the reference implementation, by the way. The program should produce this&nbsp;output:</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #ddbb00;">&amp;lt;</span>?xml version='1.0' encoding='utf-8'?&gt;
<span style="color: #ddbb00;">&amp;lt;</span>a:root xmlns:a=&quot;http://ianp.org/nsURI&quot;&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>a:levelOne a:foo=&quot;foo&quot;/&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>a:levelOne/&gt;<span style="color: #ddbb00;">&amp;lt;</span>/a:levelOne&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>a:levelOne&gt;
		<span style="color: #ddbb00;">&amp;lt;</span>a:levelTwo a:foo=&quot;foo&quot;/&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>/a:levelOne&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>a:levelOne/&gt;<span style="color: #ddbb00;">&amp;lt;</span>/a:levelOne&gt;
<span style="color: #ddbb00;">&amp;lt;</span>/a:root&gt;</pre></td></tr></table></div>


<p>But actually produces&nbsp;this:</p>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #ddbb00;">&amp;lt;</span>?xml version='1.0' encoding='utf-8'?&gt;
<span style="color: #ddbb00;">&amp;lt;</span>a:root xmlns:a=&quot;http://ianp.org/nsURI&quot;&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>a:levelOne a:foo=&quot;foo&quot;/&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>a:levelOne/&gt;<span style="color: #ddbb00;">&amp;lt;</span>/a:levelOne&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>a:levelOne/&gt;
		<span style="color: #ddbb00;">&amp;lt;</span>a:levelTwo a:foo=&quot;foo&quot;/&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>/a:levelOne&gt;
	<span style="color: #ddbb00;">&amp;lt;</span>a:levelOne/&gt;<span style="color: #ddbb00;">&amp;lt;</span>/a:levelOne&gt;
<span style="color: #ddbb00;">&amp;lt;</span>/a:root&gt;</pre></td></tr></table></div>


<p>Line 5 is generated as an empty element instead of a start element. I&#8217;ve pointed this out the to JCP committee, we&#8217;ll see if they&nbsp;repsond.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianp.org/2003/11/jsr-173-reference-implementation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Binary XML Encoding</title>
		<link>http://ianp.org/2003/09/binary-xml-encoding/</link>
		<comments>http://ianp.org/2003/09/binary-xml-encoding/#comments</comments>
		<pubDate>Wed, 17 Sep 2003 13:09:23 +0000</pubDate>
		<dc:creator>Ian Phillips</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://ianp.org/?p=8</guid>
		<description><![CDATA[Miguel de Icaza writes about binary encoding for XML (Omri&#8217;s page was unavailable, so I can&#8217;t comment on&#160;that).

This is already in widespread usage, a la WBXML. It&#8217;s a pretty successful standard, given that it targets low bandwidth mobile phones they&#8217;ve obviously encoded for size, a fact made easier that it also targets a specific schema. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://primates.ximian.com/~miguel/archive/2003/Sep-16.html">Miguel de Icaza</a> writes about binary encoding for <abbr title="Extensible Markup Language">XML</abbr> (Omri&#8217;s page was unavailable, so I can&#8217;t comment on&nbsp;that).</p>

<p>This is already in widespread usage, a la <abbr title="WAP Binary XML"><a href="http://www.wapforum.org/what/technical.htm">WBXML</a></abbr>. It&#8217;s a pretty successful standard, given that it targets low bandwidth mobile phones they&#8217;ve obviously encoded for size, a fact made easier that it also targets a specific schema. I.e. it&#8217;s not a generic <abbr title="Extensible Markup Language">XML</abbr>&nbsp;encoding.</p>

<blockquote>
  <p>Omri&#8217;s thesis is that there are multiple things that you might want to
  optimize for: size, parsing speed and overhead for generating the data and
  that it is not possible to define a file format that satisfies all of those
  different&nbsp;needs.</p>
</blockquote>

<p>Well, I thought we had already done this with <abbr title="Extensible Markup Language">XML</abbr>. The fact is, you can already use your own favourite encoding. If I want to make it easy to parse then I can use <abbr>UTF32</abbr>, if I want to be &#8216;more standard&#8217; I can use <abbr>UTF8</abbr>. I&#8217;m not sure about this (I need to check the spec) but in theory you should be able to use any encoding that you want to, as long as all parties agree on&nbsp;it.</p>
]]></content:encoded>
			<wfw:commentRss>http://ianp.org/2003/09/binary-xml-encoding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
