Object processENUM_OR_PQNAME ( StylesheetHandler handler , String uri , String name , String rawName , String value , ElemTemplateElement owner ) throws org . xml . sax . SAXException { Object objToReturn = null ; if ( getSupportsAVT ( ) ) { try { AVT avt = new AVT ( handler , uri , name , rawName , value , owner ) ; if ( ! avt . isSimple ( ) ) return avt ; else objToReturn = avt ; } catch ( TransformerException te ) { throw new org . xml . sax . SAXException ( te ) ; } } // An avt wasn't used. int key = this . getEnum ( value ) ; if ( key != StringToIntTable . INVALID_KEY ) { if ( objToReturn == null ) objToReturn = new Integer ( key ) ; } // enum not used. Validate qname-but-not-ncname. else { try { QName qname = new QName ( value , handler , true ) ; if ( objToReturn == null ) objToReturn = qname ; if ( qname . getPrefix ( ) == null ) { StringBuffer enumNamesList = getListOfEnums ( ) ; enumNamesList . append ( " <qname-but-not-ncname>" ) ; handleError ( handler , XSLTErrorResources . INVALID_ENUM , new Object [ ] { name , value , enumNamesList . toString ( ) } , null ) ; return null ; } } catch ( IllegalArgumentException ie ) { StringBuffer enumNamesList = getListOfEnums ( ) ; enumNamesList . append ( " <qname-but-not-ncname>" ) ; handleError ( handler , XSLTErrorResources . INVALID_ENUM , new Object [ ] { name , value , enumNamesList . toString ( ) } , ie ) ; return null ; } catch ( RuntimeException re ) { StringBuffer enumNamesList = getListOfEnums ( ) ; enumNamesList . append ( " <qname-but-not-ncname>" ) ; handleError ( handler , XSLTErrorResources . INVALID_ENUM , new Object [ ] { name , value , enumNamesList . toString ( ) } , re ) ; return null ; } } return objToReturn ; }
Process an attribute string of that is either an enumerated value or a qname - but - not - ncname . Returns an AVT if this attribute support AVT ; otherwise returns int or qname .