You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@xerces.apache.org by Karen Schuchardt <kl...@pnl.gov> on 2000/02/01 20:05:00 UTC

BUG java.lang.ArrayIndexOutOfBoundsException: 128

Content-Type: multipart/mixed;
 boundary="------------C5EA6DD914E762D91D7D63F3"

This is a multi-part message in MIME format.
--------------C5EA6DD914E762D91D7D63F3
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Hi,

I have a fairly large xml file that makes use of a schema.  I get the
following stack trace

java.lang.ArrayIndexOutOfBoundsException: 128
        at
org.apache.xerces.dom.DeferredDocumentImpl.getNodeObject(Compiled Code)
        at
org.apache.xerces.dom.DeferredElementImpl.synchronizeChildren(Compiled
Code)
        at org.apache.xerces.dom.NodeImpl.getChildNodes(Compiled Code)
        at dom.DOMCount.traverse(Compiled Code)
        at dom.DOMCount.traverse(Compiled Code)
        at dom.DOMCount.traverse(Compiled Code)
        at dom.DOMCount.count(Compiled Code)
        at dom.DOMCount.main(Compiled Code)

while using the sample DOMCount program on my data.  It turns out that
if I remove any one
element with its associated nested elements, then this bug goes away.
Removing an element
that has no sub elements does not affect the problem.

So if I remove one (the last attribute-type element for example), I get
the following output:
java dom.DOMCount ris.xml
ris.xml: 1068 ms (671 elems, 966 attrs, 4164 spaces, 13090 chars)


This is just to provide you with information about how large the file
is.  I have attached both the
schema and xml file so that you can check it out for yourself.  This
problem does not occur
when using SAX.  I noticed there have been several problems with a
similar trace in the archives
in the past.  I am using version 1.0.1 under solaris.


Also, any information about plans for improved support would be
appreciated.   Will we be able
to use a named namespace soon?  For example, modify the example data
that comes with
xerces to look like
<?xml version="1.0" encoding="UTF-8"?>
<foo:personnel xmlns:foo="personal.xsd">
  <foo:person id=.....>
  </foo:person>
...
</foo:personnel>


Thanks,
Karen

--------------C5EA6DD914E762D91D7D63F3
Content-Type: text/plain; charset=us-ascii;
 name="ris.xml"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="ris.xml"

<?xml version="1.0"?>


<ris xmlns="ris.xsd">
  <ris-directory-schema>

<!-- Classes -->

<!-- General Classes -->


    <class type="abstract" id="netscape::top">
      <name>Netscape::top</name>
      <description>
      The Netscape:top class is used as a superclass for all other
objects in the directory.  The top object class is an abstract class and
is reserved for use by the directory server.  RFC 2256 specifies the top
object class must be recognized by all LDAP server implementations.  The
following is the Netscape definition for the top object.
      </description>
      <attribute ref="#objectClass" required="true"/>
      <attribute ref="#aci" required="false"/>
    </class>




    <class type="structural" id="grid::preferences">
      <name>Grid::Preferences</name>
      <rdn>uniqueName</rdn>
      <childof>Grid::Person</childof>
      <description>
         This class is used to store user preferences.  Currently
preferences are defined as key/value pairs and are stored as key=value.
      </description>
      <attribute ref="#uniqueName" required="true"/>
      <attribute ref="#keyvalue" required="false"/>
    </class>



<!-- Organization Classes -->




    <class 
          type="structural" 
          id="x.500::organization"
          superior="Netscape::top">
      <name>X.500::organization</name>
      <rdn>o</rdn>
      <childof>X.500::organization</childof>
      <description>
      This class defines entries that represent organizations.  This is
the X.500 definition as implemented by Netscape.  Note that this class is
defined to be recursive - organizations can consist of other
organizations.  We purposely did not use the organizationalUnit class
since it seemed to merge with the definition of organization over time.
      </description>
      <attribute ref="#o" required="true"/>
      <attribute ref="#businessCategory" required="false"/>
      <attribute ref="#description" required="false"/>
      <attribute ref="#destinationIndicator" required="false"/>
      <attribute ref="#facsimileTelephoneNumber" required="false"/>
      <attribute ref="#internationalIsdnNumber" required="false"/>
      <attribute ref="#l" required="false"/>
      <attribute ref="#physicalDeliveryOfficeName" required="false"/>
      <attribute ref="#postalAddress" required="false"/>
      <attribute ref="#postalCode" required="false"/>
      <attribute ref="#postOfficeBox" required="false"/>
      <attribute ref="#preferredDeliveryMethod" required="false"/>
      <attribute ref="#registeredAddress" required="false"/>
      <attribute ref="#searchGuide" required="false"/>
      <attribute ref="#seeAlso" required="false"/>
      <attribute ref="#st" required="false"/>
      <attribute ref="#street" required="false"/>
      <attribute ref="#telephoneNumber" required="false"/>
      <attribute ref="#teletexTerminalIdentifier" required="false"/>
      <attribute ref="#telexNumber" required="false"/>
      <attribute ref="#userPassword" required="false"/>
      <attribute ref="#x121Address" required="false"/>
    </class>


<!-- People Classes -->



    <class type="abstract" id="x.500::person" superior="netscape::top">
      <name>X.500::Person</name>
      <description>
      Grid::person is an abstract class that generically represents
