[jdom-interest] detach() [eg]

Amy Lewis amyzing at talsever.com
Tue Apr 17 15:44:17 PDT 2001

On Tue, Apr 17, 2001 at 02:18:42PM -0700, Jason Hunter wrote:
>Jools wrote:
>> Whilst working through the source code for Element.java I became
>> uncomfortable
>> with the detach() method.
<snip />
>> Which means that if we detach a root element from Document it ends
>> up being a document with one root element <placeholder/>.
>> Do we really want this, or should we simply set the root Element to
>> null ?
>If you set it to null then you have a malformed document.  Every
>well-formed document has a root element.  This was discussed earlier

I've heard this argument, on this topic, before, but its repetition
fails to convince me.

There are a thousand or more ways to produce an ill-formed document
using JDOM.  Hopefully, all of them are programmer errors, like
forgetting to add a root element to the document.  I can't think of a
good excuse for shoehorning <a-random-element /> into the root
position, in defiance of the expectations of the programmer who just
emptied the document out *on purpose*, and I don't agree that
well-formedness is a sufficiently good excuse--certainly not as long as
one can add children to elements that do not belong there (JPanel,
java.sql.Connection, java.util.HashMap).

In other words, if we're going to enforce well-formedness, then we have
to enforce it (and in the process, take power and flexibility away from
the programmer; it always happens that if you dull a knife to keep it
from cutting someone's hands, it's harder to cut the bread).  We have
to enforce it *everywhere*, and not just here, in a place where it's

Amy! (54 hours smoke free and probably not well-balanced at the moment;
excuse me if I am either babbling or overemphatic)
Amelia A. Lewis          alicorn at mindspring.com          amyzing at talsever.com
The flesh is strong.  The spirit stronger.  So shed your skin, baby.
Let it through.  Come on over.
                                                -- Amy Ray

More information about the jdom-interest mailing list