Skip to Content.
Sympa Menu

xom-interest - RE: [XOM-interest] Needs hasX(String)

xom-interest AT lists.ibiblio.org

Subject: XOM API for Processing XML with Java

List archive

Chronological Thread  
  • From: Elliotte Rusty Harold <elharo AT metalab.unc.edu>
  • To: "Regier Avery J" <RegierAveryJ AT JohnDeere.com>, "'xom-interest AT lists.ibiblio.org'" <xom-interest AT lists.ibiblio.org>
  • Subject: RE: [XOM-interest] Needs hasX(String)
  • Date: Thu, 10 Apr 2003 11:24:11 -0400

At 9:52 AM -0500 4/10/03, Regier Avery J wrote:

I hope I've explained this need at the beginning of this message. It is a
matter of integration ease.

No, I'm afraid you haven't. If you want this you're going to need to show me concrete use cases in actual code, not theoretical arguments. e.g. "to write an Ant task that uses XOM I need to use Iterators" and then you need to show me either a lot more cases like this, or conclusively demonstrate that your own adapter can't really work. Remember, XOM is an 80/20 API so it's not enough that something be useful. It's got to be useful for 80%. I don't think having to drag xom.jar around to compile is a real problem for 80% of the uses.


public class NodeIterator implements Iterator {
private Node node;
private int pos = 0;

public NodeIterator(Node node) {
this.node = node;
}
public boolean hasNext() {
return pos < size();
}

public Object next() {
return mutate(nextNode());
}

protected Object mutate(Node node) {
return node;
}

/**
* Type specific next() method
*/
public Node nextNode() {
return node.get(pos++);
}

public int size() {
return node.getChildCount();
}

public void remove() {
removeChild(pos);
}
}


This is just more variations. All the old problems are still there. You've just added methods that don't have those problems. I want those problems gone completely. If only Java had covariant return types...

It really does sound to me like what you want is JDOM rather than XOM. There are other choices in this space. I much prefer to have multiple APIs with clean visions rather than single APIs that try to satisfy everyone. JDOM's vision includes the collections API. XOM's doesn't. FYI, it was in large part my experience with the Collections API in JDOM that convinced me it was in appropriate for XOM. Iterators, Lists, and so forth just caused way too much pain in writing code on top of JDOM with no benefits I could perceive.
--

+-----------------------+------------------------+-------------------+
| Elliotte Rusty Harold | elharo AT metalab.unc.edu | Writer/Programmer |
+-----------------------+------------------------+-------------------+
| Processing XML with Java (Addison-Wesley, 2002) |
| http://www.cafeconleche.org/books/xmljava |
| http://www.amazon.com/exec/obidos/ISBN%3D0201771861/cafeaulaitA |
+----------------------------------+---------------------------------+
| Read Cafe au Lait for Java News: http://www.cafeaulait.org/ |
| Read Cafe con Leche for XML News: http://www.cafeconleche.org/ |
+----------------------------------+---------------------------------+
From qas20030410 AT qarouter.qasystems.com Thu Apr 10 11:32:28 2003
Return-Path: <qas20030410 AT qarouter.qasystems.com>
Delivered-To: xom-interest AT lists.ibiblio.org
Received: from qarouter.qasystems.com (unknown [195.86.21.60])
by happyhouse.metalab.unc.edu (Postfix) with ESMTP id AEBBD20012
for <xom-interest AT lists.ibiblio.org>;
Thu, 10 Apr 2003 11:32:27 -0400 (EDT)
Received: (from mailing@localhost)
by qarouter.qasystems.com (8.11.6/8.11.6) id h3AFegH23035;
Thu, 10 Apr 2003 17:40:42 +0200
Date: Thu, 10 Apr 2003 17:40:42 +0200
From: QA Systems <qas20030410 AT qa-systems.com>
Message-Id: <200304101540.h3AFegH23035 AT qarouter.qasystems.com>
To: xom-interest AT lists.ibiblio.org
Organization: QA Systems BV
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_000B_01C2F78F.0E59B7E0"
Subject: [XOM-interest] Java Software Quality Problems?
X-BeenThere: xom-interest AT lists.ibiblio.org
X-Mailman-Version: 2.1.1
Precedence: list
Reply-To: QAS20030408 AT qa-systems.com
List-Id: <xom-interest.lists.ibiblio.org>
List-Unsubscribe: <http://lists.ibiblio.org/mailman/listinfo/xom-interest>,
<mailto:xom-interest-request AT lists.ibiblio.org?subject=unsubscribe>
List-Archive: <https://lists.ibiblio.org/sympa/arc/xom-interest>
List-Post: <mailto:xom-interest AT lists.ibiblio.org>
List-Help: <mailto:sympa AT lists.ibiblio.org?subject=HELP>
List-Subscribe: <http://lists.ibiblio.org/mailman/listinfo/xom-interest>,
<mailto:xom-interest-request AT lists.ibiblio.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Apr 2003 15:32:28 -0000

