# This file stores localized messages for the Xerces XPointer implementation.
#
# The messages are arranged in key and value tuples in a ListResourceBundle.
#

# Messages for message reporting
BadMessageKey = Le message d'erreur correspondant \u00E0 la cl\u00E9 de message est introuvable.
FormatFailed = Une erreur interne est survenue lors de la mise en forme du message suivant :\n  

# XPointer Framework Error Messages
XPointerProcessingError = XPointerProcessingError : une erreur est survenue lors du traitement de l'expression XPointer.
InvalidXPointerToken = InvalidXPointerToken : l''expression XPointer contient le jeton non valide ''{0}''
InvalidXPointerExpression = InvalidXPointerExpression : l''expression XPointer ''{0}'' n''est pas valide.
MultipleShortHandPointers = MultipleShortHandPointers : l''expression XPointer ''{0}'' n''est pas valide. Elle contient plusieurs pointeurs ShortHand. 
SchemeDataNotFollowedByCloseParenthesis = SchemeDataNotFollowedByCloseParenthesis : l''expression XPointer ''{0}'' n''est pas valide. L''\u00E9l\u00E9ment SchemeData n''est pas suivi d''un caract\u00E8re '')''. 
SchemeUnsupported = SchemeUnsupported : le processus XPointer ''{0}'' n''est pas pris en charge.
InvalidShortHandPointer = InvalidShortHandPointer : le NCName du pointeur ShortHand ''{0}'' n''est pas valide.
UnbalancedParenthesisInXPointerExpression = UnbalancedParenthesisInXPointerExpression : l''expression XPointer ''{0}'' n''est pas valide. Le nombre de parenth\u00E8ses ouvrantes ''{1}'' est diff\u00E9rent du nombre de parenth\u00E8ses fermantes ''{2}''.
InvalidSchemeDataInXPointer = InvalidSchemeDataInXPointer : l''expression XPointer ''{0}'' contient un \u00E9l\u00E9ment SchemeData non valide.

# XPointer Element Scheme Error Messages
InvalidElementSchemeToken = InvalidElementSchemeToken : l''expression XPointer du processus element() contient le jeton non valide ''{0}''
InvalidElementSchemeXPointer = InvalidElementSchemeXPointer : l''expression XPointer de processus d''\u00E9l\u00E9ment ''{0}'' n''est pas valide.
XPointerElementSchemeProcessingError = XPointerElementSchemeProcessingError : une erreur est survenue lors du traitement de l'expression de processus element() XPointer.
InvalidNCNameInElementSchemeData = InvalidNCNameInElementSchemeData : le processus element() contient un pointeur ShortHand ''{0}'' avec un NCName non valide.
InvalidChildSequenceCharacter = InvalidChildSequenceCharacter : le processus element() contient un caract\u00E8re de s\u00E9quence enfant non valide ''{0}''. 