people.  This is the X.500 definition as implemented by Netscape.
      </description>
      <attribute ref="#commonName" required="true"/>
      <attribute ref="#surName" required="true"/>
      <attribute ref="#description" required="false"/>
      <attribute ref="#seeAlso" required="false"/>
      <attribute ref="#telephoneNumber" required="false"/>
      <attribute ref="#userPassword" required="false"/>
    </class>





    <class type="abstract" 
          id="x.500::organizationalPerson" superior="x.500::person">
      <name>X.500::organizationalPerson</name>
      <description>
         X.500::organizationalPerson defines entries for people employed
by and organization.  This abstract class is the X.500 definition 
as implemented by Netscape.
      </description>
      <attribute ref="#destinationIndicator" required="false"/>
      <attribute ref="#facsimileTelephoneNumber" required="false"/>
      <attribute ref="#internationalIsdnNumber" required="false"/>
      <attribute ref="#l" required="false"/>
      <attribute ref="#ou" required="false"/>
      <attribute ref="#physicalDeliveryOfficeName" required="false"/>
      <attribute ref="#postalAddress" required="false"/>
      <attribute ref="#postalCode" required="false"/>
      <attribute ref="#postOfficeBox" required="false"/>
      <attribute ref="#preferredDeliveryMethod" required="false"/>
      <attribute ref="#registeredAddress" required="false"/>
      <attribute ref="#st" required="false"/>
      <attribute ref="#street" required="false"/>
      <attribute ref="#teletexTerminalIdentifier" required="false"/>
      <attribute ref="#telexNumber" required="false"/>
      <attribute ref="#title" required="false"/>
      <attribute ref="#x121Address" required="false"/>
   </class>





    <class type="structural" 
          id="netscape::inetorgperson" superior="x.500::organizationalPerson">
      <name>Netscape::inetOrgPerson</name>
      <rdn>mail</rdn>
      <childof>x.500::organization</childof>
      <description>
         inetOrgPerson represents people in an organization's enterprise
network.
      </description>
      <attribute ref="#audio" required="false"/>
      <attribute ref="#businessCategory" required="false"/>
      <attribute ref="#carLicense" required="false"/>
      <attribute ref="#departmentNumber" required="false"/>
      <attribute ref="#displayName" required="false"/>
      <attribute ref="#employeeNumber" required="false"/>
      <attribute ref="#employeeType" required="false"/>
      <attribute ref="#givenName" required="false"/>
      <attribute ref="#homePhone" required="false"/>
      <attribute ref="#homePostalAddress" required="false"/>
      <attribute ref="#initials" required="false"/>
      <attribute ref="#jpegPhoto" required="false"/>
      <attribute ref="#labeledURL" required="false"/>
      <attribute ref="#mail" required="false"/>
      <attribute ref="#manager" required="false"/>
      <attribute ref="#mobile" required="false"/>
      <attribute ref="#pager" required="false"/>
      <attribute ref="#photo" required="false"/>
      <attribute ref="#preferredLanguage" required="false"/>
      <attribute ref="#roomNumber" required="false"/>
      <attribute ref="#secretary" required="false"/>
      <attribute ref="#uid" required="false"/>
      <attribute ref="#userCertificate" required="false"/>
      <attribute ref="#userPKCS12_binary" required="false"/>
      <attribute ref="#userSMIMECertificate" required="false"/>
      <attribute ref="#x500UniqueIdentifier" required="false"/>
   </class>






    <class type="structural" 
          id="grid::person" superior="netscape::inetOrgPerson">
      <name>Grid::Person</name>
      <rdn>mail</rdn>
      <childof>x.500::organization</childof>
      <description>
        Grid::Person objects represent people in a grid environment.
      </description>
      <attribute ref="#city" required="false"/>
      <attribute ref="#country" required="false"/>
      <attribute ref="#employer" required="false"/>
      <attribute ref="#organization" required="false"/>
   </class>



<!-- Resource Classes -->




    <class type="abstract" id="grid::physicalresource" superior="#netscapetop">
      <name>Grid::PhysicalResource</name>
      <description>
        An abstract class for any physical resources, e.g. computers,
instruments...
      </description>
      <attribute ref="#owner" required="false"/>
      <attribute ref="#description" required="false"/>
      <attribute ref="#seeAlso" required="false"/>
    </class>


    <class type="structural" 
           id="grid::computeresource" superior="#grid::physicalresource">
      <name>Grid::ComputeResource</name>
      <rdn>hn</rdn>
      <childof>X.500::organization</childof>
      <description>
        A computational resource that runs computational codes.
      </description>
      <attribute ref="#hn" required="true"/>
      <attribute ref="#totalNodes" required="true" singular="true"/>
      <attribute ref="#cpusPerNode" required="false" singular="true"/>
      <attribute ref="#cpuSpeed" required="false"/>
      <attribute ref="#manufacturer" required="false"/>
      <attribute ref="#machineHardwareName" required="false"/>
      <attribute ref="#architecture" required="false" singular="true"/>
      <attribute ref="#model" required="false"/>
      <attribute ref="#osName" required="false" singular="true"/>
      <attribute ref="#osVersion" required="false" singular="true"/>
      <attribute ref="#scriptHeader" required="false" singular="false"/>
      <attribute ref="#scriptBody" required="false" singular="false"/>
    </class>





<!-- Queue Classes -->

    <class type="structural" 
           id="grid::resourcemanager" superior="#netscape::top">
      <name>Grid::ResourceManager</name>
      <rdn>mn</rdn>
      <childof>Grid::ComputeResource</childof>
      <description>
        Grid::ResourceManager is an abstraction for the type of job
