# This file contains error and warning messages related to XML
# The messages are arranged in key and value tuples in a ListResourceBundle.
#
# @version

        BadMessageKey = The error message corresponding to the message key can not be found.
        FormatFailed = An internal error occurred while formatting the following message:\n  
        
# Document messages
        PrematureEOF=Premature end of file.
# 2.1 Well-Formed XML Documents
        RootElementRequired = The root element is required in a well-formed document.
# 2.2 Characters

        InvalidCharInCDSect = An invalid XML character (Unicode: 0x{0}) was found in the CDATA section.
        InvalidCharInContent = An invalid XML character (Unicode: 0x{0}) was found in the element content of the document.
        TwoColonsInQName = An invalid second ':' was found in the element type or attribute name.
        ColonNotLegalWithNS = A colon is not allowed in the name ''{0}'' when namespaces are enabled.
        InvalidCharInMisc = An invalid XML character (Unicode: 0x{0}) was found in markup after the end of the element content.
        InvalidCharInProlog = An invalid XML character (Unicode: 0x{0}) was found in the prolog of the document.
        InvalidCharInXMLDecl = An invalid XML character (Unicode: 0x{0}) was found in the XML declaration.
# 2.4 Character Data and Markup
        CDEndInContent = The character sequence \"]]>\" must not appear in content unless used to mark the end of a CDATA section.
# 2.7 CDATA Sections
        CDSectUnterminated = The CDATA section must end with \"]]>\".
# 2.8 Prolog and Document Type Declaration
        XMLDeclMustBeFirst = The XML declaration may only appear at the very beginning of the document.
        EqRequiredInXMLDecl = The '' = '' character must follow \"{0}\" in the XML declaration.
        QuoteRequiredInXMLDecl = The value following \"{0}\" in the XML declaration must be a quoted string.
        XMLDeclUnterminated = The XML declaration must end with \"?>\".
        VersionInfoRequired = The version is required in the XML declaration.
        SpaceRequiredBeforeVersionInXMLDecl = White space is required before the version pseudo attribute in the XML declaration.
        SpaceRequiredBeforeEncodingInXMLDecl = White space is required before the encoding pseudo attribute in the XML declaration.
        SpaceRequiredBeforeStandalone = White space is required before the encoding pseudo attribute in the XML declaration.
        MarkupNotRecognizedInProlog = The markup in the document preceding the root element must be well-formed.
        MarkupNotRecognizedInMisc = The markup in the document following the root element must be well-formed.
        AlreadySeenDoctype = Already seen doctype.
        DoctypeNotAllowed = DOCTYPE is disallowed when the feature "http://apache.org/xml/features/disallow-doctype-decl" set to true.
        ContentIllegalInProlog = Content is not allowed in prolog.
        ReferenceIllegalInProlog = Reference is not allowed in prolog.
# Trailing Misc
        ContentIllegalInTrailingMisc=Content is not allowed in trailing section.
        ReferenceIllegalInTrailingMisc=Reference is not allowed in trailing section.
        
# 2.9 Standalone Document Declaration
        SDDeclInvalid = The standalone document declaration value must be \"yes\" or \"no\", not \"{0}\".
        SDDeclNameInvalid = The standalone name in XML declaration may be misspelled.
# 2.12 Language Identification
        XMLLangInvalid = The xml:lang attribute value \"{0}\" is an invalid language identifier.
# 3. Logical Structures
        ETagRequired = The element type \"{0}\" must be terminated by the matching end-tag \"</{0}>\".
# 3.1 Start-Tags, End-Tags, and Empty-Element Tags
        ElementUnterminated = Element type \"{0}\" must be followed by either attribute specifications, \">\" or \"/>\".
        EqRequiredInAttribute = Attribute name \"{1}\" associated with an element type \"{0}\" must be followed by the '' = '' character.
        OpenQuoteExpected = Open quote is expected for attribute \"{1}\" associated with an  element type  \"{0}\".
        CloseQuoteExpected = Close quote is expected for attribute \"{1}\" associated with an element type \"{0}\".
        AttributeNotUnique = Attribute \"{1}\" was already specified for element \"{0}\".
        AttributeNSNotUnique = Attribute \"{1}\" bound to namespace \"{2}\" was already specified for element \"{0}\".
        ETagUnterminated = The end-tag for element type \"{0}\" must end with a ''>'' delimiter.
        MarkupNotRecognizedInContent = The content of elements must consist of well-formed character data or markup.
        DoctypeIllegalInContent = A DOCTYPE is not allowed in content.
