<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Base-Art - EaseXML</title><link href="https://base-art.net/" rel="alternate"></link><link href="https://base-art.net/feeds/tag-easexml.atom.xml" rel="self"></link><id>https://base-art.net/</id><updated>2005-05-30T22:12:02+02:00</updated><entry><title>XMLObject mutates to EaseXML</title><link href="https://base-art.net/Articles/25/" rel="alternate"></link><published>2004-12-12T18:26:00+01:00</published><updated>2005-05-30T22:07:56+02:00</updated><author><name>Philippe Normand</name></author><id>tag:base-art.net,2004-12-12:/Articles/25/</id><summary type="html">&lt;p&gt;In a previous post, i was discussing about Project name clashing. Since then i decided to find a new name for the Python/&lt;span class="caps"&gt;XML&lt;/span&gt; data binding project i&amp;#8217;m maintaining &amp;#8230; Which is EaseXML&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://easexml.base-art.net/"&gt;EaseXML&lt;/a&gt; 0.2.0 is out. I hope it won&amp;#8217;t collapse with another project now&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;update …&lt;/strong&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;In a previous post, i was discussing about Project name clashing. Since then i decided to find a new name for the Python/&lt;span class="caps"&gt;XML&lt;/span&gt; data binding project i&amp;#8217;m maintaining &amp;#8230; Which is EaseXML&amp;nbsp;!&lt;/p&gt;
&lt;p&gt;&lt;a class="reference external" href="http://easexml.base-art.net/"&gt;EaseXML&lt;/a&gt; 0.2.0 is out. I hope it won&amp;#8217;t collapse with another project now&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;update&lt;/strong&gt;: The project homepage is now &lt;a class="reference external" href="http://xmlobject.base-art.net/"&gt;mirrored&lt;/a&gt;&lt;/p&gt;
</content><category term="misc"></category><category term="Python"></category><category term="Projects"></category><category term="EaseXML"></category></entry><entry><title>Don’t you have your XMLObject yet ? oh sweet heart :(</title><link href="https://base-art.net/Articles/22/" rel="alternate"></link><published>2004-10-29T13:35:00+02:00</published><updated>2005-05-30T22:08:30+02:00</updated><author><name>Philippe Normand</name></author><id>tag:base-art.net,2004-10-29:/Articles/22/</id><summary type="html">&lt;p&gt;Via DailyPython &lt;span class="caps"&gt;URL&lt;/span&gt;!&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Gre7g Luterman: XMLObject_ [XMLObject is a Python module that simplifies the
handling of XML streams by converting the data into objects.]
&lt;/pre&gt;
&lt;p&gt;That&amp;#8217;s kind of fun and reminds me the story about Python &lt;span class="caps"&gt;ALSA&lt;/span&gt; wrappers. People do things in their corner. And the final lambda user get …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Via DailyPython &lt;span class="caps"&gt;URL&lt;/span&gt;!&lt;/p&gt;
&lt;pre class="literal-block"&gt;
Gre7g Luterman: XMLObject_ [XMLObject is a Python module that simplifies the
handling of XML streams by converting the data into objects.]
&lt;/pre&gt;
&lt;p&gt;That&amp;#8217;s kind of fun and reminds me the story about Python &lt;span class="caps"&gt;ALSA&lt;/span&gt; wrappers. People do things in their corner. And the final lambda user get lost in the jungle of &lt;span class="caps"&gt;XXX&lt;/span&gt; softwares doing about the same&amp;nbsp;work.&lt;/p&gt;
&lt;p&gt;And in this case, especially using &lt;strong&gt;the same name&lt;/strong&gt; for each project. So we have about three different XMLObject&amp;nbsp;projects:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;a class="reference external" href="http://zope.org/Wikis/zope-xml/XMLObject"&gt;Zope XMLObject&lt;/a&gt; .. for&amp;nbsp;Zope,&lt;/li&gt;
&lt;li&gt;&lt;a class="reference external" href="http://xmlobject.base-art.net"&gt;Base-Art XMLObject&lt;/a&gt;,&lt;/li&gt;
&lt;li&gt;Last but not least &lt;a class="reference external" href="http://xmlobject.sf.net"&gt;Gre7g XMLObject&lt;/a&gt;&amp;nbsp;..&lt;/li&gt;
&lt;li&gt;Not to mention an XmlObject in Java&amp;nbsp;:)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Are you confused ? Well i probably shouldn&amp;#8217;t have named my stuff like the Zoped one, i&amp;#8217;m guilty here. Finally one more or one left, no&amp;nbsp;difference.&lt;/p&gt;
&lt;p&gt;&amp;#8212; Reserve your XMLObject jungle map to your favorite receller&amp;nbsp;:)&lt;/p&gt;
</content><category term="misc"></category><category term="Python"></category><category term="Projects"></category><category term="EaseXML"></category></entry><entry><title>XMLObject 0.0.1</title><link href="https://base-art.net/Articles/9/" rel="alternate"></link><published>2004-05-23T21:15:09+02:00</published><updated>2005-05-30T22:11:29+02:00</updated><author><name>Philippe Normand</name></author><id>tag:base-art.net,2004-05-23:/Articles/9/</id><content type="html">&lt;p&gt;The first release of XMLObject is out. This is a small project I
started after writting this &lt;a class="reference external" href="http://base-art.net/wk/Article/5.html"&gt;post&lt;/a&gt;. I tried to apply on Pypi but it
seems to be bugged w/ email sending :( Anyway annoucement on Freshmeat
should come shortly&amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;XMLObject is hosted on &lt;a class="reference external" href="http://xmlobject.base-art.net/"&gt;http://xmlobject.base-art.net/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8212; Enjoy&amp;nbsp;!&lt;/p&gt;
</content><category term="misc"></category><category term="Python"></category><category term="Projects"></category><category term="EaseXML"></category></entry><entry><title>Of Python and XML</title><link href="https://base-art.net/Articles/5/" rel="alternate"></link><published>2004-04-21T23:23:02+02:00</published><updated>2005-05-30T22:12:02+02:00</updated><author><name>Philippe Normand</name></author><id>tag:base-art.net,2004-04-21:/Articles/5/</id><summary type="html">&lt;p&gt;Obviously I&amp;#8217;m not the first to believe in the power of Python to ease &lt;span class="caps"&gt;XML&lt;/span&gt; management. Of course there are &lt;span class="caps"&gt;DOM&lt;/span&gt; and &lt;span class="caps"&gt;SAX&lt;/span&gt; which are meant to provide uniform (whatever language we use) &lt;span class="caps"&gt;XML&lt;/span&gt; APIs. After using these for a little while, I&amp;#8217;m now convinced &lt;span class="caps"&gt;OO&lt;/span&gt; features should …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Obviously I&amp;#8217;m not the first to believe in the power of Python to ease &lt;span class="caps"&gt;XML&lt;/span&gt; management. Of course there are &lt;span class="caps"&gt;DOM&lt;/span&gt; and &lt;span class="caps"&gt;SAX&lt;/span&gt; which are meant to provide uniform (whatever language we use) &lt;span class="caps"&gt;XML&lt;/span&gt; APIs. After using these for a little while, I&amp;#8217;m now convinced &lt;span class="caps"&gt;OO&lt;/span&gt; features should be more used, especially&amp;nbsp;meta-programming.&lt;/p&gt;
&lt;p&gt;Let&amp;#8217;s get an example. For a school &lt;span class="caps"&gt;IT&lt;/span&gt; project, I needed to provide an &lt;span class="caps"&gt;OO&lt;/span&gt; (partial) abstraction of a &lt;span class="caps"&gt;DTD&lt;/span&gt;. So I started making a class for each &lt;span class="caps"&gt;XML&lt;/span&gt; item type defined in the &lt;span class="caps"&gt;DTD&lt;/span&gt;. The process was always the&amp;nbsp;same:&lt;/p&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;if item A includes a list of B items, there was a need for get/set methods to access the given&amp;nbsp;list&lt;/li&gt;
&lt;li&gt;attributes were dealed as Python class variables     (&lt;cite&gt;__getattr__&lt;/cite&gt;, &lt;cite&gt;__setattr__&lt;/cite&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And so on. Then I realized that, the maintenance process would be painfull it the &lt;span class="caps"&gt;DTD&lt;/span&gt; had to be revised. In fact the &lt;span class="caps"&gt;OO&lt;/span&gt; abstraction becomes fully coupled to the &lt;span class="caps"&gt;DTD&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;After that I discovered Python &lt;a class="reference external" href="http://members.rogers.com/mcfletch/programming/metaclasses.pdf"&gt;MetaClasses&lt;/a&gt;. Python is not the only language to provide meta-programming. But, I find it easier to use than SmallTalk&amp;#8217;s one for example. So now we can imagine things&amp;nbsp;like:&lt;/p&gt;
&lt;pre class="literal-block"&gt;
class ItemA(XMLObject):
    BItems = XMList(ItemB)
    index = XMLAttribute(type = StringType)

A = ItemA(someXMLData)
print list(A.BItems)
print A.index
A.index = 'foo'
&lt;/pre&gt;
&lt;p&gt;This concept comes directly from &lt;a class="reference external" href="http://sqlobject.org"&gt;SQLObject&lt;/a&gt; (Thanks Ian for this great thing). Adapting these design concepts to the (&lt;span class="caps"&gt;XML&lt;/span&gt;, Python) couple would be quite&amp;nbsp;great.&lt;/p&gt;
</content><category term="misc"></category><category term="Python"></category><category term="Projects"></category><category term="EaseXML"></category></entry></feed>