scheduling service available on a machines.  Examples include Maui, NQE,
NQS, LoadLeveler.  This class also contains information about how the queue is
configured and installed.
      </description>
      <attribute ref="#mn" required="true" singular="true"/>
      <attribute ref="#hn" required="true"/>
      <attribute ref="#releaseTag" required="false" singular="true"/>
      <attribute ref="#allocationAccounts" required="false" singular="true"/>
      <attribute ref="#autoPick" required="false" singular="true"/>
      <attribute ref="#installDirectory" required="false" singular="true"/>
      <attribute ref="#binDirectory" required="false" singular="true"/>
      <attribute ref="#queue" required="false"/>
    </class>




    <class type="structural" 
           id="grid::queue" superior="#netscape::top">
      <name>Grid::Queue</name>
      <rdn>qn</rdn>
      <childof>Grid::ResourceManager</childof>
      <description>
         This class contains information about a queue and how it is
configured.
      </description>
      <attribute ref="#qn" required="true"/>
      <attribute ref="#mn" required="true" singular="true"/>
      <attribute ref="#hn" required="true"/>
      <attribute ref="#defaultMaxCPUTime" required="false" singular="true"/>
      <attribute ref="#defaultMaxWallTime" required="false" singular="true"/>
      <attribute ref="#defaultNodes" required="false" singular="true"/>
      <attribute ref="#defaultSingleMemory" required="false" singular="true"/>
      <attribute ref="#defaultTotalMemory" required="false" singular="true"/>
      <attribute ref="#minNodes" required="false" singular="true"/>
      <attribute ref="#maxNodes" required="false" singular="true"/>
      <attribute ref="#maxSingleMemory" required="false" singular="true"/>
      <attribute ref="#maxTotalMemory" required="false" singular="true"/>
      <attribute ref="#maxWallTime" required="false" singular="true"/>
    </class>





    <class type="structural" 
           id="grid::queueentry" superior="#netscape::top">
      <name>Grid::QueueEntry</name>
      <rdn>qen</rdn>
      <childof>Grid::Person</childof>
      <description>
      A queue entry represents a job that is submitted to a queue, is
running, or has recently completed.  This class must contain enough
information so that processes can connect up to proxies associated with
the running job (i.e. a job monitor).
      </description>
      <attribute ref="#qen" required="true" singular="true"/>
      <attribute ref="#hn" required="true" singular="false"/>
      <attribute ref="#jobId" required="true" singular="true"/>
      <attribute ref="#proxyId" required="true" singular="true"/>
      <attribute ref="#nodes" required="true" singular="true"/>
      <attribute ref="#qn" required="true" singular="false"/>
      <attribute ref="#runDirectory" required="true" singular="true"/>
      <attribute ref="#jobStatus" required="true" singular="true"/>
      <attribute ref="#uid" required="true" singular="true"/>
      <attribute ref="#mail" required="true" singular="false"/>
      <attribute ref="#description" required="true" singular="false"/>
      <attribute ref="#startTime" required="false" singular="false"/>
      <attribute ref="#submitTime" required="false" singular="false"/>
      <attribute ref="#finishTime" required="false" singular="false"/>
    </class>

    <class type="structural" 
           id="grid::queuetemplates" superior="#netscape::top">
      <name>Grid::QueueTemplates</name>
      <rdn>mn</rdn>
      <childof>X.500::organization</childof>
      <description>
      The class contains queue submission default scripts per resource
manager type.  For resouce managers like Maui, this information is often
overridden by the same attributes in Grid::ComputeResource.
      </description>
      <attribute ref="#hn" required="true" singular="true"/>
      <attribute ref="#scriptHeader" required="true" singular="false"/>
      <attribute ref="#scriptBody" required="true" singular="false"/>
    </class>



<!-- Software Classes -->

    <class type="structural" 
           id="grid::repositorysoftware" superior="#netscape::top">
      <name>Grid::RepositorySoftware</name>
      <rdn>rsw</rdn>
      <childof>X.500::organization</childof>
      <description>
      A repository software object stores information related to software
that is independent of any particular installation of the software.
Essentially it contains meta-data about he code itself.
      </description>
      <attribute ref="#rsw" required="true" singular="true"/>
      <attribute ref="#name" required="true" singular="true"/>
      <attribute ref="#releaseTag" required="true" singular="true"/>
      <attribute ref="#domainClassification" required="true" singular="false"/>
      <attribute ref="#contact" required="false" singular="false"/>
      <attribute ref="#description" required="false" singular="false"/>
      <attribute ref="#seeAlso" required="false" singular="false"/>
    </class>





    <class type="structural" 
           id="grid::software" superior="#netscape::top">
      <name>Grid::Software</name>
      <rdn>sw</rdn>
      <childof>Grid::ComputeResource</childof>
      <description>
      The Grid::Software object stores information related to software
that is installed on a machine.  It is currently not designed to reflect
software installed "on the network".
      </description>
      <attribute ref="#sw" required="true" singular="true"/>
      <attribute ref="#name" required="true" singular="true"/>
      <attribute ref="#releaseTag" required="true" singular="true"/>
      <attribute ref="#hn" required="true" singular="false"/>
      <attribute ref="#environment" required="false" singular="false"/>
      <attribute ref="#installDirectory" required="false" singular="true"/>
      <attribute ref="#binDirectory" required="false" singular="false"/>
      <attribute ref="#libDirectory" required="false" singular="false"/>
      <attribute ref="#executables" required="false" singular="false"/>
      <attribute ref="#script" required="false" singular="true"/>
    </class>




    <class type="structural" 
           id="grid::daemon" superior="#grid::software">
      <name>Grid::Daemon</name>
      <rdn>da</rdn>
      <childof>Grid::ComputeResource</childof>
      <description>
        A Grid::Daemon stores information about deamons runnign an a
