- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中net.sf.saxon.sxpath.XPathVariable
类的一些代码示例,展示了XPathVariable
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XPathVariable
类的具体详情如下:
包路径:net.sf.saxon.sxpath.XPathVariable
类名称:XPathVariable
[英]An object representing an XPath variable for use in the standalone XPath API. The object can only be created by calling the declareVariable method of class IndependentContext. Note that once declared, this object is thread-safe: it does not hold the actual variable value, which means it can be used with any number of evaluations of a given XPath expression, in series or in parallel.
A variable can be given a value by calling XPathDynamicContext#setVariable(XPathVariable,net.sf.saxon.om.ValueRepresentation). Note that the value of the variable is not held in the XPathVariable object, but in the XPathDynamicContext, which means that the XPathVariable itself can be used in multiple threads.
[中]表示独立XPath API中使用的XPath变量的对象。只能通过调用类独立上下文的declareVariable方法来创建对象。请注意,一旦声明,这个对象就是线程安全的:它不包含实际的变量值,这意味着它可以与给定XPath表达式的任意数量的求值一起使用,可以是串行的,也可以是并行的。
可以通过调用XPathDynamicContext#setVariable(XPathVariable,net.sf.saxon.om.ValueRepresentation)为变量指定一个值。请注意,变量的值不是保存在XPathVariable对象中,而是保存在XPathDynamicContext中,这意味着XPathVariable本身可以在多个线程中使用。
代码示例来源:origin: pmd/pmd
/**
* Attempt to create a dynamic context on which to evaluate the {@link #xpathExpression}.
*
* @param elementNode the node on which to create the context; generally this node is the root node of the Saxon
* Tree
* @return the dynamic context on which to run the query
* @throws XPathException if the supplied value does not conform to the required type of the
* variable, when setting up the dynamic context; or if the supplied value contains a node that does not belong to
* this Configuration (or another Configuration that shares the same namePool)
*/
private XPathDynamicContext createDynamicContext(final ElementNode elementNode) throws XPathException {
final XPathDynamicContext dynamicContext = xpathExpression.createDynamicContext(elementNode);
// Set variable values on the dynamic context
for (final XPathVariable xpathVariable : xpathVariables) {
final String variableName = xpathVariable.getVariableQName().getLocalName();
for (final Map.Entry<PropertyDescriptor<?>, Object> entry : super.properties.entrySet()) {
if (variableName.equals(entry.getKey().name())) {
final ValueRepresentation valueRepresentation = getRepresentation(entry.getKey(), entry.getValue());
dynamicContext.setVariable(xpathVariable, valueRepresentation);
}
}
}
return dynamicContext;
}
代码示例来源:origin: net.sf.saxon/Saxon-HE
/**
* Factory method, for use by the declareVariable method of class IndependentContext
*
* @param name the name of the variable to create
* @return the constructed XPathVariable
*/
protected static XPathVariable make(StructuredQName name) {
XPathVariable v = new XPathVariable();
v.name = name;
return v;
}
代码示例来源:origin: net.sf.saxon/Saxon-HE
SequenceType requiredType = variable.getRequiredType();
if (requiredType != SequenceType.ANY_SEQUENCE) {
XPathException err = TypeChecker.testConformance(value, requiredType, contextObject);
int slot = variable.getLocalSlotNumber();
StructuredQName expectedName = slot >= stackFrameMap.getNumberOfVariables() ? null :
stackFrameMap.getVariableMap().get(slot);
if (!variable.getVariableQName().equals(expectedName)) {
throw new XPathException(
"Supplied XPathVariable is bound to the wrong slot: perhaps it was created using a different static context");
代码示例来源:origin: org.opengis.cite.saxon/saxon9
/**
* Declare a variable. A variable must be declared before an expression referring
* to it is compiled. The initial value of the variable will be the empty sequence
* @param namespaceURI The namespace URI of the name of the variable. Supply "" to represent
* names in no namespace (null is also accepted)
* @param localName The local part of the name of the variable (an NCName)
* @return an XPathVariable object representing information about the variable that has been
* declared.
*/
public XPathVariable declareVariable(String namespaceURI, String localName) {
XPathVariable var = XPathVariable.make(new StructuredQName("", namespaceURI, localName));
StructuredQName qName = var.getVariableQName();
int slot = variables.size();
var.setSlotNumber(slot);
variables.put(qName, var);
return var;
}
代码示例来源:origin: net.sourceforge.saxon/saxon
/**
* Get a Stack Frame Map containing definitions of all the declared variables. This will return a newly
* created object that the caller is free to modify by adding additional variables, without affecting
* the static context itself.
*/
public SlotManager getStackFrameMap() {
SlotManager map = getConfiguration().makeSlotManager();
XPathVariable[] va = new XPathVariable[variables.size()];
for (Iterator v = variables.values().iterator(); v.hasNext();) {
XPathVariable var = (XPathVariable)v.next();
va[var.getLocalSlotNumber()] = var;
}
for (int i=0; i<va.length; i++) {
map.allocateSlotNumber(va[i].getVariableQName());
}
return map;
}
代码示例来源:origin: net.sf.saxon/Saxon-HE
private XPathExecutable internalCompile(String source) throws SaxonApiException {
try {
env.getDecimalFormatManager().checkConsistency();
} catch (net.sf.saxon.trans.XPathException e) {
throw new SaxonApiException(e);
}
XPathEvaluator eval = evaluator;
IndependentContext ic = env;
if (ic.isAllowUndeclaredVariables()) {
// self-declaring variables modify the static context. The XPathCompiler must not change state
// as the result of compiling an expression, so we need to copy the static context.
eval = new XPathEvaluator(processor.getUnderlyingConfiguration());
ic = new IndependentContext(env);
eval.setStaticContext(ic);
for (Iterator iter = env.iterateExternalVariables(); iter.hasNext(); ) {
XPathVariable var = (XPathVariable) iter.next();
XPathVariable var2 = ic.declareVariable(var.getVariableQName());
var2.setRequiredType(var.getRequiredType());
}
}
try {
XPathExpression cexp = eval.createExpression(source);
return new XPathExecutable(cexp, processor, ic);
} catch (XPathException e) {
throw new SaxonApiException(e);
}
}
代码示例来源:origin: net.sourceforge.saxon/saxon
/**
* Get the slot number allocated to a particular variable
* @param qname the name of the variable
* @return the slot number, or -1 if the variable has not been declared
*/
public int getSlotNumber(QNameValue qname) {
StructuredQName sq = qname.toStructuredQName();
XPathVariable var = (XPathVariable)variables.get(sq);
if (var == null) {
return -1;
}
return var.getLocalSlotNumber();
}
代码示例来源:origin: org.opengis.cite.saxon/saxon9
SequenceType requiredType = variable.getRequiredType();
if (requiredType != SequenceType.ANY_SEQUENCE) {
XPathException err = TypeChecker.testConformance(value, requiredType, contextObject);
contextObject.setLocalVariable(variable.getLocalSlotNumber(), value);
代码示例来源:origin: net.sf.saxon/Saxon-HE
/**
* Declare a variable. A variable must be declared before an expression referring
* to it is compiled. The initial value of the variable will be the empty sequence
*
* @param qName the name of the variable.
* @return an XPathVariable object representing information about the variable that has been
* declared.
* @since 9.2
*/
public XPathVariable declareVariable(StructuredQName qName) {
XPathVariable var = variables.get(qName);
if (var != null) {
return var;
} else {
var = XPathVariable.make(qName);
int slot = variables.size();
var.setSlotNumber(slot);
variables.put(qName, var);
return var;
}
}
代码示例来源:origin: net.sf.saxon/Saxon-HE
/**
* Get the required item type of a declared variable in the static context of the expression.
*
* @param variableName the name of a declared variable
* @return the required item type.
* <p>If the variable was explicitly declared, this will be the item type that was set when the
* variable was declared. If no item type was set, it will be {@link ItemType#ANY_ITEM}.</p>
* <p>If the variable was implicitly declared by reference (which can happen only when the
* <tt>allowUndeclaredVariables</tt> option is set), the returned type will be {@link ItemType#ANY_ITEM}.</p>
* <p>If no variable with the specified QName has been declared either explicitly or implicitly,
* the method returns null.</p>
* @since 9.2
*/
/*@Nullable*/
public ItemType getRequiredItemTypeForVariable(QName variableName) {
XPathVariable var = env.getExternalVariable(variableName.getStructuredQName());
if (var == null) {
return null;
} else {
return new ConstructedItemType(var.getRequiredType().getPrimaryType(), processor);
}
}
代码示例来源:origin: net.sf.saxon/Saxon-HE
/**
* Declare a variable as part of the static context for XPath expressions compiled using this
* {@code XPathCompiler}. It is an error for the XPath expression to refer to a variable unless it has been
* declared, unless the method {@link #setAllowUndeclaredVariables(boolean)} has been called to permit
* undeclared variables. This method declares the existence of the variable, and defines the required type
* of the variable, but it does not bind any value to the variable; that is done later,
* when the XPath expression is evaluated.
*
* @param qname The name of the variable, expressed as a {@link QName}
* @param itemType The required item type of the value of the variable, for example {@code ItemType.BOOLEAN}
* @param occurrences The allowed number of items in the sequence forming the value of the variable
*/
public void declareVariable(QName qname, ItemType itemType, OccurrenceIndicator occurrences) {
if (cache != null) {
cache.clear();
}
XPathVariable var = env.declareVariable(qname.getNamespaceURI(), qname.getLocalName());
var.setRequiredType(
SequenceType.makeSequenceType(
itemType.getUnderlyingItemType(), occurrences.getCardinality()));
}
代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon
SequenceType requiredType = variable.getRequiredType();
if (requiredType != SequenceType.ANY_SEQUENCE) {
XPathException err = TypeChecker.testConformance(value, requiredType, contextObject);
int slot = variable.getLocalSlotNumber();
StructuredQName expectedName = slot >= stackFrameMap.getNumberOfVariables() ? null :
stackFrameMap.getVariableMap().get(slot);
if (!variable.getVariableQName().equals(expectedName)) {
throw new XPathException(
"Supplied XPathVariable is bound to the wrong slot: perhaps it was created using a different static context");
代码示例来源:origin: net.sourceforge.saxon/saxon
/**
* Declare a variable. A variable must be declared before an expression referring
* to it is compiled. The initial value of the variable will be the empty sequence
* @param namespaceURI The namespace URI of the name of the variable. Supply "" to represent
* names in no namespace (null is also accepted)
* @param localName The local part of the name of the variable (an NCName)
* @return an XPathVariable object representing information about the variable that has been
* declared.
*/
public XPathVariable declareVariable(String namespaceURI, String localName) {
XPathVariable var = XPathVariable.make(new StructuredQName("", namespaceURI, localName));
StructuredQName qName = var.getVariableQName();
int slot = variables.size();
var.setSlotNumber(slot);
variables.put(qName, var);
return var;
}
代码示例来源:origin: net.sf.saxon/Saxon-HE
/**
* Get a Stack Frame Map containing definitions of all the declared variables. This will return a newly
* created object that the caller is free to modify by adding additional variables, without affecting
* the static context itself.
*/
public SlotManager getStackFrameMap() {
SlotManager map = getConfiguration().makeSlotManager();
XPathVariable[] va = new XPathVariable[variables.size()];
for (XPathVariable var : variables.values()) {
va[var.getLocalSlotNumber()] = var;
}
for (XPathVariable v : va) {
map.allocateSlotNumber(v.getVariableQName());
}
return map;
}
代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon
private XPathExecutable internalCompile(String source) throws SaxonApiException {
try {
env.getDecimalFormatManager().checkConsistency();
} catch (net.sf.saxon.trans.XPathException e) {
throw new SaxonApiException(e);
}
XPathEvaluator eval = evaluator;
IndependentContext ic = env;
if (ic.isAllowUndeclaredVariables()) {
// self-declaring variables modify the static context. The XPathCompiler must not change state
// as the result of compiling an expression, so we need to copy the static context.
eval = new XPathEvaluator(processor.getUnderlyingConfiguration());
ic = new IndependentContext(env);
eval.setStaticContext(ic);
for (Iterator iter = env.iterateExternalVariables(); iter.hasNext(); ) {
XPathVariable var = (XPathVariable) iter.next();
XPathVariable var2 = ic.declareVariable(var.getVariableQName());
var2.setRequiredType(var.getRequiredType());
}
}
try {
XPathExpression cexp = eval.createExpression(source);
return new XPathExecutable(cexp, processor, ic);
} catch (XPathException e) {
throw new SaxonApiException(e);
}
}
代码示例来源:origin: org.opengis.cite.saxon/saxon9
/**
* Get the slot number allocated to a particular variable
* @param qname the name of the variable
* @return the slot number, or -1 if the variable has not been declared
*/
public int getSlotNumber(QNameValue qname) {
StructuredQName sq = qname.toStructuredQName();
XPathVariable var = (XPathVariable)variables.get(sq);
if (var == null) {
return -1;
}
return var.getLocalSlotNumber();
}
代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon
/**
* Declare a variable. A variable must be declared before an expression referring
* to it is compiled. The initial value of the variable will be the empty sequence
*
* @param qName the name of the variable.
* @return an XPathVariable object representing information about the variable that has been
* declared.
* @since 9.2
*/
public XPathVariable declareVariable(StructuredQName qName) {
XPathVariable var = variables.get(qName);
if (var != null) {
return var;
} else {
var = XPathVariable.make(qName);
int slot = variables.size();
var.setSlotNumber(slot);
variables.put(qName, var);
return var;
}
}
代码示例来源:origin: net.sf.saxon/Saxon-HE
/**
* Get the required cardinality of a declared variable in the static context of the expression.
*
* @param variableName the name of a declared variable
* @return the required cardinality.
* <p>If the variable was explicitly declared, this will be the occurrence indicator that was set when the
* variable was declared. If no item type was set, it will be {@link OccurrenceIndicator#ZERO_OR_MORE}.</p>
* <p>If the variable was implicitly declared by reference (which can happen only when the
* <tt>allowUndeclaredVariables</tt> option is set), the returned type will be
* {@link OccurrenceIndicator#ZERO_OR_MORE}.</p>
* <p>If no variable with the specified QName has been declared either explicitly or implicitly,
* the method returns null.</p>
* @since 9.2
*/
public OccurrenceIndicator getRequiredCardinalityForVariable(QName variableName) {
XPathVariable var = env.getExternalVariable(variableName.getStructuredQName());
if (var == null) {
return null;
} else {
return OccurrenceIndicator.getOccurrenceIndicator(var.getRequiredType().getCardinality());
}
}
代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon
/**
* Declare a variable as part of the static context for XPath expressions compiled using this
* {@code XPathCompiler}. It is an error for the XPath expression to refer to a variable unless it has been
* declared, unless the method {@link #setAllowUndeclaredVariables(boolean)} has been called to permit
* undeclared variables. This method declares the existence of the variable, and defines the required type
* of the variable, but it does not bind any value to the variable; that is done later,
* when the XPath expression is evaluated.
*
* @param qname The name of the variable, expressed as a {@link QName}
* @param itemType The required item type of the value of the variable, for example {@code ItemType.BOOLEAN}
* @param occurrences The allowed number of items in the sequence forming the value of the variable
*/
public void declareVariable(QName qname, ItemType itemType, OccurrenceIndicator occurrences) {
if (cache != null) {
cache.clear();
}
XPathVariable var = env.declareVariable(qname.getNamespaceURI(), qname.getLocalName());
var.setRequiredType(
SequenceType.makeSequenceType(
itemType.getUnderlyingItemType(), occurrences.getCardinality()));
}
代码示例来源:origin: net.sourceforge.saxon/saxon
SequenceType requiredType = variable.getRequiredType();
if (requiredType != SequenceType.ANY_SEQUENCE) {
XPathException err = TypeChecker.testConformance(value, requiredType, contextObject);
int slot = variable.getLocalSlotNumber();
StructuredQName expectedName = (slot >= stackFrameMap.getNumberOfVariables() ? null :
(StructuredQName)stackFrameMap.getVariableMap().get(slot));
if (!variable.getVariableQName().equals(expectedName)) {
throw new XPathException(
"Supplied XPathVariable is bound to the wrong slot: perhaps it was created using a different static context");
我有一个现有的 CentOS 7 服务器(当然是由其他人设置的)运行 Saxon。如果我运行: /usr/bin/java net.sf.saxon.Transform -s:input.xml -x
我目前正在使用各种版本的 Saxon-Processor 进行纯 XSL 转换。下面是我的简短样式表,根据我的问题的需要进行了简化: Call of func_
我正在尝试从 java 代码中抛出异常,该异常将在使用 Saxon 时包含来自 xsl:message 标记的消息。 使用下面的 xslt 文件 exception me
Saxon似乎不是gradle试图发送它的地方: Not Found For request 'GET /artifact/net/sf/saxon/saxon-HE/9.9.0-2/saxon-HE
我最近获得了 Saxon-PE 的试用许可证,并希望在 Camel 中使用此版本的 Saxon。我下载了 Saxon-PE-9.6.0.8 jar 并通过 maven 将它们包含到我的项目中。我正在使
我正在使用 Saxon 9.0.4 并将 Home Edition jar 包含在我的 Eclipse 项目中。但是每当我发出查询字符串时,什么也没有发生,并且我没有得到任何输出。当我从命令行使用以下
我想使用 xpath 3.1 fn:transform 创建一个输出文档。以下是 A.xsl。它在直接运行时创建 A.xml(从氧气中):
我对此很陌生。 我有一个查询和一个 xml 文件。 我可以写一个对该特定文件的查询 for $x in doc("file:///C:/Users/Foo/IdeaProjects/XQuery/sr
简单的问题! 如何找出我正在运行的 Saxon 版本?我有“sazon9he.jar”文件,但我似乎无法弄清楚确切的版本(即它是 9.7 还是 9.6...) 谢谢! 最佳答案 在发布问题几分钟后终于
Saxon 是否有办法按排序顺序返回节点,其中“顺序”由返回节点中的 1 个或多个节点/属性定义? 换句话说,XPath 查询可以是: /Order/Dates/Date order by . 谢谢
我发现 saxon 9.9.1-4 中 XQueryCompiler 的行为非常奇怪。当我第一次运行 XQuery 时,无论 XQuery 复杂性如何,编译都会花费大量时间(400 毫秒)——例如 m
我正在使用 Saxon 解析器将大文件拆分为较小的文件。下面是我的示例代码, TransformerFactory tFactory = TransformerFactory.newInstanc
我们通常会进行大量的 XPath 查询,但几乎没有一个重复。因此每个查询都会被编译、执行,然后被抛出。 在 Saxon 中是否有一种模式,我们应该设置告诉它构建一次性使用的编译查询,这样在这种模式下使
我们将撒克逊语与我们的图书馆一起运送。我们以代码形式向其传递许可证,因此不发送 saxon-library.lic 文件。我们的系统一切都运行良好。 但是,我们的一位客户遇到了一个问题,当 hazel
我最初应该通过声明我们的代码使用嵌入式 saxon 扩展函数来发布我的问题 - saxon:parse($xml) 返回 xml 的根元素/节点。但是,在 Saxon-HE 中,该扩展不再可用 - 所
给定以下xml: Wells 使用 Xerces,以下 xpath 查询有效: //urn:company.com:catalog.01:author 当我使用
有谁知道用于在 XSLT 中执行合并的内置函数,还是我需要编写自己的函数? 我有一些像这样的 xml: Worldwide WorldwideName 78 GB
如何将多个字段传递到 Saxon-HE ExtensionFunction 中? 扩展通常需要一个参数数组: new ExtensionFunction { @Override pub
我想知道是否有人有使用 XQuery 的经验,因为 free version of Saxon 支持它。 。一般可以认为它是完整且可用的吗? 最佳答案 是的,我发现免费版本快速且稳定。 XQuery
我有一个将 Json 转换为 Json 的 XQuery。我制作了一个可以在命令行上运行的演示版本,我想在 java 中使用它。 问题是我不知道如何在 XQuery 中设置参数。 我的源文件“1.js
我是一名优秀的程序员,十分优秀!