Package org.rumbledb.runtime.xml
Class NamespaceBindingUtils
java.lang.Object
org.rumbledb.runtime.xml.NamespaceBindingUtils
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceResolves a namespace prefix (including""for the default element/type namespace) to a URI, ornullif unbound.static enum -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic StringcollapseQNameLexical(String lexical) Applies XSD whiteSpace facet COLLAPSE (as for xs:QName lexical forms).getReservedNamespaceBindingError(String prefix, String uri) static booleanXML 1.0 / Namespaces in XML — NCName character checks (no colon).static booleanXML 1.0 Name character checks (colon permitted).static booleanXML 1.0 Nmtoken character checks (one or more NameChar code points).static NamenameFromElementOrAttributeDomNode(Node domNode) Expanded name for an element or attribute DOM node (namespace-aware when the DOM provides it).static NamenameLocalOnly(String localName) QName with only a local name and no namespace URI or prefix (XDM processing-instruction target; namespace prefix property absent).namespaceResolver(Item element) Resolves prefixes against an element node's in-scope namespaces.namespaceResolver(RuntimeStaticContext runtimeStaticContext) namespaceResolver(StaticContext staticContext) static NameXQuery 3.1 computed attribute constructors: if the attribute QName has a namespace URI but no prefix, an implementation-defined prefix is used.static NameparseFnQName(String paramUriOrNull, String lexicalQName, ExceptionMetadata metadata) XPath and XQuery Functions 3.1fn:QName: combines an optional namespace URI with a lexical QName.static NameparseLexicalQName(String lexical, NamespaceBindingUtils.NamespaceResolver namespaceResolver, ExceptionMetadata metadata) Whitespace-collapsed lexical QName to expanded name (xs:QName cast / constructor).static NameparseLexicalQNameForComputedAttribute(String lexical, NamespaceBindingUtils.NamespaceResolver namespaceResolver, ExceptionMetadata metadata) XQuery 3.1 computed attribute constructor:xs:string/xs:untypedAtomicname is converted to an expanded QName.static NameparseLexicalQNameForResolveQName(String lexical, NamespaceBindingUtils.NamespaceResolver namespaceResolver, ExceptionMetadata metadata) fn:resolve-QName (Functions and Operators 3.1 10.1.1): likeparseLexicalQName(java.lang.String, org.rumbledb.runtime.xml.NamespaceBindingUtils.NamespaceResolver, org.rumbledb.exceptions.ExceptionMetadata), but raises err:FONS0004 (NoNamespaceFoundForPrefixException) rather than err:FOCA0002 when the prefix is present but unbound.static String[]parseNamespaceDeclarationAttribute(Item attributeItem) static voidvalidateConstructedAttributeName(Name name, ExceptionMetadata metadata) static voidvalidateConstructedNodeName(Name name, ExceptionMetadata metadata) XQuery 3.1 computed constructors: dynamic error [err:XQDY0096] if the node-name has a forbidden prefix/URI pair.static voidvalidateDefaultNamespaceDeclaration(String uri, ExceptionMetadata metadata) XQuery 3.1, 4.14 Default Namespace Declaration: "A static error [err:XQST0070] is raised if a default element namespace declaration or a default function namespace declaration specifies the namespace URI http://www.w3.org/XML/1998/namespace or http://www.w3.org/2000/xmlns/."static voidvalidateNamespaceDeclaration(String prefix, String uri, ExceptionMetadata metadata) static voidvalidateParsedNamespaceBinding(String prefix, String uri) Validates a namespace binding coming from parsed XML rather than from an XQuery namespace declaration attribute.static voidvalidatePrologNamespaceDeclaration(String prefix, String uri, ExceptionMetadata metadata) XQuery 3.1, 4.13 Namespace Declaration: "It is a static error [err:XQST0070] if a namespace declaration specifies a prefix of xml or xmlns, or a namespace URI of http://www.w3.org/XML/1998/namespace or http://www.w3.org/2000/xmlns/."
-
Field Details
-
XML_NAMESPACE_URI
- See Also:
-
XMLNS_NAMESPACE_URI
- See Also:
-
-
Method Details
-
isValidNcName
XML 1.0 / Namespaces in XML — NCName character checks (no colon). -
isValidXmlName
XML 1.0 Name character checks (colon permitted). -
isValidXmlNmToken
XML 1.0 Nmtoken character checks (one or more NameChar code points). -
builtinNamespaceResolver
-
namespaceResolver
public static NamespaceBindingUtils.NamespaceResolver namespaceResolver(RuntimeStaticContext runtimeStaticContext) -
namespaceResolver
public static NamespaceBindingUtils.NamespaceResolver namespaceResolver(StaticContext staticContext) -
namespaceResolver
Resolves prefixes against an element node's in-scope namespaces. -
collapseQNameLexical
Applies XSD whiteSpace facet COLLAPSE (as for xs:QName lexical forms). -
validateConstructedNodeName
XQuery 3.1 computed constructors: dynamic error [err:XQDY0096] if the node-name has a forbidden prefix/URI pair. -
validateConstructedAttributeName
-
normalizeComputedAttributeName
XQuery 3.1 computed attribute constructors: if the attribute QName has a namespace URI but no prefix, an implementation-defined prefix is used. The XML namespace is special-cased to use the requiredxmlprefix. -
parseLexicalQName
public static Name parseLexicalQName(String lexical, NamespaceBindingUtils.NamespaceResolver namespaceResolver, ExceptionMetadata metadata) Whitespace-collapsed lexical QName to expanded name (xs:QName cast / constructor). -
parseLexicalQNameForResolveQName
public static Name parseLexicalQNameForResolveQName(String lexical, NamespaceBindingUtils.NamespaceResolver namespaceResolver, ExceptionMetadata metadata) fn:resolve-QName (Functions and Operators 3.1 10.1.1): likeparseLexicalQName(java.lang.String, org.rumbledb.runtime.xml.NamespaceBindingUtils.NamespaceResolver, org.rumbledb.exceptions.ExceptionMetadata), but raises err:FONS0004 (NoNamespaceFoundForPrefixException) rather than err:FOCA0002 when the prefix is present but unbound. -
parseLexicalQNameForComputedAttribute
public static Name parseLexicalQNameForComputedAttribute(String lexical, NamespaceBindingUtils.NamespaceResolver namespaceResolver, ExceptionMetadata metadata) XQuery 3.1 computed attribute constructor:xs:string/xs:untypedAtomicname is converted to an expanded QName. An unprefixed lexical form is a local name in no namespace (not the default element/type namespace). A prefixed form resolves likeparseLexicalQName(java.lang.String, org.rumbledb.runtime.xml.NamespaceBindingUtils.NamespaceResolver, org.rumbledb.exceptions.ExceptionMetadata). -
parseFnQName
public static Name parseFnQName(String paramUriOrNull, String lexicalQName, ExceptionMetadata metadata) XPath and XQuery Functions 3.1fn:QName: combines an optional namespace URI with a lexical QName. Leading and trailing whitespace is stripped from both arguments (Functions and Operators 3.1, section 10 intro).- Parameters:
paramUriOrNull- namespace URI, ornullwhenxs:string?was the empty sequencelexicalQName- non-null lexical QName string (after atomization toxs:string)
-
parseNamespaceDeclarationAttribute
-
getReservedNamespaceBindingError
public static NamespaceBindingUtils.ReservedNamespaceBindingError getReservedNamespaceBindingError(String prefix, String uri) -
validateNamespaceDeclaration
public static void validateNamespaceDeclaration(String prefix, String uri, ExceptionMetadata metadata) -
validatePrologNamespaceDeclaration
public static void validatePrologNamespaceDeclaration(String prefix, String uri, ExceptionMetadata metadata) XQuery 3.1, 4.13 Namespace Declaration: "It is a static error [err:XQST0070] if a namespace declaration specifies a prefix of xml or xmlns, or a namespace URI of http://www.w3.org/XML/1998/namespace or http://www.w3.org/2000/xmlns/." -
validateDefaultNamespaceDeclaration
XQuery 3.1, 4.14 Default Namespace Declaration: "A static error [err:XQST0070] is raised if a default element namespace declaration or a default function namespace declaration specifies the namespace URI http://www.w3.org/XML/1998/namespace or http://www.w3.org/2000/xmlns/." -
validateParsedNamespaceBinding
Validates a namespace binding coming from parsed XML rather than from an XQuery namespace declaration attribute. UnlikevalidateNamespaceDeclaration(String, String, ExceptionMetadata), this permits prefixed empty URIs so that XML 1.1 undeclarations such asxmlns:p=""can be preserved in the data model. -
nameFromElementOrAttributeDomNode
Expanded name for an element or attribute DOM node (namespace-aware when the DOM provides it). -
nameLocalOnly
QName with only a local name and no namespace URI or prefix (XDM processing-instruction target; namespace prefix property absent).
-