protected void checkAndSendNotation(Notation not){
  if (isRootDocument()) {
    int index=fNotations.indexOf(not);
    if (index == -1) {
      XMLResourceIdentifier id=new XMLResourceIdentifierImpl(not.publicId,not.systemId,not.baseURI,not.expandedSystemId);
      addNotation(not.name,id,not.augmentations);
      if (fSendUEAndNotationEvents && fDTDHandler != null) {
        fDTDHandler.notationDecl(not.name,id,not.augmentations);
      }
    }
 else {
      Notation localNotation=(Notation)fNotations.get(index);
      if (!not.isDuplicate(localNotation)) {
        reportFatalError("NonDuplicateNotation",new Object[]{not.name});
      }
    }
  }
 else {
    fParentXIncludeHandler.checkAndSendNotation(not);
  }
}

protected void checkAndSendNotation ( Notation not ) { if ( isRootDocument ( ) ) { int index = fNotations . indexOf ( not ) ; if ( index == - 1 ) { XMLResourceIdentifier id = new XMLResourceIdentifierImpl ( not . publicId , not . systemId , not . baseURI , not . expandedSystemId ) ; addNotation ( not . name , id , not . augmentations ) ; if ( fSendUEAndNotationEvents && fDTDHandler != null ) { fDTDHandler . notationDecl ( not . name , id , not . augmentations ) ; } } else { Notation localNotation = ( Notation ) fNotations . get ( index ) ; if ( ! not . isDuplicate ( localNotation ) ) { reportFatalError ( "NonDuplicateNotation" , new Object [ ] { not . name } ) ; } } } else { fParentXIncludeHandler . checkAndSendNotation ( not ) ; } }
the purpose of this method is to check if a notation conflicts with a previously declared notation in the current pipeline stack . if there is no conflict , the notation is sent by the root pipeline .