# 4.1 Character and Entity References
        ReferenceUnterminated = The reference must be terminated by a ';' delimiter.
# 4.3.2 Well-Formed Parsed Entities
        ReferenceNotInOneEntity = The reference must be entirely contained within the same parsed entity.
        ElementEntityMismatch = The element \"{0}\" must start and end within the same entity.
        MarkupEntityMismatch=XML document structures must start and end within the same entity.
        
# Messages common to Document and DTD
# 2.2 Characters
        InvalidCharInAttValue = An invalid XML character (Unicode: 0x{2}) was found in the value of attribute \"{1}\" and element is \"{0}\".
        InvalidCharInComment = An invalid XML character (Unicode: 0x{0}) was found in the comment.
        InvalidCharInPI = An invalid XML character (Unicode: 0x{0}) was found in the processing instruction.
        InvalidCharInInternalSubset = An invalid XML character (Unicode: 0x{0}) was found in the internal subset of the DTD.
        InvalidCharInTextDecl = An invalid XML character (Unicode: 0x{0}) was found in the text declaration.
# 2.3 Common Syntactic Constructs
        QuoteRequiredInAttValue = The value of attribute \"{1}\" must begin with either a single or double quote character.
        LessthanInAttValue = The value of attribute \"{1}\" associated with an element type \"{0}\" must not contain the ''<'' character.
        AttributeValueUnterminated = The value for attribute \"{1}\" must end with the matching quote character.
# 2.5 Comments
        InvalidCommentStart = Comment must start with \"<!--\".
        DashDashInComment = The string \"--\" is not permitted within comments.
        CommentUnterminated = The comment must end with \"-->\".
        COMMENT_NOT_IN_ONE_ENTITY = The comment is not enclosed xin the same entity.
# 2.6 Processing Instructions
        PITargetRequired = The processing instruction must begin with the name of the target.
        SpaceRequiredInPI = White space is required between the processing instruction target and data.
        PIUnterminated = The processing instruction must end with \"?>\".
        ReservedPITarget = The processing instruction target matching \"[xX][mM][lL]\" is not allowed.
        PI_NOT_IN_ONE_ENTITY = The processing instruction is not enclosed in the same entity.
# 2.8 Prolog and Document Type Declaration
        VersionInfoInvalid = Invalid version \"{0}\".
        VersionNotSupported = XML version \"{0}\" is not supported, only XML 1.0 is supported.
        VersionNotSupported11 = XML version \"{0}\" is not supported, only XML 1.0 and XML 1.1 are supported.
        VersionMismatch= An entity cannot include another entity of a later version.
# 4.1 Character and Entity References
        DigitRequiredInCharRef = A decimal representation must immediately follow the \"&#\" in a character reference.
        HexdigitRequiredInCharRef = A hexadecimal representation must immediately follow the \"&#x\" in a character reference.
        SemicolonRequiredInCharRef = The character reference must end with the ';' delimiter.
        InvalidCharRef = Character reference \"&#{0}\" is an invalid XML character.
        NameRequiredInReference = The entity name must immediately follow the '&' in the entity reference.
        SemicolonRequiredInReference = The reference to entity \"{0}\" must end with the '';'' delimiter.
# 4.3.1 The Text Declaration
        TextDeclMustBeFirst = The text declaration may only appear at the very beginning of the external parsed entity.
        EqRequiredInTextDecl = The '' = '' character must follow \"{0}\" in the text declaration.
        QuoteRequiredInTextDecl = The value following \"{0}\" in the text declaration must be a quoted string.
        CloseQuoteMissingInTextDecl = closing quote in the value following \"{0}\" in the text declaration is missing.
        SpaceRequiredBeforeVersionInTextDecl = White space is required before the version pseudo attribute in the text declaration.
        SpaceRequiredBeforeEncodingInTextDecl = White space is required before the encoding pseudo attribute in the text declaration.
        TextDeclUnterminated = The text declaration must end with \"?>\".
        EncodingDeclRequired = The encoding declaration is required in the text declaration.
        NoMorePseudoAttributes = No more pseudo attributes are allowed.
        MorePseudoAttributes = More pseudo attributes are expected.
        PseudoAttrNameExpected = A pseudo attribute name is expected. 