system.  Examples are globus gatekeeper, sshd, telnetd, HBM datacollector.
      </description>
      <attribute ref="#da" required="true" singular="true"/>
      <attribute ref="#hn" required="true" singular="false"/>
      <attribute ref="#port" required="false" singular="true"/>
      <attribute ref="#protocol" required="false" singular="true"/>
    </class>



<!-- Attributes -->

  <attribute-type id="objectClass">
    <name>objectClass</name>
    <type type="string"/>
    <description>
      Defines the object classes for the entry.  An object in a directory can
      be created from more than one object class.
    </description>
  </attribute-type>

  <attribute-type id="aci">
    <name>aci</name>
    <type type="binary"/>
    <description>
      Defines the directory server access control information for this
      entry.
    </description>
  </attribute-type>

  <attribute-type id="o">
    <name>o</name>
    <type type="string"/>
    <description>
      The name of the organization.
    </description>
  </attribute-type>

  <attribute-type id="businessCategory">
    <name>businessCategory</name>
    <type type="string"/>
    <description>
      Business in which the organization is involved.  Examples are
profit, nonprofit, research, government, educational, university.
    </description>
  </attribute-type>

  <attribute-type id="destinationIndicator">
    <name>destinationIndicator</name>
    <type type="string"/>
    <description>
      The country and city associated with the entry to provide Public
Telegram Service.
    </description>
  </attribute-type>

  <attribute-type id="facsimileTelephoneNumber">
    <name>facsimileTelephoneNumber</name>
    <type type="phone"/>
    <description>
      Fax number associated with the organization.
    </description>
  </attribute-type>

  <attribute-type id="internationalIsdnNumber">
    <name>internationalIsdnNumber</name>
    <type type="ces"/>
    <description>
      Contains an ISDN number for the organization.
    </description>
  </attribute-type>

  <attribute-type id="l">
    <name>l</name>
    <type type="string"/>
    <description>
      The organization's location(s).
    </description>
  </attribute-type>

  <attribute-type id="physicalDeliveryOfficeName">
    <name>physicalDeliveryOfficeName</name>
    <type type="string"/>
    <description>
      The location where physical deliveries can be made to the
organization.
    </description>
  </attribute-type>

  <attribute-type id="postalAddress">
    <name>postalAddress</name>
    <type type="string"/>
    <description>
      The organization's mailing address.
    </description>
  </attribute-type>

  <attribute-type id="postalCode">
    <name>postalCode</name>
    <type type="string"/>
    <description>
      The organization's postal code (such as United States zip code).
    </description>
  </attribute-type>

  <attribute-type id="postOfficeBox">
    <name>postOfficeBox</name>
    <type type="string"/>
    <description>
      The organization's post office box.
    </description>
  </attribute-type>

  <attribute-type id="preferredDeliveryMethod">
    <name>preferredDeliveryMethod</name>
    <type type="string"/>
    <description>
      The organization's preferred method of contact or delivery.
    </description>
  </attribute-type>

  <attribute-type id="registeredAddress">
    <name>registeredAddress</name>
    <type type="string"/>
    <description>
      Postal address suitable for reception of expedited documents where
the recipient must verify delivery.
    </description>
  </attribute-type>

  <attribute-type id="searchGuide">
    <name>searchGuide</name>
    <type type="ces"/>
    <description>
      Specifies information for suggested search criteria when using the
entry as the base object in the directory tree for a search operation.
    </description>
  </attribute-type>

  <attribute-type id="seeAlso">
    <name>seeAlso</name>
    <type type="dn"/>
    <description>
      URL to information relevent to the entity.
    </description>
  </attribute-type>

  <attribute-type id="st">
    <name>st</name>
    <type type="string"/>
    <description>
      State or province in which the organization resides.
    </description>
  </attribute-type>

  <attribute-type id="street">
    <name>street</name>
    <type type="string"/>
    <description>
      Street address at which the organization is located.
    </description>
  </attribute-type>

  <attribute-type id="telephoneNumber">
    <name>telephoneNumber</name>
    <type type="phone"/>
    <description>
      Telephone number associated with the organization.
    </description>
  </attribute-type>

  <attribute-type id="teletexTerminalIdentifier">
    <name>teletexTerminalIdentifier</name>
    <type type="string"/>
    <description>
      Identifier for the teletex terminal of the organization.
    </description>
  </attribute-type>

  <attribute-type id="telexNumber">
    <name>telexNumber</name>
    <type type="string"/>
    <description>
      Telex number of the entity represented by the object.
    </description>
  </attribute-type>

  <attribute-type id="userPassword">
    <name>userPassword</name>
    <type type="binary"/>
    <description>
      Password with which the entity represented by the object can bind to 
the directory.
    </description>
  </attribute-type>

  <attribute-type id="x121Address">
    <name>x121Address</name>
    <type type="ces"/>
    <description>
      The X.121 address of the entity represented by the object.
    </description>
  </attribute-type>

  <attribute-type id="uniqueName">
    <name>uniqueName</name>
    <type type="string"/>
    <description>
      A name that is unique to the object class in order to support the
lookup of an object.  
    </description>
  </attribute-type>

  <attribute-type id="keyvalue">
    <name>keyvalue</name>
    <type type="keyValue"/>
    <description>
      A key/value pair of the form key=value.
    </description>
  </attribute-type>

  <attribute-type id="commonName">
    <name>commonName</name>
    <type type="string"/>
    <description>
      A person's common name or first name.
    </description>
  </attribute-type>

  <attribute-type id="surName">
    <name>surName</name>
    <type type="string"/>
    <description>
      A person's surname or last name.
    </description>
  </attribute-type>

  <attribute-type id="ou">
    <name>ou</name>
    <type type="string"/>
    <description>
      Organizational unit to which the person belongs.