This is a multi-part message in MIME format.

------=_NextPart_000_000B_01C2F78F.0E59B7E0
Content-Type: text/html;
charset="iso-8859-1"

<html>
<head>
<title>QA Systems / The Software Health Company</title>
</head>
<body topmargin="0" marginheight="0" leftmargin="0" marginwidth="0" bgcolor="#FFFFFF" link="#666666"
vlink="#666666" alink="#7F7F7F" class="body">
<table width="733" border="0" cellspacing="0" cellpadding="0" height="469" >
<tr valign="middle" align="center"> <td colspan="2" height="80" > <p align="center"> <a href="http://www.qa-systems.com/shop/index.html";><img src="http://www.qa-systems.com/resources/banners/Animation_small.gif"; width="468" border="0"></a></p>
</td>
</tr>
<tr> <td width="53" align="left" valign="top" height="483" ><br>
<font face="Arial, Helvetica, sans-serif"><br>
</font><img src="http://www.qa-systems.com/resources/theme_images/red/red_bar.jpg";
width="53" border="0"></td>
<td width="680" valign="top" align="left" height="483" > <table width=100% border=0 cellpadding=0 cellspacing=0>
<tr> <td><img src="http://www.qa-systems.com/resources/interface_images/boxtopleft_red.gif"; width="9" height="13"></td>
<td
background="http://www.qa-systems.com/resources/interface_images/boxtop_red.gif";><img
src="http://www.qa-systems.com/resources/interface_images/boxtop_red.gif"; width=14 height=13
border=0></td>
<td><img src="http://www.qa-systems.com/resources/interface_images/boxtopright_red.gif";
width="9" height="13"></td>
</tr>
<tr valign=TOP> <td width=9 background="http://www.qa-systems.com/resources/interface_images/boxleft.gif"; height="294"><img src="http://www.qa-systems.com/resources/interface_images/boxleft.gif"; width=9 height=9 border=0></td>
<td width=100% height="294"> <table width="100%" border="0" cellpadding="2" cellspacing="0" >
<tr> <td align="left" width="100%" height="193"> <table width="100%" border="0" cellspacing="0" cellpadding="2">
<tr> <td height="227"> <div align="left"> <p><br>
<font face="Arial, Helvetica, sans-serif" size="2"><b>QStudio for Java Pro</b> - The Software Health Tool for Java&#153; - significantly reduces your code review effort by automating a major portion of your code inspection process; it detects software defects prior to compile time and automatically assesses the quality of your software from within your preferred Java IDE or standalone environment.<br>
<br>
QStudio for Java Pro gives you the ability to automatically assess and control software quality concepts such as reliability, maintainability and efficiency. Software process managers can tie software development quality control practices deeper and earlier into the software development process than previously possible.</font></p>
<p><font face="Arial, Helvetica, sans-serif" size="2">You are looking for ways to improve your software development process. You want to improve time-to-market, software quality and the efficiency of software maintenance and preferably in a way that does not cost you an arm and a leg. QStudio for Java Pro gives you the benefits of automated software code quality control for just <b>$295/&euro;295</b>.</font></p>
<p><font face="Arial, Helvetica, sans-serif" size="2">Supported Java IDE's include <a href="http://www.qa-systems.com/products/qstudioforjava/jbuilder/index.html";>Borland JBuilder</a>, <a href="http://www.qa-systems.com/products/qstudioforjava/jdeveloper/index.html";>Oracle9i JDeveloper</a>, <a href="http://www.qa-systems.com/products/qstudioforjava/eclipse/index.html";>Eclipse from Eclipse.org</a> and <a href="http://www.qa-systems.com/products/qstudioforjava/websphere/index.html";>IBM WebSphere Studio</a>. Download QStudio for Java Pro now for free <a href="http://www.qa-systems.com/downloads/qstudioforjava/index.html";>evaluation</a> or <a href="http://www.qa-systems.com/shop/index.html";>purchase</a> from <a href="http://www.qa-systems.com/index.html";>www.qa-systems.com</a>. </font></p>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
<td width=9 background="http://www.qa-systems.com/resources/interface_images/boxright.gif";
height="294"><img src="http://www.qa-systems.com/resources/interface_images/boxright.gif"; width=9
height=9 border=0></td>
</tr>
<tr> <td width="9" height="2"><img src="/resources/interface_images/boxbottomleft.gif" width="9" height="13"></td>
<td background="http://www.qa-systems.com/resources/interface_images/boxbottom.gif";
height="2"><img src="http://www.qa-systems.com/resources/interface_images/boxbottom.gif"; width=13
height=13 border=0></td>
<td width="9" height="2"><img
src="http://www.qa-systems.com/resources/interface_images/boxbottomright.gif"; width="9" height="13"></td>
</tr>
</table>
<br>
<table width="100%" border="0">
<tr>
<td width="52%" height="58"><font size="1" face="Arial, Helvetica, sans-serif"><a
href="http://www.qa-systems.com/index.html";><img src="http://www.qa-systems.com/resources/logo/QAS20030408.bmp";
border="0"></a></font></td>
<td width="48%" height="58"> <div align="right"><a href="http://www.qa-systems.com/products/qstudioforjava/index.html";><img src="http://www.qa-systems.com/resources/logo/qstudio4java_text.236x54.gif"; width="236" height="54" border="0"></a></div>
</td>
</tr>
</table>
<p><font size="1" face="Arial, Helvetica, sans-serif"><br>
</font><span class="bodySmall"><font size="1" face="Arial, Helvetica, sans-serif">QA Systems respects your privacy. Your email address will not be sold or given to third parties. You can unsubscribe at any time by sending an email to <a href="mailto:unsubscribe AT qa-systems.com";>unsubscribe AT qa-systems.com</a>.<br><br>
This is an unsolicited commercial electronic mail communication. We make every attempt to comply with the United States Unsolicited Commercial Electronic Mail Act of 2001. Please
send any complaints you may have to complaints AT qa-systems.com.
</font></span></p>
</td>
</tr>
</table>
</body>
</html>