# 4.3.2 Well-Formed Parsed Entities
        CommentNotInOneEntity = The comment must be entirely contained within the same parsed entity.
        PINotInOneEntity = The processing instruction must be entirely contained within the same parsed entity.
# 4.3.3 Character Encoding in Entities
        EncodingDeclInvalid = Invalid encoding name \"{0}\".
        EncodingByteOrderUnsupported = Given byte order for encoding \"{0}\" is not supported.
        InvalidByte = Invalid byte {0} of {1}-byte UTF-8 sequence.
        ExpectedByte = Expected byte {0} of {1}-byte UTF-8 sequence.  
        InvalidHighSurrogate = High surrogate bits in UTF-8 sequence must not exceed 0x10 but found 0x{0}.
        OperationNotSupported = Operation \"{0}\" not supported by {1} reader.
        InvalidASCII = Byte \"{0}\" is not a member of the (7-bit) ASCII character set.
        CharConversionFailure = An entity determined to be in a certain encoding must not contain sequences illegal in that encoding.
        
# DTD Messages
# 2.2 Characters
        InvalidCharInEntityValue = An invalid XML character (Unicode: 0x{0}) was found in the literal entity value.
        InvalidCharInExternalSubset = An invalid XML character (Unicode: 0x{0}) was found in the external subset of the DTD.
        InvalidCharInIgnoreSect = An invalid XML character (Unicode: 0x{0}) was found in the excluded conditional section.
        InvalidCharInPublicID = An invalid XML character (Unicode: 0x{0}) was found in the public identifier.
        InvalidCharInSystemID = An invalid XML character (Unicode: 0x{0}) was found in the system identifier.
# 2.3 Common Syntactic Constructs
        SpaceRequiredAfterSYSTEM = White space is required after keyword SYSTEM in DOCTYPE decl.
        QuoteRequiredInSystemID = The system identifier must begin with either a single or double quote character.
        SystemIDUnterminated = The system identifier must end with the matching quote character.
        SpaceRequiredAfterPUBLIC = White spaces are required after keyword PUBLIC in DOCTYPE decl.
        QuoteRequiredInPublicID = The public identifier must begin with either a single or double quote character.
        PublicIDUnterminated = The public identifier must end with the matching quote character.
        PubidCharIllegal = The character (Unicode: 0x{0}) is not permitted in the public identifier.
        SpaceRequiredBetweenPublicAndSystem = White spaces are required between publicId and systemId.
# 2.8 Prolog and Document Type Declaration
        MSG_SPACE_REQUIRED_BEFORE_ROOT_ELEMENT_TYPE_IN_DOCTYPEDECL = White space is required after \"<!DOCTYPE\" in the document type declaration.
        MSG_ROOT_ELEMENT_TYPE_REQUIRED = The root element type must appear after \"<!DOCTYPE\" in the document type declaration.
        DoctypedeclUnterminated = The document type declaration for root element type \"{0}\" must end with ''>''.
        PEReferenceWithinMarkup = The parameter entity reference \"%{0};\" cannot occur within markup in the internal subset of the DTD.
        MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = The markup declarations contained or pointed to by the document type declaration must be well-formed.
# 2.10 White Space Handling
        MSG_XML_SPACE_DECLARATION_ILLEGAL = The attribute declaration for \"xml:space\" must be given as an enumerated type whose only possible values are \"default\" and \"preserve\".
# 3.2 Element Type Declarations
        MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = White space is required after \"<!ELEMENT\" in the element type declaration.
        MSG_ELEMENT_TYPE_REQUIRED_IN_ELEMENTDECL = The element type is required in the element type declaration.
        MSG_SPACE_REQUIRED_BEFORE_CONTENTSPEC_IN_ELEMENTDECL = White space is required after the element type \"{0}\" in the element type declaration.
        MSG_CONTENTSPEC_REQUIRED_IN_ELEMENTDECL = The constraint is required after the element type \"{0}\" in the element type declaration.
        ElementDeclUnterminated = The declaration for element type \"{0}\" must end with ''>''.
