- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中net.sf.saxon.query.XQueryFunction
类的一些代码示例,展示了XQueryFunction
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XQueryFunction
类的具体详情如下:
包路径:net.sf.saxon.query.XQueryFunction
类名称:XQueryFunction
[英]A user-defined function in an XQuery module
[中]XQuery模块中的用户定义函数
代码示例来源:origin: org.opengis.cite.saxon/saxon9
String functionKey = XQueryFunction.getIdentificationKey(
functionName, arguments.length);
XQueryFunction fd = (XQueryFunction)functions.get(functionKey);
if (fd != null) {
UserFunctionCall ufc = new UserFunctionCall();
ufc.setFunctionName(fd.getFunctionName());
ufc.setArguments(arguments);
ufc.setStaticType(fd.getResultType());
UserFunction fn = fd.getUserFunction();
if (fn == null) {
fd.registerReference(ufc);
ufc.setConfirmed(true);
} else {
ufc.setFunction(fn);
ExpressionVisitor visitor = ExpressionVisitor.make(fd.getStaticContext());
visitor.setExecutable(fd.getExecutable());
ufc.checkFunctionCall(fn, visitor);
代码示例来源:origin: org.opengis.cite.saxon/saxon9
/**
* Fixup all references to global functions. This method is called
* on completion of query parsing. Each XQueryFunction is required to
* bind all references to that function to the object representing the run-time
* executable code of the function.
* <p>
* This method is for internal use.
* @param env the static context for the main query body.
*/
protected void fixupGlobalFunctions(QueryModule env) throws XPathException {
ExpressionVisitor visitor = ExpressionVisitor.make(env);
Iterator iter = functions.values().iterator();
while (iter.hasNext()) {
XQueryFunction fn = (XQueryFunction)iter.next();
fn.compile();
}
iter = functions.values().iterator();
while (iter.hasNext()) {
XQueryFunction fn = (XQueryFunction)iter.next();
visitor.setExecutable(fn.getExecutable());
fn.checkReferences(visitor);
}
}
代码示例来源:origin: net.sourceforge.saxon/saxon
/**
* Look for cyclic variable references that go via one or more function calls
* @param f a used-defined function
* @param referees a list of variables and functions that refer directly or indirectly to this variable
* @param globalFunctionLibrary the library containing all global functions
*/
private static void lookForFunctionCycles(
XQueryFunction f, Stack referees, XQueryFunctionLibrary globalFunctionLibrary) throws XPathException {
Expression body = f.getBody();
referees.push(f);
List list = new ArrayList(10);
ExpressionTool.gatherReferencedVariables(body, list);
for (int i=0; i<list.size(); i++) {
Binding b = (Binding)list.get(i);
if (b instanceof GlobalVariable) {
((GlobalVariable)b).lookForCycles(referees, globalFunctionLibrary);
}
}
list.clear();
ExpressionTool.gatherCalledFunctionNames(body, list);
for (int i=0; i<list.size(); i++) {
XQueryFunction qf = globalFunctionLibrary.getDeclarationByKey((String)list.get(i));
if (!referees.contains(qf)) {
// recursive function calls are allowed
lookForFunctionCycles(qf, referees, globalFunctionLibrary);
}
}
referees.pop();
}
代码示例来源:origin: net.sourceforge.saxon/saxon
/**
* Get the function with a given name and arity. This method is provided so that XQuery functions
* can be called directly from a Java application. Note that there is no type checking or conversion
* of arguments when this is done: the arguments must be provided in exactly the form that the function
* signature declares them.
* @param uri the uri of the function name
* @param localName the local part of the function name
* @param arity the number of arguments.
* @return the function identified by the URI, local name, and arity; or null if there is no such function
*/
public UserFunction getUserDefinedFunction(String uri, String localName, int arity) {
String functionKey = XQueryFunction.getIdentificationKey(uri, localName, arity);
XQueryFunction fd = (XQueryFunction)functions.get(functionKey);
if (fd==null) {
return null;
}
return fd.getUserFunction();
}
代码示例来源:origin: net.sourceforge.saxon/saxon
/**
* Check that all the types used in the signature of an imported function
* are available in the module of the caller of the function
* @param fd the declaration of the imported function
* @throws XPathException if an error is found
*/
public void checkImportedFunctionSignature(XQueryFunction fd) throws XPathException {
checkImportedType(fd.getResultType(), fd);
for (int a=0; a<fd.getNumberOfArguments(); a++) {
SequenceType argType = fd.getArgumentTypes()[a];
checkImportedType(argType, fd);
}
}
代码示例来源:origin: net.sf.saxon/Saxon-HE
/**
* Fixup all references to global functions. This method is called
* on completion of query parsing. Each XQueryFunction is required to
* bind all references to that function to the object representing the run-time
* executable code of the function.
* <p>This method is for internal use.</p>
*
* @param env the static context for the main query body.
* @throws net.sf.saxon.trans.XPathException
* if an error occurs
*/
protected void fixupGlobalFunctions(/*@NotNull*/ QueryModule env) throws XPathException {
ExpressionVisitor visitor = ExpressionVisitor.make(env);
for (XQueryFunction fn : functions.values()) {
fn.compile();
}
for (XQueryFunction fn : functions.values()) {
fn.checkReferences(visitor);
}
}
代码示例来源:origin: net.sourceforge.saxon/saxon
XQueryFunction func = new XQueryFunction();
func.setFunctionName(qName);
func.setResultType(SequenceType.ANY_SEQUENCE);
func.setBody(null);
func.setLineNumber(t.getLineNumber(offset));
func.setColumnNumber(t.getColumnNumber(offset));
func.setSystemId(env.getSystemId());
func.setStaticContext((QueryModule)env);
func.setMemoFunction(memoFunction);
func.setExecutable(getExecutable());
func.setUpdating(isUpdating);
arg.setRequiredType(paramType);
arg.setVariableQName(argQName);
func.addArgument(arg);
declareRangeVariable(arg);
if (t.currentToken == Token.RPAR) {
t.setState(Tokenizer.SEQUENCE_TYPE_STATE);
nextToken();
func.setResultType(parseSequenceType());
t.setState(Tokenizer.DEFAULT_STATE);
nextToken();
func.setBody(parseExpression());
expect(Token.RCURLY);
UserFunctionParameter[] params = func.getParameterDefinitions();
for (int i = 0; i < params.length; i++) {
代码示例来源:origin: net.sf.saxon/Saxon-HE
XQueryFunction func = new XQueryFunction();
func.setFunctionName(qName);
func.setResultType(SequenceType.ANY_SEQUENCE);
func.setBody(null);
Location loc = makeNestedLocation(env.getContainingLocation(), t.getLineNumber(offset), t.getColumnNumber(offset), null);
func.setLocation(loc);
func.setStaticContext((QueryModule) env);
func.setMemoFunction(memoFunction);
func.setUpdating(annotations.includes(Annotation.UPDATING));
func.setAnnotations(annotations);
arg.setRequiredType(paramType);
arg.setVariableQName(argQName);
func.addArgument(arg);
declareRangeVariable(arg);
if (t.currentToken == Token.RPAR) {
nextToken();
if (t.currentToken == Token.AS) {
if (func.isUpdating()) {
grumble("Cannot specify a return type for an updating function", "XUST0028");
func.setResultType(parseSequenceType());
body.setRetainedStaticContext(env.makeRetainedStaticContext());
setLocation(body);
func.setBody(body);
} else {
Expression body = parseExpression();
代码示例来源:origin: net.sf.saxon/Saxon-HE
XQueryFunction fd = functions.get(functionName);
if (fd != null) {
if (fd.isPrivate() && fd.getStaticContext() != env) {
reasons.add("Cannot call the private XQuery function " +
functionName.getComponentName().getDisplayName() + " from outside its module");
ufc.setFunctionName(fd.getFunctionName());
ufc.setArguments(arguments);
ufc.setStaticType(fd.getResultType());
UserFunction fn = fd.getUserFunction();
if (fn == null) {
fd.registerReference(ufc);
} else {
ufc.setFunction(fn);
代码示例来源:origin: org.opengis.cite.saxon/saxon9
/**
* Register a user-defined XQuery function
* @param function the function to be registered
* @throws XPathException if there is an existing function with the same name and arity
*/
public void declareFunction(XQueryFunction function) throws XPathException {
String keyObj = function.getIdentificationKey();
XQueryFunction existing = (XQueryFunction)functions.get(keyObj);
if (existing != null) {
XPathException err = new XPathException("Duplicate definition of function " +
function.getDisplayName() +
" (see line " + existing.getLineNumber() + " in " + existing.getSystemId() + ')');
err.setErrorCode("XQST0034");
err.setIsStaticError(true);
err.setLocator(function);
throw err;
}
functions.put(keyObj, function);
}
代码示例来源:origin: net.sf.saxon/Saxon-HE
/**
* Register a user-defined XQuery function.
* <p>This method is intended for internal use only.</p>
*
* @param function the function being declared
* @throws net.sf.saxon.trans.XPathException
* if an error occurs, for example
* a duplicate function name
*/
public void declareFunction(/*@NotNull*/ XQueryFunction function) throws XPathException {
Configuration config = getConfiguration();
if (function.getNumberOfArguments() == 1) {
StructuredQName name = function.getFunctionName();
SchemaType t = config.getSchemaType(name);
if (t != null && t.isAtomicType()) {
XPathException err = new XPathException("Function name " + function.getDisplayName() +
" clashes with the name of the constructor function for an atomic type");
err.setErrorCode("XQST0034");
err.setIsStaticError(true);
throw err;
}
}
XQueryFunctionLibrary local = getLocalFunctionLibrary();
local.declareFunction(function);
//if (!function.isPrivate()) {
QueryModule main = getTopLevelModule();
main.globalFunctionLibrary.declareFunction(function);
//}
}
代码示例来源:origin: com.helger/ph-schematron
aXQueryFunction.compile ();
aFunctionResolver.addUniqueFunction (aXQueryFunction.getFunctionName ().getNamespaceBinding ().getURI (),
aXQueryFunction.getFunctionName ().getLocalPart (),
aXQueryFunction.getNumberOfArguments (),
new XPathFunctionFromUserFunction (aConfiguration,
aXQController,
aXQueryFunction.getUserFunction ()));
代码示例来源:origin: net.sf.saxon/Saxon-HE
UserFunctionParameter[] params = getParameterDefinitions();
for (int i = 0; i < params.length; i++) {
params[i].setSlotNumber(i);
rsc = getStaticContext().makeRetainedStaticContext();
body.setRetainedStaticContext(rsc);
compiledFunction.setFunctionName(functionName);
compiledFunction.setParameterDefinitions(params);
compiledFunction.setResultType(getResultType());
compiledFunction.setLineNumber(location.getLineNumber());
compiledFunction.setSystemId(location.getSystemId());
fixupReferences();
代码示例来源:origin: msokolov/lux
private FunctionDefinition[] getFunctionDefinitions() {
ArrayList<FunctionDefinition> functionDefinitions = new ArrayList<FunctionDefinition>();
Iterator<XQueryFunction> functions = queryModule.getLocalFunctionLibrary().getFunctionDefinitions();
while (functions.hasNext()) {
XQueryFunction function = functions.next();
UserFunctionParameter[] params = function.getParameterDefinitions();
Variable[] args = new Variable[params.length];
for (int i = 0; i < params.length; i++) {
QName argname = qnameFor (params[i].getVariableQName());
addNamespaceDeclaration(argname);
args[i] = new Variable (argname, getTypeDescription(params[i].getRequiredType()));
}
QName fname = qnameFor(function.getFunctionName());
addNamespaceDeclaration(fname);
SequenceType resultType = function.getResultType();
ItemType returnType = resultType.getPrimaryType();
QName returnTypeName = null;
if (returnType instanceof NameTest) {
returnTypeName = qnameForNameCode (((NameTest) returnType).getFingerprint());
}
FunctionDefinition fdef = new FunctionDefinition(fname,
valueTypeForItemType(resultType.getPrimaryType()),
cardinalityOf(resultType), returnTypeName,
args, exprFor (function.getBody()));
functionDefinitions.add (fdef);
}
return functionDefinitions.toArray(new FunctionDefinition[0]);
}
代码示例来源:origin: net.sourceforge.saxon/saxon
UserFunctionParameter[] params = getParameterDefinitions();
for (int i=0; i<params.length; i++) {
params[i].setSlotNumber(i);
visitor.setExecutable(getExecutable());
body = visitor.simplify(body);
body = visitor.typeCheck(body, null);
compiledFunction.setFunctionName(functionName);
compiledFunction.setParameterDefinitions(params);
compiledFunction.setResultType(getResultType());
compiledFunction.setLineNumber(lineNumber);
compiledFunction.setSystemId(systemId);
fixupReferences(staticContext);
代码示例来源:origin: net.sf.saxon/Saxon-HE
} else if (referees.get(i + 1) instanceof XQueryFunction) {
XQueryFunction next = (XQueryFunction) referees.get(i + 1);
messageBuilder.append(" calls ").append(next.getFunctionName().getDisplayName()).append("#").append(next.getNumberOfArguments()).append("()");
代码示例来源:origin: net.sf.saxon/Saxon-HE
final Executable exec = ((QueryModule)getStaticContext()).getExecutable();
GlobalVariableManager manager = new GlobalVariableManager() {
public void addGlobalVariable(GlobalVariable variable) throws XPathException {
if (config.getCountDown() == 0) {
ICompilerService compilerService = config.makeCompilerService(Configuration.XQUERY);
Expression cbody = opt.compileToByteCode(compilerService, body, getFunctionName().getDisplayName(),
Expression.PROCESS_METHOD | Expression.ITERATE_METHOD);
if (cbody != null) {
body = opt.makeByteCodeCandidate(compiledFunction, body, getDisplayName(),
Expression.PROCESS_METHOD | Expression.ITERATE_METHOD);
代码示例来源:origin: net.sf.saxon/Saxon-HE
fd.registerReference(ufc);
ufc.setStaticType(fd.getResultType());
} else {
StringBuilder sb = new StringBuilder("Cannot find a " + arity +
fd.registerReference(uc);
代码示例来源:origin: net.sf.saxon/Saxon-HE
/**
* Get the function with a given name and arity. This method is provided so that XQuery functions
* can be called directly from a Java application. Note that there is no type checking or conversion
* of arguments when this is done: the arguments must be provided in exactly the form that the function
* signature declares them.
*
* @param uri the uri of the function name
* @param localName the local part of the function name
* @param arity the number of arguments.
* @return the function identified by the URI, local name, and arity; or null if there is no such function
*/
/*@Nullable*/
public UserFunction getUserDefinedFunction(/*@NotNull*/ String uri, /*@NotNull*/ String localName, int arity) {
SymbolicName functionKey = new SymbolicName.F(new StructuredQName("", uri, localName), arity);
XQueryFunction fd = functions.get(functionKey);
if (fd == null) {
return null;
}
return fd.getUserFunction();
}
代码示例来源:origin: dsukhoroslov/bagri
private <R> List<R> lookupFunctions(FunctionLibraryList fll, FunctionExtractor<R> ext) {
List<R> fl = new ArrayList<>();
for (FunctionLibrary lib: fll.getLibraryList()) {
logger.trace("lookupFunctions; function library: {}; class: {}", lib.toString(), lib.getClass().getName());
if (lib instanceof FunctionLibraryList) {
fl.addAll(lookupFunctions((FunctionLibraryList) lib, ext));
//} else if (lib instanceof ExecutableFunctionLibrary) {
// ExecutableFunctionLibrary efl = (ExecutableFunctionLibrary) lib;
// Iterator<UserFunction> itr = efl.iterateFunctions();
// while (itr.hasNext()) {
// fl.add(getFunctionDeclaration(itr.next()));
// }
} else if (lib instanceof XQueryFunctionLibrary) {
XQueryFunctionLibrary xqfl = (XQueryFunctionLibrary) lib;
Iterator<XQueryFunction> itr = xqfl.getFunctionDefinitions();
while (itr.hasNext()) {
XQueryFunction fn = itr.next();
logger.trace("lookupFunctions; fn: {}", fn.getDisplayName());
R result = ext.extractFunction(fn.getUserFunction());
if (result != null) {
fl.add(result);
}
}
}
}
return fl;
}
我尝试理解[c代码 -> 汇编]代码 void node::Check( data & _data1, vector& _data2) { -> push ebp -> mov ebp,esp ->
我需要在当前表单(代码)的上下文中运行文本文件中的代码。其中一项要求是让代码创建新控件并将其添加到当前窗体。 例如,在Form1.cs中: using System.Windows.Forms; ..
我有此 C++ 代码并将其转换为 C# (.net Framework 4) 代码。有没有人给我一些关于 malloc、free 和 sprintf 方法的提示? int monate = ee; d
我的网络服务器代码有问题 #include #include #include #include #include #include #include int
给定以下 html 代码,将列表中的第三个元素(即“美丽”一词)以斜体显示的 CSS 代码是什么?当然,我可以给这个元素一个 id 或一个 class,但 html 代码必须保持不变。谢谢
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我试图制作一个宏来避免重复代码和注释。 我试过这个: #define GrowOnPage(any Page, any Component) Component.Width := Page.Surfa
我正在尝试将我的旧 C++ 代码“翻译”成头条新闻所暗示的 C# 代码。问题是我是 C# 中的新手,并不是所有的东西都像 C++ 中那样。在 C++ 中这些解决方案运行良好,但在 C# 中只是不能。我
在 Windows 10 上工作,R 语言的格式化程序似乎没有在 Visual Studio Code 中完成它的工作。我试过R support for Visual Studio Code和 R-T
我正在处理一些报告(计数),我必须获取不同参数的计数。非常简单但乏味。 一个参数的示例查询: qCountsEmployee = ( "select count(*) from %s wher
最近几天我尝试从 d00m 调试网络错误。我开始用尽想法/线索,我希望其他 SO 用户拥有可能有用的宝贵经验。我希望能够提供所有相关信息,但我个人无法控制服务器环境。 整个事情始于用户注意到我们应用程
我有一个 app.js 文件,其中包含如下 dojo amd 模式代码: require(["dojo/dom", ..], function(dom){ dom.byId('someId').i
我对“-gencode”语句中的“code=sm_X”选项有点困惑。 一个例子:NVCC 编译器选项有什么作用 -gencode arch=compute_13,code=sm_13 嵌入库中? 只有
我为我的表格使用 X-editable 框架。 但是我有一些问题。 $(document).ready(function() { $('.access').editable({
我一直在通过本教程学习 flask/python http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-wo
我想将 Vim 和 EMACS 用于 CNC、G 代码和 M 代码。 Vim 或 EMACS 是否有任何语法或模式来处理这种类型的代码? 最佳答案 一些快速搜索使我找到了 this vim 和 thi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?更新问题,使其成为 on-topic对于堆栈溢出。 7年前关闭。 Improve this
这个问题在这里已经有了答案: Enabling markdown highlighting in Vim (5 个回答) 6年前关闭。 当我在 Vim 中编辑包含 Markdown 代码的 READM
我正在 Swift3 iOS 中开发视频应用程序。基本上我必须将视频 Assets 和音频与淡入淡出效果合并为一个并将其保存到 iPhone 画廊。为此,我使用以下方法: private func d
pipeline { agent any stages { stage('Build') { steps { e
我是一名优秀的程序员,十分优秀!