Brett, but we don't have OU!
    </description>
  </attribute-type>

  <attribute-type id="title">
    <name>title</name>
    <type type="string"/>
    <description>
      A person's job title.
    </description>
  </attribute-type>

  <attribute-type id="city">
    <name>city</name>
    <type type="string"/>
    <description>
      City of the person for postal contact.
    </description>
  </attribute-type>

  <attribute-type id="country">
    <name>country</name>
    <type type="string"/>
    <description>
      Country of residence.
    </description>
  </attribute-type>

  <attribute-type id="employer">
    <name>employer</name>
    <type type="string"/>
    <description>
      Organization the person is employed by.
    </description>
  </attribute-type>

  <attribute-type id="organization">
    <name>organization</name>
    <type type="dn"/>
    <description>
      The organization the entity represented by this object is associaed
with.
    </description>
  </attribute-type>

  <attribute-type id="audio">
    <name>audio</name>
    <type type="binary"/>
    <description>
      Contains a sound file in binary format.
    </description>
  </attribute-type>

  <attribute-type id="carLicense">
    <name>carLicense</name>
    <type type="string"/>
    <description>
      The license plate number(s) for vehicle(s).
    </description>
  </attribute-type>

  <attribute-type id="departmentNumber">
    <name>departmentNumber</name>
    <type type="string"/>
    <description>
      A unique identifier for a department within an organization.
    </description>
  </attribute-type>

  <attribute-type id="displayName">
    <name>displayName</name>
    <type type="string"/>
    <description>
      Preferred name of a person to be used when displaying entries.
    </description>
  </attribute-type>

  <attribute-type id="employeeNumber">
    <name>employeeNumber</name>
    <type type="string"/>
    <description>
      A unique identifying number associated with an employee.
    </description>
  </attribute-type>

  <attribute-type id="employeeType">
    <name>employeeType</name>
    <type type="string"/>
    <description>
      The person's type of employment (for example, full time)
    </description>
  </attribute-type>

  <attribute-type id="givenName">
    <name>givenName</name>
    <type type="string"/>
    <description>
      The person's given or first name.
    </description>
  </attribute-type>

  <attribute-type id="homePhone">
    <name>homePhone</name>
    <type type="phone"/>
    <description>
      The person's home phon number.
    </description>
  </attribute-type>

  <attribute-type id="homePostalAddress">
    <name>homePostalAddress</name>
    <type type="string"/>
    <description>
      The person's home mailing address
    </description>
  </attribute-type>

  <attribute-type id="initials">
    <name>initials</name>
    <type type="string"/>
    <description>
      The person's initials.
    </description>
  </attribute-type>

  <attribute-type id="jpegPhoto">
    <name>jpegPhoto</name>
    <type type="binary"/>
    <description>
      An image in JPEG format.
    </description>
  </attribute-type>

  <attribute-type id="labeledURL">
    <name>labeledURL</name>
    <type type="uri"/>
    <description>
      A univeral resource locator that is relevent to the person.
    </description>
  </attribute-type>

  <attribute-type id="mail">
    <name>mail</name>
    <type type="string"/>
    <description>
      An electronic mailing address.
    </description>
  </attribute-type>

  <attribute-type id="manager">
    <name>manager</name>
    <type type="dn"/>
    <description>
      Distinguished name representing a manager.
    </description>
  </attribute-type>

  <attribute-type id="mobile">
    <name>mobile</name>
    <type type="phone"/>
    <description>
      A mobile telephone number.
    </description>
  </attribute-type>

  <attribute-type id="pager">
    <name>pager</name>
    <type type="phone"/>
    <description>
      A pager phone number.
    </description>
  </attribute-type>

  <attribute-type id="photo">
    <name>photo</name>
    <type type="binary"/>
    <description>
      A photo, in binary form.
    </description>
  </attribute-type>

  <attribute-type id="preferredLanguage">
    <name>preferredLanguage</name>
    <type type="string"/>
    <description>
      Defines a person's preferred written or spoken launguage.
    </description>
  </attribute-type>

  <attribute-type id="roomNumber">
    <name>roomNumber</name>
    <type type="string"/>
    <description>
      The room number in which the entity represented by  this object is
located..
    </description>
  </attribute-type>

  <attribute-type id="secretary">
    <name>secratary</name>
    <type type="dn"/>
    <description>
      A secretary or administrator for a person or group.
    </description>
  </attribute-type>

  <attribute-type id="uid">
    <name>uid</name>
    <type type="string"/>
    <description>
      Identifies the entry's userid (usually the logon id).
    </description>
  </attribute-type>

  <attribute-type id="userCertificate">
    <name>userCertificate</name>
    <type type="binary"/>
    <description>
      Contains a user's certificate.  Store this attribute with the
binary subtype: userCertificate;binary.
    </description>
  </attribute-type>

  <attribute-type id="userPKCS12_binary">
    <name>userPKCS12_binary</name>
    <type type="integer"/>
    <description>
      Identifies the PKCS-12 PFX PDU used to store a user's key and
certificate.  This is generated by the certificate server and consumed by
Netscape communicator.
    </description>
  </attribute-type>

  <attribute-type id="userSMIMECertificate">
    <name>userSMIMECertificate</name>
    <type type="binary"/>
    <description>
      Used by Netscape Communicator for s/MIME.  Should only be used with
