<?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/topics/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>Sun, 29 Aug 2010 23:16:38 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Perl Module Release: RPC-XML 0.73</title>
		<link>http://www.dereferenced.com/2010/03/16/perl-module-release-rpc-xml-0-73/</link>
		<comments>http://www.dereferenced.com/2010/03/16/perl-module-release-rpc-xml-0-73/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 06:14:48 +0000</pubDate>
		<dc:creator>rjray</dc:creator>
				<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[RPC-XML]]></category>

		<guid isPermaLink="false">http://www.dereferenced.com/?p=121</guid>
		<description><![CDATA[

Version: 0.73
Released: Tuesday March 16, 2010, 10:45:00 PM -0700
Changes:



 MANIFEST
 t/28_parser_bugs_50013.t (deleted)
 t/90_rt50013_parser_bugs.t (added)


Rename of t/28_parser_bugs_50013.t to fit more universal scheme for
test suites that directly address specific RT bugs.



 lib/RPC/XML/Server.pm
 t/90_rt54183_sigpipe.t (added)

RT #54183: Provide handling of SIGPIPE when sending the response to the client,
in case they&#8217;ve terminated the connection.



 MANIFEST


Forgot to add the new test [...]]]></description>
			<content:encoded><![CDATA[<div id="changelog-container" class="changelog-container-div">
<div id="release_0_73_div" class="changelog-release-div">
<p><span class="changelog-release-heading">Version: 0.73</span></p>
<p><span class="changelog-release-date">Released: <span class="changelog-date">Tuesday March 16, 2010, 10:45:00 PM -0700</span></span></p>
<p class="changelog-release-para">Changes:</p>
<div class="changelog-release-changes-container">
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
<li class="changelog-release-change-li"> <tt class="changelog-filename">MANIFEST</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">t/28_parser_bugs_50013.t</tt> <span class="changelog-release-file-action">(deleted)</span></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">t/90_rt50013_parser_bugs.t</tt> <span class="changelog-release-file-action">(added)</span></li>
</ul>
<p class="changelog-release-change-para">
<p>Rename of t/28_parser_bugs_50013.t to fit more universal scheme for<br />
test suites that directly address specific RT bugs.</p>
</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Server.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">t/90_rt54183_sigpipe.t</tt> <span class="changelog-release-file-action">(added)</span></li>
</ul>
<p class="changelog-release-change-para"><a class="changelog-html-a" href="http://rt.cpan.org/Ticket/Display.html?id=54183">RT #54183</a>: Provide handling of SIGPIPE when sending the response to the client,<br />
in case they&#8217;ve terminated the connection.</p>
</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
<li class="changelog-release-change-li"> <tt class="changelog-filename">MANIFEST</tt></li>
</ul>
<p class="changelog-release-change-para">
<p>Forgot to add the new test suite to MANIFEST.</p>
</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Server.pm</tt></li>
</ul>
<p class="changelog-release-change-para">
<p>Forgot to update the module version number.</p>
</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML.pm</tt></li>
</ul>
<p class="changelog-release-change-para">
<p>Fix typo in reftype() call.</p>
</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">t/90_rt54494_blessed_refs.t</tt> <span class="changelog-release-file-action">(added)</span></li>
</ul>
<p class="changelog-release-change-para"><a class="changelog-html-a" href="http://rt.cpan.org/Ticket/Display.html?id=54494">RT #54494</a>: Fix handling of blessed references in smart_encode().</p>
</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/Apache/RPC/Server.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/Apache/RPC/Status.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Client.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Function.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Method.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Parser.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Parser/XMLLibXML.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Parser/XMLParser.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/ParserFactory.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Procedure.pm</tt></li>
<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Server.pm</tt></li>
</ul>
<p class="changelog-release-change-para">
<p>Large-scale code clean-up driven by Perl::Critic. All critic flags<br />
down to severity 1 now removed.</p>
</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
<li class="changelog-release-change-li"> <tt class="changelog-filename">MANIFEST</tt></li>
</ul>
<p class="changelog-release-change-para">
<p>Forgot to add t/90_rt54494_blessed_refs.t when it was created.</p>
</div>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.dereferenced.com/2010/03/16/perl-module-release-rpc-xml-0-73/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl Module Release: RPC-XML 0.72</title>
		<link>http://www.dereferenced.com/2009/12/13/perl-module-release-rpc-xml-0-72/</link>
		<comments>http://www.dereferenced.com/2009/12/13/perl-module-release-rpc-xml-0-72/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 05:48:56 +0000</pubDate>
		<dc:creator>rjray</dc:creator>
				<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[RPC-XML]]></category>

		<guid isPermaLink="false">http://www.dereferenced.com/?p=101</guid>
		<description><![CDATA[

Version: 0.72

Released: Sunday December 13, 2009, 09:45:00 PM -0700
Changes:




	 Makefile.PL
	 t/40_server_xmllibxml.t

RT #52662:
Fix requirement specification for XML::LibXML.




	 lib/RPC/XML.pm



Some more clean-up of the docs, removing a redundant section.




]]></description>
			<content:encoded><![CDATA[<p>
<div id="changelog-container" class="changelog-container-div">
<div id="release_0_72_div" class="changelog-release-div"><span class="changelog-release-heading">Version: 0.72</span>

<span class="changelog-release-date">Released: <span class="changelog-date">Sunday December 13, 2009, 09:45:00 PM -0700</span></span>
<p class="changelog-release-para">Changes:</p>

<div class="changelog-release-changes-container">
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">Makefile.PL</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/40_server_xmllibxml.t</tt></li>
</ul>
<p class="changelog-release-change-para"><a class="changelog-html-a" href="http://rt.cpan.org/Ticket/Display.html?id=52662">RT #52662</a>:
Fix requirement specification for XML::LibXML.

</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML.pm</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Some more clean-up of the docs, removing a redundant section.</div>
</div>
</div>
</div>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereferenced.com/2009/12/13/perl-module-release-rpc-xml-0-72/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl Module Release: RPC-XML 0.71</title>
		<link>http://www.dereferenced.com/2009/12/07/perl-module-release-rpc-xml-0-71/</link>
		<comments>http://www.dereferenced.com/2009/12/07/perl-module-release-rpc-xml-0-71/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 04:39:22 +0000</pubDate>
		<dc:creator>rjray</dc:creator>
				<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[RPC-XML]]></category>

		<guid isPermaLink="false">http://www.dereferenced.com/?p=96</guid>
		<description><![CDATA[

Version: 0.71

Released: Monday December  7, 2009, 08:00:00 PM -0700
Changes:




	 MANIFEST
	 t/01_pod.t (deleted)
	 t/02_pod_coverage.t (deleted)
	 t/03_meta.t (deleted)
	 t/04_minimumversion.t (deleted)
	 t/05_critic.t (deleted)
	 xt/01_pod.t (added)
	 xt/02_pod_coverage.t (added)
	 xt/03_meta.t (added)
	 xt/04_minimumversion.t (added)
	 xt/05_critic.t (added)



Moved author-only tests to xt/, updated MANIFEST.


	 MANIFEST



Add test suite 28_parser_bugs_50013.t, which was omitted from last
release.


	 xt/01_pod.t
	 xt/02_pod_coverage.t
	 xt/03_meta.t
	 xt/04_minimumversion.t
	 xt/05_critic.t



Re-engineered the author-only/release tests, since [...]]]></description>
			<content:encoded><![CDATA[<p>
<div id="changelog-container" class="changelog-container-div">
<div id="release_0_71_div" class="changelog-release-div"><span class="changelog-release-heading">Version: 0.71</span>

<span class="changelog-release-date">Released: <span class="changelog-date">Monday December  7, 2009, 08:00:00 PM -0700</span></span>
<p class="changelog-release-para">Changes:</p>

<div class="changelog-release-changes-container">
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">MANIFEST</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/01_pod.t</tt> <span class="changelog-release-file-action">(deleted)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/02_pod_coverage.t</tt> <span class="changelog-release-file-action">(deleted)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/03_meta.t</tt> <span class="changelog-release-file-action">(deleted)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/04_minimumversion.t</tt> <span class="changelog-release-file-action">(deleted)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/05_critic.t</tt> <span class="changelog-release-file-action">(deleted)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/01_pod.t</tt> <span class="changelog-release-file-action">(added)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/02_pod_coverage.t</tt> <span class="changelog-release-file-action">(added)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/03_meta.t</tt> <span class="changelog-release-file-action">(added)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/04_minimumversion.t</tt> <span class="changelog-release-file-action">(added)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/05_critic.t</tt> <span class="changelog-release-file-action">(added)</span></li>
</ul>
<p class="changelog-release-change-para"></p>

Moved author-only tests to xt/, updated MANIFEST.</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">MANIFEST</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Add test suite 28_parser_bugs_50013.t, which was omitted from last
release.</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/01_pod.t</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/02_pod_coverage.t</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/03_meta.t</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/04_minimumversion.t</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">xt/05_critic.t</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Re-engineered the author-only/release tests, since they're no longer in
the t/ directory and thus should not interfere.</div>
</div>
</div>
</div>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereferenced.com/2009/12/07/perl-module-release-rpc-xml-0-71/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Perl Module Release: RPC-XML 0.70</title>
		<link>http://www.dereferenced.com/2009/12/06/perl-module-release-rpc-xml-0-70/</link>
		<comments>http://www.dereferenced.com/2009/12/06/perl-module-release-rpc-xml-0-70/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 06:54:50 +0000</pubDate>
		<dc:creator>rjray</dc:creator>
				<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[RPC-XML]]></category>

		<guid isPermaLink="false">http://www.dereferenced.com/?p=94</guid>
		<description><![CDATA[

Version: 0.70

Released: Sunday December  6, 2009, 10:00:00 PM -0700
Changes:




	 lib/RPC/XML.pm
	 t/10_data.t

RT #49406:
Make Base64 data-type allow zero-length data.




	 lib/RPC/XML.pm
	 t/10_data.t



Hand-applied a patch (most likely from Bill Moseley) to extend the
construction of dateTime.iso8601 data-types.


	 t/40_server.t



Fixed another corner-case for the url() test.


	 lib/RPC/XML.pm



Fixed a case from previous work that caused "undef" warnings.


	 lib/RPC/XML.pm
	 lib/RPC/XML/Parser.pm
	 t/28_parser_bugs_50013.t

RT #50013:
Restore backwards-compatibility [...]]]></description>
			<content:encoded><![CDATA[<p>
<div id="changelog-container" class="changelog-container-div">
<div id="release_0_70_div" class="changelog-release-div"><span class="changelog-release-heading">Version: 0.70</span>

<span class="changelog-release-date">Released: <span class="changelog-date">Sunday December  6, 2009, 10:00:00 PM -0700</span></span>
<p class="changelog-release-para">Changes:</p>

<div class="changelog-release-changes-container">
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML.pm</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/10_data.t</tt></li>
</ul>
<p class="changelog-release-change-para"><a class="changelog-html-a" href="http://rt.cpan.org/Ticket/Display.html?id=49406">RT #49406</a>:
Make Base64 data-type allow zero-length data.

</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML.pm</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/10_data.t</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Hand-applied a patch (most likely from Bill Moseley) to extend the
construction of dateTime.iso8601 data-types.</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/40_server.t</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Fixed another corner-case for the url() test.</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML.pm</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Fixed a case from previous work that caused "undef" warnings.</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML.pm</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Parser.pm</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/28_parser_bugs_50013.t</tt></li>
</ul>
<p class="changelog-release-change-para"><a class="changelog-html-a" href="http://rt.cpan.org/Ticket/Display.html?id=50013">RT #50013</a>:
Restore backwards-compatibility for projects that use RPC::XML::Parser
directly.

</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Procedure.pm</tt></li>
</ul>
<p class="changelog-release-change-para"><a class="changelog-html-a" href="http://rt.cpan.org/Ticket/Display.html?id=50143">RT #50143</a>:
Incorrectly called server_fault() as if it were a coderef.

</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/Apache/RPC/Server.pm</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Applied patch from Frank Wiegand to fix a POD problem.</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML.pm</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Some additional regexp issues on dateTime.iso8601, to handle
backwards-compatibility.</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/ParserFactory.pm</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Fixed some minor doc errors.</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Parser/XMLParser.pm</tt></li>
</ul>
<p class="changelog-release-change-para"></p>

Moved the 'require' of some libraries to the point where they are
first needed, to delay loading until/unless necessary.</div>
<div class="changelog-release-change">
<ul class="changelog-release-change-ul">
	<li class="changelog-release-change-li"> <tt class="changelog-filename">lib/RPC/XML/Parser/XMLLibXML.pm</tt> <span class="changelog-release-file-action">(added)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/21_xml_libxml.t</tt> <span class="changelog-release-file-action">(added)</span></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/29_parserfactory.t</tt></li>
	<li class="changelog-release-change-li"> <tt class="changelog-filename">t/40_server_xmllibxml.t</tt> <span class="changelog-release-file-action">(added)</span></li>
</ul>
<p class="changelog-release-change-para"></p>

Implement support for XML::LibXML in the parser-factory.</div>
</div>
</div>
</div>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereferenced.com/2009/12/06/perl-module-release-rpc-xml-0-70/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<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 the [...]]]></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>Perl Module Monday: Test::Formats</title>
		<link>http://www.dereferenced.com/2009/08/24/perl-module-monday-testformats/</link>
		<comments>http://www.dereferenced.com/2009/08/24/perl-module-monday-testformats/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 06:58:42 +0000</pubDate>
		<dc:creator>rjray</dc:creator>
				<category><![CDATA[CPAN]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[module-monday]]></category>

		<guid isPermaLink="false">http://www.dereferenced.com/?p=42</guid>
		<description><![CDATA[I was on vacation most of last week, so this week&#8217;s installment of PMM is going to be both short and self-serving. For this week, I&#8217;m going to &#8220;cheat&#8221; and talk about one of my own modules: Test::Formats. (I promise to not make a regular habit of using this feature to promote my own projects.)
This [...]]]></description>
			<content:encoded><![CDATA[<p>I was on vacation most of last week, so this week&#8217;s installment of PMM is going to be both short and self-serving. For this week, I&#8217;m going to &#8220;cheat&#8221; and talk about one of my own modules: <a href="http://search.cpan.org/dist/Test-Formats">Test::Formats</a>. (I promise to not make a regular habit of using this feature to promote my own projects.)</p>
<p>This is a pretty simple concept: Rather than using lengthy, confusing regular expressions to test the validity of generated XML documents, why not use the validation already built in to the parser itself? The module isn&#8217;t for use on snippets, but then those can usually be tested with much simpler, easier-to-read regexp&#8217;s.</p>
<p>The tests you would write with this module are tests of the XML your Perl generates, not necessarily the Perl itself. Alas, time constrains me from any useful examples, so I hope you&#8217;ll check out the module itself on CPAN. Next week will be better, I promise!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dereferenced.com/2009/08/24/perl-module-monday-testformats/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>
