Buggy code:
class XSDAbstractIDConstraintTraverser extends XSDAbstractTraverser { public XSDAbstractIDConstraintTraverser ( XSDHandler handler , XSAttributeChecker gAttrCheck ) { } void traverseIdentityConstraint ( IdentityConstraint ic , Element icElem , XSDocumentInfo schemaDoc , Object [ ] icElemAttrs ) { Element sElem = DOMUtil . getFirstChildElement ( icElem ) ; if ( sElem == null ) { reportSchemaError ( "s4s-elt-must-match.2" , new Object [ ] { "identity<seq2seq4repair_space>constraint" , "(annotation?,<seq2seq4repair_space>selector,<seq2seq4repair_space>field+)" } , icElem ) ; return ; } if ( DOMUtil . getLocalName ( sElem ) . equals ( ELT_ANNOTATION ) ) { ic . addAnnotation ( traverseAnnotationDecl ( sElem , icElemAttrs , false , schemaDoc ) ) ; sElem = DOMUtil . getNextSiblingElement ( sElem ) ; if ( sElem == null ) { reportSchemaError ( "s4s-elt-must-match.2" , new Object [ ] { "identity<seq2seq4repair_space>constraint" , "(annotation?,<seq2seq4repair_space>selector,<seq2seq4repair_space>field+)" } , icElem ) ; return ; } } else { String text = DOMUtil . getSyntheticAnnotation ( icElem ) ; if ( text != null ) { ic . addAnnotation ( traverseSyntheticAnnotation ( icElem , text , icElemAttrs , false , schemaDoc ) ) ; } } Object [ ] attrValues = fAttrChecker . checkAttributes ( sElem , false , schemaDoc ) ; if ( ! ( DOMUtil . getLocalName ( sElem ) . equals ( ELT_SELECTOR ) ) ) { reportSchemaError ( "s4s-elt-must-match.1" , new Object [ ] { "identity<seq2seq4repair_space>constraint" , "(annotation?,<seq2seq4repair_space>selector,<seq2seq4repair_space>field+)" , SchemaSymbols . ELT_SELECTOR } , sElem ) ; } Element selChild = DOMUtil . getFirstChildElement ( sElem ) ; if ( selChild != null ) { if ( DOMUtil . getLocalName ( selChild ) . equals ( ELT_ANNOTATION ) ) { ic . addAnnotation ( traverseAnnotationDecl ( selChild , attrValues , false , schemaDoc ) ) ; selChild = DOMUtil . getNextSiblingElement ( selChild ) ; } else { reportSchemaError ( "s4s-elt-must-match.1" , new Object [ ] { SchemaSymbols . ELT_SELECTOR , "(annotation?)" , DOMUtil . getLocalName ( selChild ) } , selChild ) ; } if ( selChild != null ) { reportSchemaError ( "s4s-elt-must-match.1" , new Object [ ] { SchemaSymbols . ELT_SELECTOR , "(annotation?)" , DOMUtil . getLocalName ( selChild ) } , selChild ) ; } } else { String text = DOMUtil . getSyntheticAnnotation ( sElem ) ; if ( text != null ) { ic . addAnnotation ( traverseSyntheticAnnotation ( icElem , text , attrValues , false , schemaDoc ) ) ; } } String sText = ( ( String ) ( attrValues [ XSAttributeChecker . ATTIDX_XPATH ] ) ) ; if ( sText == null ) { reportSchemaError ( "s4s-att-must-appear" , new Object [ ] { SchemaSymbols . ELT_SELECTOR , SchemaSymbols . ATT_XPATH } , sElem ) ; return ; } sText = XMLChar . trim ( sText ) ; Selector . XPath sXpath = null ; try { sXpath = new Selector . XPath ( sText , fSymbolTable , schemaDoc . fNamespaceSupport ) ; Selector selector = new Selector ( sXpath , ic ) ; ic . setSelector ( selector ) ; } catch ( XPathException e ) { reportSchemaError ( e . getKey ( ) , new Object [ ] { sText } , sElem ) ; fAttrChecker . returnAttrArray ( attrValues , schemaDoc ) ; return ; } fAttrChecker . returnAttrArray ( attrValues , schemaDoc ) ; Element fElem = DOMUtil . getNextSiblingElement ( sElem ) ; if ( fElem == null ) { reportSchemaError ( "s4s-elt-must-match.2" , new Object [ ] { "identity<seq2seq4repair_space>constraint" , "(annotation?,<seq2seq4repair_space>selector,<seq2seq4repair_space>field+)" } , sElem ) ; } while ( fElem != null ) { attrValues = fAttrChecker . checkAttributes ( fElem , false , schemaDoc ) ; if ( ! ( DOMUtil . getLocalName ( fElem ) . equals ( ELT_FIELD ) ) ) reportSchemaError ( "s4s-elt-must-match.1" , new Object [ ] { "identity<seq2seq4repair_space>constraint" , "(annotation?,<seq2seq4repair_space>selector,<seq2seq4repair_space>field+)" , SchemaSymbols . ELT_FIELD } , fElem ) ; Element fieldChild = DOMUtil . getFirstChildElement ( fElem ) ; if ( fieldChild != null ) { if ( DOMUtil . getLocalName ( fieldChild ) . equals ( ELT_ANNOTATION ) ) { ic . addAnnotation ( traverseAnnotationDecl ( fieldChild , attrValues , false , schemaDoc ) ) ; fieldChild = DOMUtil . getNextSiblingElement ( fieldChild ) ; } } if ( fieldChild != null ) { reportSchemaError ( "s4s-elt-must-match.1" , new Object [ ] { SchemaSymbols . ELT_FIELD , "(annotation?)" , DOMUtil . getLocalName ( fieldChild ) } , fieldChild ) ; } else { String text = DOMUtil . getSyntheticAnnotation ( fElem ) ; if ( text != null ) { ic . addAnnotation ( traverseSyntheticAnnotation ( icElem , text , attrValues , false , schemaDoc ) ) ; } } String fText = ( ( String ) ( attrValues [ XSAttributeChecker . ATTIDX_XPATH ] ) ) ; if ( fText == null ) { reportSchemaError ( "s4s-att-must-appear" , new Object [ ] { SchemaSymbols . ELT_FIELD , SchemaSymbols . ATT_XPATH } , fElem ) ; return ; } <START_BUG> fText = fText . trim ( ) ; <END_BUG> try { Field . XPath fXpath = new Field . XPath ( fText , fSymbolTable , schemaDoc . fNamespaceSupport ) ; Field field = new Field ( fXpath , ic ) ; ic . addField ( field ) ; } catch ( XPathException e ) { reportSchemaError ( e . getKey ( ) , new Object [ ] { fText } , fElem ) ; fAttrChecker . returnAttrArray ( attrValues , schemaDoc ) ; return ; } fElem = DOMUtil . getNextSiblingElement ( fElem ) ; fAttrChecker . returnAttrArray ( attrValues , schemaDoc ) ; } } }

Fix:
fText = XMLChar . trim ( fText ) ;