# 3.2.1 Element Content
        MSG_OPEN_PAREN_OR_ELEMENT_TYPE_REQUIRED_IN_CHILDREN = A ''('' character or an element type is required in the declaration of element type \"{0}\".
        MSG_CLOSE_PAREN_REQUIRED_IN_CHILDREN = A '')'' is required in the declaration of element type \"{0}\".
# 3.2.2 Mixed Content
        MSG_ELEMENT_TYPE_REQUIRED_IN_MIXED_CONTENT = An element type is required in the declaration of element type \"{0}\".
        MSG_CLOSE_PAREN_REQUIRED_IN_MIXED = A '')'' is required in the declaration of element type \"{0}\".
        MixedContentUnterminated = The mixed content model \"{0}\" must end with \")*\" when the types of child elements are constrained.
# 3.3 Attribute-List Declarations
        MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ATTLISTDECL = White space is required after \"<!ATTLIST\" in the attribute-list declaration.
        MSG_ELEMENT_TYPE_REQUIRED_IN_ATTLISTDECL = The element type is required in the attribute-list declaration.
        MSG_SPACE_REQUIRED_BEFORE_ATTRIBUTE_NAME_IN_ATTDEF = White space is required before the attribute name in the attribute-list declaration for element \"{0}\".
        AttNameRequiredInAttDef = The attribute name must be specified in the attribute-list declaration for element \"{0}\".
        MSG_SPACE_REQUIRED_BEFORE_ATTTYPE_IN_ATTDEF = White space is required before the attribute type in the declaration of attribute \"{1}\" for element \"{0}\".
        AttTypeRequiredInAttDef = The attribute type is required in the declaration of attribute \"{1}\" for element \"{0}\".
        MSG_SPACE_REQUIRED_BEFORE_DEFAULTDECL_IN_ATTDEF = White space is required before the attribute default in the declaration of attribute \"{1}\" for element \"{0}\".
        MSG_DUPLICATE_ATTRIBUTE_DEFINITION = More than one attribute definition is provided for the same attribute \"{1}\" of a given element \"{0}\".
# 3.3.1 Attribute Types
        MSG_SPACE_REQUIRED_AFTER_NOTATION_IN_NOTATIONTYPE = White space must appear after \"NOTATION\" in the \"{1}\" attribute declaration.
        MSG_OPEN_PAREN_REQUIRED_IN_NOTATIONTYPE = The ''('' character must follow \"NOTATION\" in the \"{1}\" attribute declaration.
        MSG_NAME_REQUIRED_IN_NOTATIONTYPE = The notation name is required in the notation type list for the \"{1}\" attribute declaration.
        NotationTypeUnterminated = The notation type list must end with '')'' in the \"{1}\" attribute declaration.
        MSG_NMTOKEN_REQUIRED_IN_ENUMERATION = The name token is required in the enumerated type list for the \"{1}\" attribute declaration.
        EnumerationUnterminated = The enumerated type list must end with '')'' in the \"{1}\" attribute declaration.
        MSG_DISTINCT_TOKENS_IN_ENUMERATION = The enumeration value \"{1}\" was specified more than once in the declaration of attribute \"{2}\" for element \"{0}\". The NMTOKENS in a single Enumeration attribute declaration must all be distinct.
        MSG_DISTINCT_NOTATION_IN_ENUMERATION = The enumeration value \"{1}\" was specified more than once in the declaration of attribute \"{2}\" for element \"{0}\". The NOTATION names in a single NotationType attribute declaration must all be distinct.
# 3.3.2 Attribute Defaults
        MSG_SPACE_REQUIRED_AFTER_FIXED_IN_DEFAULTDECL = White space must appear after \"FIXED\" in the \"{1}\" attribute declaration.
# 3.4 Conditional Sections
        IncludeSectUnterminated = The included conditional section must end with \"]]>\".
        IgnoreSectUnterminated = The excluded conditional section must end with \"]]>\".
# 4.1 Character and Entity References
        NameRequiredInPEReference = The entity name must immediately follow the '%' in the parameter entity reference.
        SemicolonRequiredInPEReference = The parameter entity reference \"%{0};\" must end with the '';'' delimiter.