the binary subtype.
    </description>
  </attribute-type>

  <attribute-type id="x500UniqueIdentifier">
    <name>x500UniqueIdentifier</name>
    <type type="binary"/>
    <description>
      Undefined.
    </description>
  </attribute-type>

  <attribute-type id="owner">
    <name>owner</name>
    <type type="dn"/>
    <description>
      The owner of the entity.
    </description>
  </attribute-type>

  <attribute-type id="hn">
    <name>hn</name>
    <type type="string"/>
    <description>
     The host name(s) for a compute resource.  Names should include the
full domain name.  IP addresses can also be used.
    </description>
  </attribute-type>

  <attribute-type id="totalNodes">
    <name>totalNodes</name>
    <type type="positive-integer"/>
    <description>
      The total number of nodes that comprise the compute resource.
    </description>
  </attribute-type>

  <attribute-type id="cpusPerNode">
    <name>cpusPerNode</name>
    <type type="positive-integer"/>
    <description>
      The number of cpus on each node of the resource.
    </description>
  </attribute-type>

  <attribute-type id="cpuSpeed">
    <name>cpuSpeed</name>
    <type type="decimal"/>
    <description>
      The clockrate of the CPUs in MHz.
    </description>
  </attribute-type>

  <attribute-type id="manufacturer">
    <name>manufacturer</name>
    <type type="string"/>
    <description>
      The manufacturer name.
    </description>
  </attribute-type>

  <attribute-type id="machineHardwareName">
    <name>machineHardwareName</name>
    <type type="string"/>
    <description>
      The machine hardware name as provided by the vendor.
    </description>
  </attribute-type>

  <attribute-type id="model">
    <name>model</name>
    <type type="string"/>
    <description>
      The model of the compute resource.  On many systems this is
different from the machine hardware name.
    </description>
  </attribute-type>

  <attribute-type id="architecture">
    <name>architecture</name>
    <type type="string"/>
    <description>
      The memory architecture of the machine.  One of Shared,
Distributed, or Hybrid.
    </description>
  </attribute-type>

  <attribute-type id="osName">
    <name>osName</name>
    <type type="string"/>
    <description>
      The operation system name (SunOS, IRIX).
    </description>
  </attribute-type>

  <attribute-type id="osVersion">
    <name>osVersion</name>
    <type type="string"/>
    <description>
      The operationg system version (uname -r).
    </description>
  </attribute-type>

<!-- Brett, why don't we just make these binary? -->
  <attribute-type id="scriptHeader">
    <name>scriptHeader</name>
    <type type="textBlock"/>
    <description>
      A script header template used for submitting jobs.  Each field 
represents a line of of text.  This header information applies to compute 
resources with queue management systems and is needed for machine customization
only.
    </description>
  </attribute-type>

  <attribute-type id="scriptBody">
    <name>scriptBody</name>
    <type type="textBlock"/>
    <description>
      A customized job script template.  This is separated from the
header because headers are often customized but bodies are not.
    </description>
  </attribute-type>

  <attribute-type id="mn">
    <name>mn</name>
    <type type="string"/>
    <description>
      specifies the type/name of the job broker/scheduler.  Values are
unix, loadleveler, maui, nqe, nqs.
    </description>
  </attribute-type>

  <attribute-type id="allocationAccounts">
    <name>allocationAccounts</name>
    <type type="boolean"/>
    <description>
      True if an allocation account is requied in order to submit a job.
    </description>
  </attribute-type>

  <attribute-type id="autoPick">
    <name>autoPick</name>
    <type type="boolean"/>
    <description>
      True if the scheduler is configured to automatically pick a queue
based on constraints passed with a job request.  NQE is often configured
this way.
    </description>
  </attribute-type>

  <attribute-type id="installDirectory">
    <name>installDirectory</name>
    <type type="file"/>
    <description>
      Location where resource manager software is installed.
    </description>
  </attribute-type>

  <attribute-type id="binDirectory">
    <name>binDirectory</name>
    <type type="file"/>
    <description>
      Location of resource manager commands such as qsub...  This may be
relative to the installDirectory.
    </description>
  </attribute-type>

  <attribute-type id="queue">
    <name>queue</name>
    <type type="dn"/>
    <description>
      The distinguished names of the queues that are associated with this
resource manager.
    </description>
  </attribute-type>

  <attribute-type id="qen">
    <name>qen</name>
    <type type="string"/>
    <description>
       Identifer that is comprised of the machine name and the job id, in
       this format "hn:jobID"
    </description>
  </attribute-type>

  <attribute-type id="jobId">
    <name>jobId</name>
    <type type="string"/>
    <description>
      The job id as provided by the resource manager.
    </description>
  </attribute-type>

  <attribute-type id="proxyId">
    <name>proxyId</name>
    <type type="string"/>
    <description>
      The id for the proxy (monitor) associated with a job.
    </description>
  </attribute-type>

  <attribute-type id="proxyPort">
    <name>proxyPort</name>
    <type type="positive-integer"/>
    <description>
      Port number to contact the proxy.
    </description>
  </attribute-type>

  <attribute-type id="nodes">
    <name>nodes</name>
    <type type="positive-integer"/>
    <description>
      Number of nodes allocated to this job.
    </description>
  </attribute-type>

  <attribute-type id="qn">
    <name>qn</name>
    <type type="string"/>
    <description>
      Name of queue(s) under which the job is running.
    </description>
  </attribute-type>

  <attribute-type id="defaultMaxCPUTime">
    <name>defaultMaxCPUTime</name>
    <type type="timeInstant"/>
    <description>
      Maximum cpu time before a job will be automatically terminated.
    </description>
  </attribute-type>

  <attribute-type id="defaultMaxWallTime">
    <name>defaultMaxWallTime</name>
    <type type="timeInstant"/>
    <description>
      Maximum wall time before a job will be automatically terminated.
    </description>
  </attribute-type>

  <attribute-type id="defaultNodes">
    <name>defaultNodes</name>
    <type type="positive-integer"/>
    <description>
      A default number of nodes to use for a given queue.  This is not
