mrglavas 2004/10/08 08:49:47 Modified: java/src/org/apache/xerces/impl/dv/xs XSSimpleTypeDecl.java Log: For QNames, NOTATIONs and types derived from them you
cannot determine actual values from the lexical form alone. Adding a method for retrieving actual enumeration values. This was previously impossible to derive from the current XSModel. Revision Changes Path 1.59 +27 -1 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java Index: XSSimpleTypeDecl.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java,v retrieving revision 1.58 retrieving revision 1.59 diff -u -r1.58 -r1.59 --- XSSimpleTypeDecl.java 6 Oct 2004 14:56:47 -0000 1.58 +++ XSSimpleTypeDecl.java 8 Oct 2004 15:49:46 -0000 1.59 @@ -34,6 +34,7 @@ import org.apache.xerces.impl.xs.util.XSObjectListImpl; import org.apache.xerces.util.XMLChar; import org.apache.xerces.xni.NamespaceContext; +import org.apache.xerces.xs.datatypes.ObjectList; import org.apache.xerces.xs.StringList; import org.apache.xerces.xs.XSAnnotation; import org.apache.xerces.xs.XSConstants; @@ -244,6 +245,7 @@ private Vector fEnumeration; private StringList fLexicalPattern; private StringList fLexicalEnumeration; + private ObjectList fActualEnumeration; private Object fMaxInclusive; private Object fMaxExclusive; private Object fMinExclusive; @@ -2052,6 +2054,30 @@ fLexicalEnumeration = new StringListImpl(strs, size); } return fLexicalEnumeration; + } + + /** + * A list of actual enumeration values if it exists, otherwise an empty + * <code>ObjectList</code>. + */ + public ObjectList getActualEnumeration() { + if (fActualEnumeration == null) { + fActualEnumeration = new ObjectList () { + public int getLength() { + return (fEnumeration != null) ? fEnumeration.size() : 0; + } + public boolean contains(Object item) { + return (fEnumeration != null && fEnumeration.contains(item)); + } + public Object item(int index) { + if (index < 0 || index >= getLength()) { + return null; + } + return fEnumeration.elementAt(index); + } + }; + } + return fActualEnumeration; } /** --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]