# 4.2 Entity Declarations
        MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_ENTITYDECL = White space is required after \"<!ENTITY\" in the entity declaration.
        MSG_SPACE_REQUIRED_BEFORE_PERCENT_IN_PEDECL = White space is required between \"<!ENTITY\" and the '%' character in the parameter entity declaration.
        MSG_SPACE_REQUIRED_BEFORE_ENTITY_NAME_IN_PEDECL = White space is required between the '%' and the entity name in the parameter entity declaration.
        MSG_ENTITY_NAME_REQUIRED_IN_ENTITYDECL = The name of the entity is required in the entity declaration.
        MSG_SPACE_REQUIRED_AFTER_ENTITY_NAME_IN_ENTITYDECL = White space is required between the entity name \"{0}\" and the definition in the entity declaration.
        MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_UNPARSED_ENTITYDECL = White space is required between \"NDATA\" and the notation name in the declaration for the entity \"{0}\".
        MSG_SPACE_REQUIRED_BEFORE_NDATA_IN_UNPARSED_ENTITYDECL = White space is required before \"NDATA\" in the declaration for the entity \"{0}\".
        MSG_NOTATION_NAME_REQUIRED_FOR_UNPARSED_ENTITYDECL = The notation name is required after \"NDATA\" in the declaration for the entity \"{0}\".
        EntityDeclUnterminated = The declaration for the entity \"{0}\" must end with ''>''.
	MSG_DUPLICATE_ENTITY_DEFINITION = Entity \"{0}\" is declared more than once.        
# 4.2.2 External Entities
        ExternalIDRequired = The external entity declaration must begin with either \"SYSTEM\" or \"PUBLIC\".
        MSG_SPACE_REQUIRED_BEFORE_PUBIDLITERAL_IN_EXTERNALID = White space is required between \"PUBLIC\" and the public identifier.
        MSG_SPACE_REQUIRED_AFTER_PUBIDLITERAL_IN_EXTERNALID = White space is required between the public identifier and the system identifier.
        MSG_SPACE_REQUIRED_BEFORE_SYSTEMLITERAL_IN_EXTERNALID = White space is required between \"SYSTEM\" and the system identifier.
        MSG_URI_FRAGMENT_IN_SYSTEMID = The fragment identifier should not be specified as part of the system identifier \"{0}\".
# 4.7 Notation Declarations
        MSG_SPACE_REQUIRED_BEFORE_NOTATION_NAME_IN_NOTATIONDECL = White space is required after \"<!NOTATION\" in the notation declaration.
        MSG_NOTATION_NAME_REQUIRED_IN_NOTATIONDECL = The name of the notation is required in the notation declaration.
        MSG_SPACE_REQUIRED_AFTER_NOTATION_NAME_IN_NOTATIONDECL = White space is required after the notation name \"{0}\" in the notation declaration.
        ExternalIDorPublicIDRequired = The declaration for the notation \"{0}\" must include a system or public identifier.
        NotationDeclUnterminated = The declaration for the notation \"{0}\" must end with ''>''.
        