necessarily enforced by the queue system.
    </description>
  </attribute-type>

  <attribute-type id="defaultSingleMemory">
    <name>defaultSingleMemory</name>
    <type type="positive-integer"/>
    <description>
      Default amount of memory to allocate per node.
    </description>
  </attribute-type>

  <attribute-type id="defaultTotalMemory">
    <name>defaultTotalMemory</name>
    <type type="positive-integer"/>
    <description>
      Default amount of memory to allocate for all nodes.
    </description>
  </attribute-type>

  <attribute-type id="maxTotalMemory">
    <name>maxTotalMemory</name>
    <type type="positive-integer"/>
    <description>
      Maximum total memory for a job for all nodes.
    </description>
  </attribute-type>

  <attribute-type id="maxNodes">
    <name>maxNodes</name>
    <type type="positive-integer"/>
    <description>
      Maximum number of nodes that can be allocated to a job running
under the queue.
    </description>
  </attribute-type>

  <attribute-type id="maxSingleMemory">
    <name>maxSingleMemory</name>
    <type type="positive-integer"/>
    <description>
      Maximum memory that can be allocated per task within a job.
    </description>
  </attribute-type>

  <attribute-type id="maxWallTime">
    <name>maxWallTime</name>
    <type type="timeInstant"/>
    <description>
      The maximum elapsed time a job can run before it is ejected by the
queue manager.  This value is also used as an input to load balancing
algorithms on some systems (i.e. Maui).
    </description>
  </attribute-type>

  <attribute-type id="minNodes">
    <name>minNodes</name>
    <type type="positive-integer"/>
    <description>
      Minimum number of nodes that a job must request in this queue.
    </description>
  </attribute-type>

  <attribute-type id="runDirectory">
    <name>runDirectory</name>
    <type type="file"/>
    <description>
      Path to location where job is running.
    </description>
  </attribute-type>

  <attribute-type id="jobStatus">
    <name>jobStatus</name>
    <type type="string"/>
    <description>
      Status of job (submitted, running, completed, incomplete, failed).
    </description>
  </attribute-type>

  <attribute-type id="startTime">
    <name>startTime</name>
    <type type="timeInstant"/>
    <description>
      Time when job started running.
    </description>
  </attribute-type>

  <attribute-type id="submitTime">
    <name>submitTime</name>
    <type type="timeInstant"/>
    <description>
      Time when job was submitted.
    </description>
  </attribute-type>

  <attribute-type id="finishTime">
    <name>finishTime</name>
    <type type="timeInstant"/>
    <description>
      Time when job stopped running.
    </description>
  </attribute-type>

  <attribute-type id="name">
    <name>name</name>
    <type type="string"/>
    <description>
      An identifying name for an object.
    </description>
  </attribute-type>

  <attribute-type id="rsw">
    <name>rsw</name>
    <type type="string"/>
    <description>
      The identifier for the software package, comprised of the name and
releaseTag attributes, i.e.  "name:releaseTag"
    </description>
  </attribute-type>

  <attribute-type id="contact">
    <name>contact</name>
    <type type="dn"/>
    <description>
      Distinguished name of the point of contact for the software
    </description>
  </attribute-type>

  <attribute-type id="domainClassification">
    <name>domainClassification</name>
    <type type="keyValue"/>
    <description>
      A classification of the domain the software falls into
e.g. Parallel Processing Tools Communication Libraries, electronic
structure chemistry.
    </description>
  </attribute-type>

  <attribute-type id="sw">
    <name>sw</name>
    <type type="keyValue"/>
    <description>
      the identifier for the installed software, comprised of the
software name and releaseTag attributes, i.e.  "name:releaseTag"
    </description>
  </attribute-type>

  <attribute-type id="releaseTag">
    <name>releaseTag</name>
    <type type="string"/>
    <description>
    A string that represents a software release number.  This number
should be unique for any given product version.  It would be nice to
define this as a type but for now we leave it as a string.
    </description>
  </attribute-type>

  <attribute-type id="environment">
    <name>environment</name>
    <type type="keyValue"/>
    <description>
      Key/value pairs of environment variables that may or must be set to
use the software.
    </description>
  </attribute-type>

  <attribute-type id="libDirectory">
    <name>libDirectory</name>
    <type type="file"/>
    <description>
      Specifies the directory in which the libraries can be found, e.g.
/usr/local/lib
    </description>
  </attribute-type>

  <attribute-type id="executables">
    <name>executables</name>
    <type type="string"/>
    <description>
      Specifies the names of executables appropriate for this machine.
This does not include the path which can be derived from other
attributes.
    </description>
  </attribute-type>

  <attribute-type id="script">
    <name>script</name>
    <type type="file"/>
    <description>
      Name of script or executable to run to configure the environment
for the software.
    </description>
  </attribute-type>

  <attribute-type id="da">
    <name>da</name>
    <type type="string"/>
    <description>
        The identifier for the running daemon software, comprised of the
