<?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>Dereferenced.com &#187; XML</title>
	<atom:link href="http://www.dereferenced.com/tags/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dereferenced.com</link>
	<description>A preponderance of Perl, an excess of XML, and additional alliterations.</description>
	<lastBuildDate>Tue, 17 Jan 2012 17:18:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Idle Thoughts on Parsing XML (slightly Perlish)</title>
		<link>http://www.dereferenced.com/2009/10/07/idle-thoughts-on-parsing-xml-slightly-perlish/</link>
		<comments>http://www.dereferenced.com/2009/10/07/idle-thoughts-on-parsing-xml-slightly-perlish/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 17:46:09 +0000</pubDate>
		<dc:creator>rjray</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[meta]]></category>

		<guid isPermaLink="false">http://www.dereferenced.com/?p=64</guid>
		<description><![CDATA[(Side note: There was no Module Monday post this week, as I was too swamped to look for one to cover. Check back next week&#8230;) I&#8217;m in the (achingly slow) process of writing a new XML-RPC parser using XML::LibXML. Because (according to their own docs) their SAX support is spotty, I&#8217;m letting the library parse [...]]]></description>
			<content:encoded><![CDATA[<p>(Side note: There was no Module Monday post this week, as I was too swamped to look for one to cover. Check back next week&#8230;)</p>
<p>I&#8217;m in the (achingly slow) process of writing a new XML-RPC parser using XML::LibXML. Because (according to their own docs) their SAX support is spotty, I&#8217;m letting the library parse the whole message into a DOM object and then using that object to get the request or response. This has proven to be a serious pain in the lower regions.</p>
<p>The XML::Parser approach I&#8217;ve had since RPC::XML&#8217;s inception is an event-based parser: I use a state-machine/stack approach and push/pop items as needed, based on whether my event is a tag-start, tag-end, text, etc. As a side effect, I validate the document, since the stack/state machine will throw an exception if some event doesn&#8217;t fit in to what it is expecting.</p>
<p>Taking a DOM approach means more work, as not only am I drilling down for the data I need, I also have to do some checking for validity as well. (Some might point out that XML::LibXML supports checking document validity against any of a DTD, XML Schema or RelaxNG schema&#8230; I&#8217;m actually <a href="http://search.cpan.org/dist/Test-Formats">familiar with that</a>. But there is no &#8220;real&#8221; (i.e., &#8220;official&#8221;) DTD or schema for XML-RPC for me to use in this case.)</p>
<p>So here&#8217;s my observation, which is probably blindingly-obvious to everyone else who&#8217;s worked with XML: SAX/event-based parsing is the way to go for processing a whole document, and DOM is better for cherry-picking pieces from different parts of it.</p>
<p>Like I said, probably pretty obvious to the rest of you, but it&#8217;s hitting me over the head pretty hard these days.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereferenced.com/2009/10/07/idle-thoughts-on-parsing-xml-slightly-perlish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OSCON Day 2, Part 1: Lightning Talks</title>
		<link>http://www.dereferenced.com/2009/07/23/oscon-day-2-part-1-lightning-talks/</link>
		<comments>http://www.dereferenced.com/2009/07/23/oscon-day-2-part-1-lightning-talks/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 18:05:12 +0000</pubDate>
		<dc:creator>rjray</dc:creator>
				<category><![CDATA[ChangeLogML]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSLT]]></category>
		<category><![CDATA[oscon]]></category>

		<guid isPermaLink="false">http://www.dereferenced.com/?p=18</guid>
		<description><![CDATA[I will be giving a lightning talk (possibly two) in the Perl Lightning Talks session at 4:30. The talk I am definitely doing is on ChangeLogML and the Perl module I have for it. If their time and schedule permit, I will also give a talk on my testing module, Test::Formats.]]></description>
			<content:encoded><![CDATA[<p>I will be giving a lightning talk (possibly two) in the Perl Lightning Talks session at 4:30. The talk I am definitely doing is on <a href="https://sourceforge.net/projects/changelogml/">ChangeLogML</a> and the <a href="http://search.cpan.org/dist/App-Changelog2x">Perl module</a> I have for it. If their time and schedule permit, I will also give a talk on my testing module, <a href="http://search.cpan.org/dist/Test-Formats">Test::Formats</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereferenced.com/2009/07/23/oscon-day-2-part-1-lightning-talks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