# Validation messages
        DuplicateTypeInMixedContent = The element type \"{1}\" was already specified in the content model of the element decl \"{0}\".
        ENTITIESInvalid = Attribute value \"{1}\" of type ENTITIES must be the names of one or more unparsed entities.
        ENTITYInvalid = Attribute value \"{1}\" of type ENTITY must be the name of an unparsed entity.
        IDDefaultTypeInvalid = The ID attribute \"{0}\" must have a declared default of \"#IMPLIED\" or \"#REQUIRED\".
        IDInvalid = Attribute value \"{0}\" of type ID must be a name.
        IDInvalidWithNamespaces = Attribute value \"{0}\" of type ID must be an NCName when namespaces are enabled.
        IDNotUnique = Attribute value \"{0}\" of type ID must be unique within the document.
        IDREFInvalid = Attribute value \"{0}\" of type IDREF must be a name.
        IDREFInvalidWithNamespaces = Attribute value \"{0}\" of type IDREF must be an NCName when namespaces are enabled.
        IDREFSInvalid = Attribute value \"{0}\" of type IDREFS must be one or more names.
        ILL_FORMED_PARAMETER_ENTITY_WHEN_USED_IN_DECL = The replacement text of parameter entity \"{0}\" must include properly nested declarations when the entity reference is used as a complete declaration.
        ImproperDeclarationNesting = The replacement text of parameter entity \"{0}\" must include properly nested declarations.
        ImproperGroupNesting = The replacement text of parameter entity \"{0}\" must include properly nested pairs of parentheses.
        INVALID_PE_IN_CONDITIONAL = The replacement text of parameter entity \"{0}\" must include the entire conditional section or just INCLUDE or IGNORE.
        MSG_ATTRIBUTE_NOT_DECLARED = Attribute \"{1}\" must be declared for element type \"{0}\".
        MSG_ATTRIBUTE_VALUE_NOT_IN_LIST = Attribute \"{0}\" with value \"{1}\" must have a value from the list \"{2}\".
        MSG_ATTVALUE_CHANGED_DURING_NORMALIZATION_WHEN_STANDALONE = The value \"{1}\" of attribute \"{0}\" must not be changed by normalization (to \"{2}\") in a standalone document.
        MSG_CONTENT_INCOMPLETE = The content of element type \"{0}\" is incomplete, it must match \"{1}\".
        MSG_CONTENT_INVALID = The content of element type \"{0}\" must match \"{1}\".
        MSG_CONTENT_INVALID_SPECIFIED = The content of element type \"{0}\" must match \"{1}\".  Children of type \"{2}\" are not allowed.
        MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = Attribute \"{1}\" for element type \"{0}\" has a default value and must be specified in a standalone document.
        MSG_DUPLICATE_ATTDEF = Attribute \"{1}\" is already declared for element type \"{0}\".
        MSG_ELEMENT_ALREADY_DECLARED = Element type \"{0}\" must not be declared more than once.
        MSG_ELEMENT_NOT_DECLARED = Element type \"{0}\" must be declared.
        MSG_GRAMMAR_NOT_FOUND = Document is invalid: no grammar found.
        MSG_ELEMENT_WITH_ID_REQUIRED = An element with the identifier \"{0}\" must appear in the document.
        MSG_EXTERNAL_ENTITY_NOT_PERMITTED = The reference to external entity \"{0}\" is not permitted in a standalone document.
        MSG_FIXED_ATTVALUE_INVALID = Attribute \"{1}\" with value \"{2}\" must have a value of \"{3}\".
        MSG_MORE_THAN_ONE_ID_ATTRIBUTE = Element type \"{0}\" already has attribute \"{1}\" of type ID, a second attribute \"{2}\" of type ID is not permitted.
        MSG_MORE_THAN_ONE_NOTATION_ATTRIBUTE = Element type \"{0}\" already has attribute \"{1}\" of type NOTATION, a second attribute \"{2}\" of type NOTATION is not permitted.
        MSG_NOTATION_NOT_DECLARED_FOR_NOTATIONTYPE_ATTRIBUTE = The notation \"{1}\" must be declared when referenced in the notation type list for attribute \"{0}\".
        MSG_NOTATION_NOT_DECLARED_FOR_UNPARSED_ENTITYDECL = The notation \"{1}\" must be declared when referenced in the unparsed entity declaration for \"{0}\".
        MSG_REFERENCE_TO_EXTERNALLY_DECLARED_ENTITY_WHEN_STANDALONE = The reference to entity \"{0}\" declared in an external parsed entity is not permitted in a standalone document.
        MSG_REQUIRED_ATTRIBUTE_NOT_SPECIFIED = Attribute \"{1}\" is required and must be specified for element type \"{0}\".
        MSG_WHITE_SPACE_IN_ELEMENT_CONTENT_WHEN_STANDALONE = White space must not occur between elements declared in an external parsed entity with element content in a standalone document.
        NMTOKENInvalid = Attribute value \"{0}\" of type NMTOKEN must be a name token.
        NMTOKENSInvalid = Attribute value \"{0}\" of type NMTOKENS must be one or more name tokens.
        NoNotationOnEmptyElement = Element type \"{0}\" which was declared EMPTY cannot declare attribute \"{1}\" of type NOTATION.
        RootElementTypeMustMatchDoctypedecl = Document root element \"{1}\", must match DOCTYPE root \"{0}\".
        UndeclaredElementInContentSpec = The content model of element \"{0}\" refers to the undeclared element \"{1}\".
        UniqueNotationName = The declaration for the notation \"{0}\" is not unique. A given Name must not be declared in more than one notation declaration.
        ENTITYFailedInitializeGrammar =  ENTITYDatatype Validator: Failed Need to call initialize method with a valid Grammar reference. 	
        ENTITYNotUnparsed = ENTITY \"{0}\" is not unparsed.
        ENTITYNotValid = ENTITY \"{0}\" is not valid.
        EmptyList = Value of type ENTITIES, IDREFS, and NMTOKENS cannot be empty list.

