@@ -677,37 +677,39 @@ def parse_id(base_error_message,
677677 pubid = pubid_literal [ 1 ..-2 ] if pubid_literal # Remove quote
678678 system_literal = md [ 2 ]
679679 system = system_literal [ 1 ..-2 ] if system_literal # Remove quote
680- return [ "PUBLIC" , pubid , system ]
680+ [ "PUBLIC" , pubid , system ]
681681 elsif accept_public_id and ( md = @source . match ( Private ::PUBLIC_ID_PATTERN , true ) )
682682 pubid = system = nil
683683 pubid_literal = md [ 1 ]
684684 pubid = pubid_literal [ 1 ..-2 ] if pubid_literal # Remove quote
685- return [ "PUBLIC" , pubid , nil ]
686- end
687- if @source . match? ( /(?: \s +[^'"]| \s *[ \[ >])/um )
688- details = "public ID literal is missing"
685+ [ "PUBLIC" , pubid , nil ]
686+ elsif @source . match? ( /(?: \s +[^'"]| \s *[ \[ >])/um )
687+ message = " #{ base_error_message } : public ID literal is missing"
688+ raise REXML :: ParseException . new ( message , @source )
689689 elsif !@source . match? ( Private ::PUBLIC_ID_PATTERN )
690- details = "invalid public ID literal"
690+ message = "#{ base_error_message } : invalid public ID literal"
691+ raise REXML ::ParseException . new ( message , @source )
691692 else
692- details = "garbage after public ID literal"
693+ message = "#{ base_error_message } : garbage after public ID literal"
694+ raise REXML ::ParseException . new ( message , @source )
693695 end
694696 elsif @source . match? ( "SYSTEM" , true )
695697 if ( md = @source . match ( Private ::EXTERNAL_ID_SYSTEM_PATTERN , true ) )
696698 system = nil
697699 system_literal = md [ 1 ]
698700 system = system_literal [ 1 ..-2 ] if system_literal # Remove quote
699- return [ "SYSTEM" , nil , system ]
700- end
701- if @source . match? ( /(?: \s +[^'"]| \s *[ \[ >])/um )
702- details = "system literal is missing"
701+ [ "SYSTEM" , nil , system ]
702+ elsif @source . match? ( /(?: \s +[^'"]| \s *[ \[ >])/um )
703+ message = " #{ base_error_message } : system literal is missing"
704+ raise REXML :: ParseException . new ( message , @source )
703705 else
704- details = "invalid system literal"
706+ message = "#{ base_error_message } : invalid system literal"
707+ raise REXML ::ParseException . new ( message , @source )
705708 end
706709 else
707- details = "invalid ID type"
710+ message = "#{ base_error_message } : invalid ID type"
711+ raise REXML ::ParseException . new ( message , @source )
708712 end
709- message = "#{ base_error_message } : #{ details } "
710- raise REXML ::ParseException . new ( message , @source )
711713 end
712714
713715 def process_comment
0 commit comments