------=_NextPart_000_000B_01C2F78F.0E59B7E0--
From todd.trimmer AT trizetto.com Thu Apr 10 13:34:08 2003
Return-Path: <todd.trimmer AT trizetto.com>
Delivered-To: xom-interest AT lists.ibiblio.org
Received: from sdc01-x08.trizetto.net (unknown [208.229.189.32])
by happyhouse.metalab.unc.edu (Postfix) with SMTP id F12E52006D
for <xom-interest AT lists.ibiblio.org>;
Thu, 10 Apr 2003 13:34:07 -0400 (EDT)
Received: by s-coengl-eb1.tzg.com with Internet Mail Service (5.5.2656.59)
id <23ASCPHP>; Thu, 10 Apr 2003 11:34:01 -0600
Message-ID: <89297B2626BD5541B479C42E9599B6245D6952@s-coengl-e05>
From: "Trimmer, Todd" <todd.trimmer AT trizetto.com>
To: "XOM list (E-mail)" <xom-interest AT lists.ibiblio.org>
Date: Thu, 10 Apr 2003 11:33:46 -0600
MIME-Version: 1.0
X-Mailer: Internet Mail Service (5.5.2656.59)
Content-Type: text/plain;
charset="iso-8859-1"
Subject: [XOM-interest] Sugar syntax
X-BeenThere: xom-interest AT lists.ibiblio.org
X-Mailman-Version: 2.1.1
Precedence: list
List-Id: <xom-interest.lists.ibiblio.org>
List-Unsubscribe: <http://lists.ibiblio.org/mailman/listinfo/xom-interest>,
<mailto:xom-interest-request AT lists.ibiblio.org?subject=unsubscribe>
List-Archive: <https://lists.ibiblio.org/sympa/arc/xom-interest>
List-Post: <mailto:xom-interest AT lists.ibiblio.org>
List-Help: <mailto:sympa AT lists.ibiblio.org?subject=HELP>
List-Subscribe: <http://lists.ibiblio.org/mailman/listinfo/xom-interest>,
<mailto:xom-interest-request AT lists.ibiblio.org?subject=subscribe>
X-List-Received-Date: Thu, 10 Apr 2003 17:34:08 -0000

If most of the methods of the Node and its ancestors are final, then why
does sugar syntax hurt so much? It doesn't make a subclasser's job easier or
harder.


Todd Trimmer



  • RE: [XOM-interest] Needs hasX(String), Elliotte Rusty Harold, 04/10/2003

Archive powered by MHonArc 2.6.24.

Top of Page