Module: Saxon::XPath::StaticContext::Resolver
- Defined in:
- lib/saxon/xpath/static_context.rb
Overview
methods for resolving a QName represented as a prefix:local-name string into a QName by looking the prefix up in declared namespaces
Class Method Summary collapse
-
.resolve_variable_name(qname_string, namespaces) ⇒ Saxon::QName
Resolve a QName string of the form
"prefix:local-name"into a QName by looking up the namespace URI in a hash of"prefix" => "namespace-uri". -
.resolve_variable_qname(qname_or_string, namespaces) ⇒ Saxon::QName
Resolve a QName string into a QName.
Class Method Details
.resolve_variable_name(qname_string, namespaces) ⇒ Saxon::QName
Resolve a QName string of the form "prefix:local-name" into a QName by looking up the namespace URI in a hash of "prefix" => "namespace-uri"
74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/saxon/xpath/static_context.rb', line 74 def self.resolve_variable_name(qname_string, namespaces) local_name, prefix = qname_string.split(':').reverse uri = nil if prefix uri = namespaces[prefix] raise MissingVariableNamespaceError.new(qname_string, prefix) if uri.nil? end Saxon::QName.create(prefix: prefix, uri: uri, local_name: local_name) end |
.resolve_variable_qname(qname_or_string, namespaces) ⇒ Saxon::QName
Resolve a QName string into a QName.
If the arg is a QName already, it just gets returned. If it’s an instance of the underlying Saxon Java QName, it’ll be wrapped into a QName
If the arg is a string, it’s resolved by using resolve_variable_name
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/saxon/xpath/static_context.rb', line 56 def self.resolve_variable_qname(qname_or_string, namespaces) case qname_or_string when String resolve_variable_name(qname_or_string, namespaces) when Saxon::QName qname_or_string when Saxon::S9API::QName Saxon::QName.new(qname_or_string) end end |