# Messages for message reporting
BadMessageKey = The error message corresponding to the message key can not be found.
FormatFailed = An internal error occurred while formatting the following message:\n  

# Messages for erroneous input
NoFallback = An 'include' with href ''{0}''failed, and no 'fallback' element was found.
MultipleFallbacks = The [children] of an 'include' element cannot contain more than one 'fallback' element.
FallbackParent = A 'fallback' element was found that did not have 'include' as the parent.
IncludeChild = Elements from namespace ''http://www.w3.org/2001/XInclude'', other than ''fallback'', are not allowed to be children of ''include'' elements.  However, ''{0}'' was found.
FallbackChild = Elements from namespace ''http://www.w3.org/2001/XInclude'', other than ''include'', are not allowed to be children of ''fallback'' elements.  However, ''{0}'' was found.
HrefMissing = The 'href' attribute of an 'include' element is missing.
RecursiveInclude = Recursive include detected.  Document ''{0}'' was already processed.
InvalidParseValue = Invalid value for ''parse'' attribute on ''include'' element: ''{0}''.
XMLParseError = Error attempting to parse XML file (href=''{0}''). Reason: {1}
XMLResourceError = Include operation failed, reverting to fallback. Resource error reading file as XML (href=''{0}''). Reason: {1}
TextResourceError = Include operation failed, reverting to fallback. Resource error reading file as text (href=''{0}''). Reason: {1}
NO_XPointerSchema = Schema for \"{0}\" is not supported by default. Define your own schema for {0}.See http://apache.org/xml/properties/xpointer-schema
NO_SubResourceIdentified = No Subresource is identified by the XPointer Processor for Pointer {0}.
NonDuplicateNotation = Multiple notations were used which had the name ''{0}'', but which were not determined to be duplicates.
NonDuplicateUnparsedEntity = Multiple unparsed entities were used which had the name ''{0}'', but which were not determined to be duplicates.
XpointerMissing = xpointer attribute must be present when href attribute is absent.
AcceptMalformed = Characters outside the range #x20 through #x7E are not allowed in the value of the 'accept' attribute of an 'include' element.
AcceptLanguageMalformed = Characters outside the range #x20 through #x7E are not allowed in the value of the 'accept-language' attribute of an 'include' element.
RootElementRequired = A well-formed document requires a root element.
MultipleRootElements = A well-formed document must not contain multiple root elements.
ContentIllegalAtTopLevel = The replacement of an 'include' element appearing as the document element in the top-level source infoset cannot contain characters.
UnexpandedEntityReferenceIllegal = The replacement of an 'include' element appearing as the document element in the top-level source infoset cannot contain unexpanded entity references.
HrefFragmentIdentifierIllegal = Fragment identifiers must not be used. The ''href'' attribute value ''{0}'' is not permitted.
HrefSyntacticallyInvalid = ''href'' attribute value ''{0}'' is syntactically invalid. After applying escaping rules the value is neither a syntactically correct URI or IRI.
XPointerStreamability = An xpointer was specified that points to a location in the source infoset. This location cannot be accessed due to the streaming nature of the processor.

XPointerResolutionUnsuccessful = XPointer resolution unsuccessful.

# Messages from erroneous set-up
IncompatibleNamespaceContext = The type of the NamespaceContext is incompatible with using XInclude; it must be an instance of XIncludeNamespaceSupport
ExpandedSystemId = Could not expand system id of included resource
