Sorry if you got this twice.  I did not see it show up on the archive so I'm
assuming it didn't
make it to the mailing list....
Karen

> 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--

Reply via email to