This message describes the XNode, an API for use with Xindice that I've 
sent on to Tom and Kimbro for review. This is considered a proposal, a
donation to the Apache project's Xindice code base. I'm interested in
hearing feedback, and if it's generally positive, the API would be 
donated as part of Xindice. Sun will be releasing a UDDI registry project
soon that includes an implementation of this API. If accepted as part of
Xindice it'll be under an Apache license, if not, Sun will probably 
maintain copyright of it. Since I'm leaving the company next week to
return to school I'm hoping the Xindice community accepts this donation,
as I'd like to see it become a part of Xindice (I'm the author).

I'm hoping to post online the entire javadoc of the API sometime
soon. I'd send it to the list (a 32K zip), but I know how people 
feel about attachments on listservers, and I'm not sure it'd get
through anyway. So below is a brief description in lieu of the more
extensive documentation.

------------------------------------------------------------------------

Description

Since Xindice has no general method for associating metadata with each 
"record" in the database, XNode was developed for this purpose. XNode
is a very simple API, only five files (including an Exception class).

An XNode is an object acting as a container for XML content by providing
an envelope element and some basic metadata attributes such as a node ID
(nid), a timestamp, etc. If you're familiar with SOAP, it'll seem similar.

An instance of such markup (wrapping an XHTML document) might appear as: 

    <xnode:Envelope xmlns:xnode="http://www.apache.org/xnode/1.0/";
          xnode:id="n3892">
      <xnode:Header
          xnode:created="2001-10-22T18:33:56"
          xnode:modified="2001-10-24T09:11:37" />
      <xnode:Body>
        <html xmlns="http://www.w3.org/1999/xhtml";>
           [document content]
        </html>
      </xnode:Body>
    </xnode:Envelope>

Substituting "SOAP-ENV" for "xnode", this is notably similar to a 
*very* simplified SOAP (which for having "Simple" in its title 
isn't in the end all that simple). The above code is how an XNode
is stored in Xindice, such that upon extraction the XNode object
can be reconstituted. The XNode <xnode:Header> element is designed
to be extended for other purposes, though 'created' and 'modified'
should be supported.

----------------------

Classes and Interfaces

XNode abstract class:  
  the XNode object, a wrapper for XML content.

XNodeException class: 
  extends Exception for exceptions thrown in XNode processing.

XNodeState final class:
  defines a fixed set of enumerated types as processing states.

XNodeFactory interface:
  defines an interface for a factory for creating XNode objects.

XNodeStore interface:
  defines an interface for a processor for connecting and 
  disconnecting from a Xindice server as well as common
  Collection and Node manipulations (create, get, delete, etc.)

----

Comments welcome.

Murray

...........................................................................
Murray Altheim                         <mailto:murray.altheim&#x40;sun.com>
XML Technology Center, Java and XML Software
Sun Microsystems, Inc., MS MPK17-102, 1601 Willow Rd., Menlo Park, CA 94025

            Corporations do not have human rights, despite the 
          altogether too-human opinions of the US Supreme Court.

Reply via email to