name and port attributes, i.e.  "name:port"
    </description>
  </attribute-type>

  <attribute-type id="port">
    <name>port</name>
    <type type="positive-integer"/>
    <description>
      Contact port number.
    </description>
  </attribute-type>

  <attribute-type id="protocol">
    <name>protocol</name>
    <type type="string"/>
    <description>
      Name of protocol(s) supported by this daemon.
    </description>
  </attribute-type>


  <attribute-type id="description">
    <name>description</name>
    <type type="string"/>
    <description>
      Description of the entity.
    </description>
  </attribute-type>



 </ris-directory-schema>
  
</ris>


--------------C5EA6DD914E762D91D7D63F3
Content-Type: text/plain; charset=us-ascii;
 name="ris.xsd"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="ris.xsd"

<?xml version="1.0" encoding="US-ASCII"?>
<!-- <!DOCTYPE schema SYSTEM "structures.dtd"> -->
<!DOCTYPE schema PUBLIC "-//W3C/DTD XML Schema Version 1.0//EN"
                        "http://www.w3.org/XML/Group/1999/09/23-xmlschema/structures/structures.dtd"> 


<schema>

<!-- DATA TYPES -->

<datatype name="uri">
  <basetype name="string"/>   
</datatype>

<datatype name="ces">
  <basetype name="string"/>   
</datatype>

<datatype name="phone">
  <basetype name="string"/>   
</datatype>

<datatype name="dn">
  <basetype name="string"/>   
</datatype>

<datatype name="keyValue">
  <basetype name="string"/>   
</datatype>

<datatype name="file">
  <basetype name="string"/>   
</datatype>

<datatype name="textBlock">
  <basetype name="string"/>   
</datatype>


<!-- DOCUMENT ELEMENT -->

<!-- SCHEMA -->

<element name="ris">
  <archetype>
   <element ref="ris-directory-schema" minOccurs='1' maxOccurs='*'/>
   <attribute name="xmlns"/>
  </archetype>
</element>

<element name="ris-directory-schema">
  <archetype>
    <group order="choice" minOccurs="0" maxOccurs="*">   
      <element ref="class"/>
      <element ref="attribute-type"/>
   </group>   
  </archetype>
</element>

<!-- element types common to class and attribute-type -->
<element name="name" type="string"/>
<element name="description" type="string"/>
<element name="rdn" type="string"/>
<element name="dn" type="distinguished-name"/>
<element name="childof" type="uri"/>

<element name="class">
  <archetype>
    <element ref="name" maxOccurs="*"/>
    <element ref="rdn" minOccurs="0" maxOccurs="1"/>
    <element ref="childof" minOccurs="0" maxOccurs="*"/>
    <element ref="description" minOccurs="0" maxOccurs="1"/>
    <element ref="attribute" minOccurs="0" maxOccurs="*"/>
    <attribute name="id" type="ID" minOccurs="1"/>
    <attribute name="superior" type="uri"/>
    <attribute name="obsolete" type="boolean" default="false"/>
    <attribute name="type" type="NMTOKEN" minOccurs="1">
      <enumeration>
        <literal>structural</literal>
        <literal>abstract</literal>
        <literal>auxiliary</literal>
      </enumeration>
    </attribute>
  </archetype>
</element>


<!--
  This is changed from DSML in that we moved some attributes here just
  for the readability of the document.  We use the reference only for the
  description now.
-->
<element name="attribute">
  <archetype content="empty">
    <attribute name="ref" type="uri" minOccurs="0"/>
    <attribute name="required" type="boolean" minOccurs="1"/>
    <attribute name="singular" type="boolean" default="false"/>
  </archetype>
</element>


<!-- 
  The only thing we are really using out of this is the description
  See comments in file header regarding why some elements are commented
  out.
-->
<element name="type">
  <archetype  content="empty">
  <attribute name="type" type="NMTOKEN" minOccurs="1">
      <enumeration>
        <literal>string</literal>
        <literal>ces</literal>
        <literal>phone</literal>
        <literal>binary</literal>
        <literal>dn</literal>
        <literal>integer</literal>
        <literal>positive-integer</literal>
        <literal>timeInstant</literal>
        <literal>file</literal>
        <literal>boolean</literal>
        <literal>uri</literal>
        <literal>keyValue</literal>
        <literal>textBlock</literal>
        <literal>decimal</literal>
      </enumeration>
  </attribute>
  </archetype>
</element>

<element name="attribute-type">
  <archetype>
    <element ref="name" minOccurs="1" maxOccurs="1"/>
    <element ref="type" minOccurs="1" maxOccurs="1"/>
    <element ref="description" minOccurs="0"/>
    <element ref="object-identifier" minOccurs="0"/>
<!--
    <element name="syntax" type="oid" minOccurs="0"/>
    <element name="equality" type="oid" minOccurs="0"/>
    <element name="ordering" type="oid" minOccurs="0"/>
    <element name="substring" type="oid" minOccurs="0"/>
-->
    <attribute name="id" type="ID" minOccurs="1"/>
    <attribute name="sup" type="uri"/>
    <attribute name="obsolete" type="boolean" default="false"/>
    <attribute name="user-modification" type="boolean" default="true"/>
  </archetype>
</element>



</schema>

--------------C5EA6DD914E762D91D7D63F3--


Re: BUG java.lang.ArrayIndexOutOfBoundsException: 128

Posted by Andy Clark <an...@apache.org>.
Let me take a wild guess... You are using Java 1.2.2 with HotSpot.
Am I right? A lot of people are reporting erroneous array index
expections because HotSpot is buggy. If you are using HotSpot,
please turn it off and try again. If your problem persists, we'll
take a look at it.

P.S. Always include the version of the parser in question, as well
     as information about your JDK level, OS platform, etc.

-- 
Andy Clark * IBM, JTC - Silicon Valley * andyc@apache.org