protected DefaultDynamicContext setupDynamicContext(XSModel schema) { XercesTypeModel typeModel = schema != null ? new XercesTypeModel(schema) : null; if (useNewApi) { staticContextBuilder.withTypeModel(typeModel); staticContextBuilder.withNamespace("xs", "http://www.w3.org/2001/XMLSchema"); staticContextBuilder.withNamespace("xsd", "http://www.w3.org/2001/XMLSchema"); staticContextBuilder.withNamespace("fn", "http://www.w3.org/2005/xpath-functions"); staticContextBuilder.withNamespace("xml", "http://www.w3.org/XML/1998/namespace"); dynamicContextBuilder = new DynamicContextBuilder(staticContextBuilder); setupVariables(dynamicContext); try { dynamicContextBuilder.withTimezoneOffset( DatatypeFactory.newInstance().newDuration(false /*i.e. negative*/, 0, 0, 0, 5, 0, 0)); } catch (DatatypeConfigurationException e) { throw new RuntimeException("Shouldn't fail here", e); } return null; } DefaultDynamicContext dc = new DefaultDynamicContext(typeModel); dynamicContext = dc; dc.add_namespace("xs", "http://www.w3.org/2001/XMLSchema"); dc.add_namespace("xsd", "http://www.w3.org/2001/XMLSchema"); dc.add_namespace("fn", "http://www.w3.org/2005/xpath-functions"); dc.add_namespace("xml", "http://www.w3.org/XML/1998/namespace"); dc.add_function_library(new FnFunctionLibrary()); dc.add_function_library(new XSCtrLibrary()); setupVariables(dc); return dc; }
protected void addFunctionLibrary(FunctionLibrary fl) { if (useNewApi) { staticContextBuilder.withFunctionLibrary(fl.getNamespace(), fl); } else { dynamicContext.add_function_library(fl); } }