# Entity related messages
# 3.1 Start-Tags, End-Tags, and Empty-Element Tags
        ReferenceToExternalEntity = The external entity reference \"&{0};\" is not permitted in an attribute value.
        AccessExternalDTD = External DTD: Failed to read external DTD ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.
        AccessExternalEntity = External Entity: Failed to read external document ''{0}'', because ''{1}'' access is not allowed due to restriction set by the accessExternalDTD property.

# 4.1 Character and Entity References
        EntityNotDeclared = The entity \"{0}\" was referenced, but not declared.
        ReferenceToUnparsedEntity = The unparsed entity reference \"&{0};\" is not permitted.
        RecursiveReference = Recursive entity reference \"{0}\". (Reference path: {1}),
        RecursiveGeneralReference = Recursive general entity reference \"&{0};\". (Reference path: {1}),
        RecursivePEReference = Recursive parameter entity reference \"%{0};\". (Reference path: {1}),
# 4.3.3 Character Encoding in Entities
        EncodingNotSupported = The encoding \"{0}\" is not supported.
        EncodingRequired = A parsed entity not encoded in either UTF-8 or UTF-16 must contain an encoding declaration.
        
# Namespaces support
# 4. Using Qualified Names
        IllegalQName = Element or attribute do not match QName production: QName::=(NCName':')?NCName. 
        ElementXMLNSPrefix = Element \"{0}\" cannot have \"xmlns\" as its prefix.
        ElementPrefixUnbound = The prefix \"{0}\" for element \"{1}\" is not bound.
        AttributePrefixUnbound = The prefix \"{2}\" for attribute \"{1}\" associated with an element type \"{0}\" is not bound.
        EmptyPrefixedAttName = The value of the attribute \"{0}\" is invalid. Prefixed namespace bindings may not be empty.
        PrefixDeclared = The namespace prefix \"{0}\" was not declared.
        CantBindXMLNS = The prefix "xmlns" cannot be bound to any namespace explicitly; neither can the namespace for "xmlns" be bound to any prefix explicitly.
        CantBindXML = The prefix "xml" cannot be bound to any namespace other than its usual namespace; neither can the namespace for "xml" be bound to any prefix other than "xml".
        MSG_ATT_DEFAULT_INVALID = The defaultValue \"{1}\" of attribute \"{0}\" is not legal as for the lexical constraints of this attribute type.

# REVISIT: These need messages
        MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID=MSG_SPACE_REQUIRED_AFTER_SYSTEMLITERAL_IN_EXTERNALID
        OpenQuoteMissingInDecl=OpenQuoteMissingInDecl
        InvalidCharInLiteral=InvalidCharInLiteral


# Implementation limits
        EntityExpansionLimit=JAXP00010001: The parser has encountered more than \"{0}\" entity expansions in this document; this is the limit imposed by the JDK.
        ElementAttributeLimit=JAXP00010002:  Element \"{0}\" has more than \"{1}\" attributes, \"{1}\" is the limit imposed by the JDK.
        MaxEntitySizeLimit=JAXP00010003: The length of entity \"{0}\" is \"{1}\" that exceeds the \"{2}\" limit set by \"{3}\".
        TotalEntitySizeLimit=JAXP00010004: The accumulated size of entities is \"{0}\" that exceeded the \"{1}\" limit set by \"{2}\".
        MaxXMLNameLimit=JAXP00010005: The length of entity \"{0}\" is \"{1}\" that exceeds the \"{2}\" limit set by \"{3}\".
        MaxElementDepthLimit=JAXP00010006: The element \"{0}\" has a depth of \"{1}\" that exceeds the limit \"{2}\" set by \"{3}\".
        EntityReplacementLimit=JAXP00010007: The total number of nodes in entity references is \"{0}\" that is over the limit \"{1}\" set by \"{2}\".

