020 public abstract class BookIntroParsingSample<I, U, N extends I, A extends I, S, T, X> extends SampleApp<I, U, N, A, S, T, X>024 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();026 final GxDocumentBuilderFactory<N, S> factory = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);028 final GxDocumentBuilder<N> builder = factory.newDocumentBuilder();049 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();052 final Resolved<InputStream> source = resolver.resolveInputStream(systemId);054 final GxDocumentBuilderFactory<N, S> factory = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);056 final GxDocumentBuilder<N> builder = factory.newDocumentBuilder();058 final N document = builder.parse(source.getResource(), source.getSystemId());062 assertEquals(NodeKind.DOCUMENT, model.getNodeKind(document));068 final S namespaceURI = nameBridge.symbolize("http://www.example.com");070 final N from = model.getFirstChildElementByName(email, namespaceURI, localName);036 import com.tibco.gxml.sa.processor.serialization.api.GxSerializerFactory;037 import com.tibco.gxml.sa.processor.serialization.impl.SerializerFactory;043 import com.tibco.gxmlsa.processor.org.exslt.strings.ExsltStringsFunctionGroup;045 public abstract class SnoopySample<I, U, N extends I, A extends I, S, T, X> extends SampleApp<I, U, N, A, S, T, X>049 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();053 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);059 final GxSequenceHandler<A, S, T> serializer = sf.newSerializer(sw);070 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();074 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);080 final GxSequenceHandler<A, S, T> serializer = sf.newSerializer(sw);089 private N documentFromString(final GxProcessingContext<I, U, N, A, S, T, X> pcx)091 final String strval = "" + "<?xml version='1.0' encoding='UTF-8'?>" + "<book isbn='0836217462'>" + " <title>Being a Dog Is a Full-Time Job</title>" + " <author>Charles M. Schultz</author>" + " <character>" + " <name>Snoopy</name>" + " <since>1950-10-04</since>" + " </character>" + "</book>";093 final GxDocumentBuilderFactory<N, S> factory = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);095 final GxDocumentBuilder<N> builder = factory.newDocumentBuilder();107 private N documentFromEvents(final GxProcessingContext<I, U, N, A, S, T, X> pcx)120 final GxFragmentBuilder<N, A, S, T> builder = pcx.newFragmentBuilder();122 // Note: Using try...finally not only ensures that elements get closed when errors123 // occur, it also helps to remind you to end elements and makes the levels in131 builder.attribute(NULL_NS_URI, ISBN, "", "0836217462");190 public void testExample() throws ParserConfigurationException, IOException, GxException, ExprException, URISyntaxException192 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();197 final Resolved<InputStream> xmlInput = resolver.resolveInputStream(xmlSystemId);199 final GxDocumentBuilderFactory<N, S> f = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);203 final N document = builder.parse(xmlInput.getResource(), xmlInput.getSystemId());206 final Resolved<InputStream> xslInput = resolver.resolveInputStream(xslSystemId);208 final GxTransformBuilder<I, U, N, A, S, T, X> compiler = new XSLTransformBuilder<I, U, N, A, S, T, X>(pcx);210 // poem.xsl uses version="2.0", but we want to use XPath 1.0 compatibility mode214 final GxTransform<I, U, N, A, S, T, X> compiled = compiler.prepareTransform(xslInput.getResource(), xslInput.getSystemId());216 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);225 final GxSequenceHandler<A, S, T> handler = sf.newSerializer(w);227 final GxTransformer<I, U, N, A, S, T, X> transformer = compiled.newTransformer();232 public void testVariableBinding() throws ParserConfigurationException, IOException, GxException, ExprException, URISyntaxException234 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();239 final Resolved<InputStream> xslInput = resolver.resolveInputStream(xslSystemId);241 final GxTransformBuilder<I, U, N, A, S, T, X> compiler = new XSLTransformBuilder<I, U, N, A, S, T, X>(pcx);243 final GxTransform<I, U, N, A, S, T, X> compiled = compiler.prepareTransform(xslInput.getResource(), xslInput.getSystemId());245 final GxTransformer<I, U, N, A, S, T, X> transformer = compiled.newTransformer();249 final GxVariantBridge<I, N, A, X> valueBridge = pcx.getVariantBridge();253 transformer.bindVariableValue(nameBridge.name(new QName("http://www.example.com", "from")), valueBridge.stringValue("Julie"));259 assertEquals(NodeKind.DOCUMENT, model.getNodeKind(documentNode));261 final N to = model.getFirstChildElementByName(email, nameBridge.symbolize("http://www.example.com"), nameBridge.symbolize("to"));263 final N from = model.getFirstChildElementByName(email, null, nameBridge.symbolize("from"));265 final N again = model.getFirstChildElementByName(email, nameBridge.symbolize("http://www.example.com"), null);269 public void testExternalFunctions() throws ParserConfigurationException, IOException, GxException, ExprException, URISyntaxException271 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();276 final Resolved<InputStream> xmlInput = resolver.resolveInputStream(xmlSystemId);278 final GxDocumentBuilderFactory<N, S> f = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);282 final N document = builder.parse(xmlInput.getResource(), xmlInput.getSystemId());285 final Resolved<InputStream> xslInput = resolver.resolveInputStream(xslSystemId);287 final GxTransformBuilder<I, U, N, A, S, T, X> compiler = new XSLTransformBuilder<I, U, N, A, S, T, X>(pcx);290 final ExsltStringsFunctionGroup<I, U, N, A, S, T, X> functions = new ExsltStringsFunctionGroup<I, U, N, A, S, T, X>(namespaceURI, pcx);294 final GxTransform<I, U, N, A, S, T, X> compiled = compiler.prepareTransform(xslInput.getResource(), xslInput.getSystemId());296 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);305 final GxSequenceHandler<A, S, T> handler = sf.newSerializer(w);307 final GxTransformer<I, U, N, A, S, T, X> transformer = compiled.newTransformer();314 public void testHotel() throws ParserConfigurationException, IOException, GxException, ExprException, URISyntaxException316 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();321 final Resolved<InputStream> xmlInput = resolver.resolveInputStream(xmlSystemId);323 final GxDocumentBuilderFactory<N, S> f = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);327 final N document = builder.parse(xmlInput.getResource(), xmlInput.getSystemId());330 final Resolved<InputStream> xslInput = resolver.resolveInputStream(xslSystemId);332 final GxTransformBuilder<I, U, N, A, S, T, X> compiler = new XSLTransformBuilder<I, U, N, A, S, T, X>(pcx);334 final GxTransform<I, U, N, A, S, T, X> compiled = compiler.prepareTransform(xslInput.getResource(), xslInput.getSystemId());336 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);345 final GxSequenceHandler<A, S, T> handler = sf.newSerializer(w);347 final GxTransformer<I, U, N, A, S, T, X> transformer = compiled.newTransformer();349 final SmName<S> varName = nameBridge.name(new QName("MessageData"));350 final GxVariantBridge<I, N, A, X> valueBridge = pcx.getVariantBridge();362 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();365 final GxLanguageToolKit<I, U, N, A, S, T, X> xtk = new LanguageToolKit<I, U, N, A, S, T, X>(pcx);367 final GxExprContextStaticArgs<I, U, N, A, S, T, X> senv = xtk.newStaticContextArgs();370 senv.getInScopeNamespaces().declarePrefix("nuts", nameBridge.symbolize(NAMESPACE));372 final SnoopyFunctionGroup<I, U, N, A, S, T, X> peanutsFunctionGroup = new SnoopyFunctionGroup<I, U, N, A, S, T, X>(NAMESPACE, pcx);376 final GxMetaBridge<A, S, T> metaBridge = pcx.getMetaBridge();378 final ExprResult<I, U, N, A, S, T, X> prepared = xtk.prepare("nuts:GetVariableProperty('foo','bar')", metaBridge.emptyType(), senv);382 final GxExprContextDynamicArgs<I, U, N, A, S, T, X> darg = xtk.newDynamicContextArgs();024 import com.tibco.gxml.sa.common.helpers.SmAtomBridgeOnGxAtomBridgeAdapter;027 public abstract class BookValidatingParsingSample<I, U, N extends I, A extends I, S, T, X> extends SampleApp<I, U, N, A, S, T, X>039 final GxProcessingContext<I, U, N, A, S, T, X> pcx = app.newProcessingContext();041 final Resolved<InputStream> resource = getResolver().resolveInputStream(new URI("email.xsd"));043 final W3cXmlSchemaParser<A, S> parser = new W3cXmlSchemaParser<A, S>(new SmAtomBridgeOnGxAtomBridgeAdapter<A, S>(pcx.getAtomBridge()));045 final SmComponentBag<A, S> components = parser.parse(resource.getLocation(), resource.getResource(), resource.getSystemId(), errors, args, pcx);056 final Resolved<InputStream> xmlInput = resolver.resolveInputStream(xmlURI);058 final GxDocumentBuilderFactory<N, S> factory = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);061 factory.setValidating(true, nameBridge.name(new QName("http://www.example.com", "email")));063 final GxDocumentBuilder<N> builder = factory.newDocumentBuilder();068 final N doc = builder.parse(xmlInput.getResource(), xmlInput.getSystemId());078 final S namespaceURI = nameBridge.symbolize("http://www.example.com");079 final N sent = model.getFirstChildElementByName(email, namespaceURI, nameBridge.symbolize("sent"));089 assertEquals("2008-03-23T14:49:30-05:00", atomBridge.getC14NForm(dateTime));017 public abstract class BookNavigationParsingSample<I, U, N extends I, A extends I, S, T, X> extends SampleApp<I, U, N, A, S, T, X>023 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();026 final Resolved<InputStream> source = resolver.resolveInputStream(systemId);028 final GxDocumentBuilderFactory<N, S> factory = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);030 final GxDocumentBuilder<N> builder = factory.newDocumentBuilder();032 final N doc = builder.parse(source.getResource(), source.getSystemId());038 final S namespaceURI = nameBridge.symbolize("http://www.example.com/books");040 final N inventory = model.getFirstChildElementByName(doc, namespaceURI, nameBridge.symbolize("inventory"));042 for (final N book : model.getChildElementsByName(inventory, namespaceURI, nameBridge.symbolize("book")))046 for (final N author : model.getChildElementsByName(book, namespaceURI, nameBridge.symbolize("author")))048 if (model.getStringValue(author).equals("Neal Stephenson"))057 final N title = model.getFirstChildElementByName(book, namespaceURI, nameBridge.symbolize("title"));068 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();073 final Resolved<InputStream> source = resolver.resolveInputStream(systemId);075 final GxDocumentBuilderFactory<N, S> factory = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);077 final GxDocumentBuilder<N> builder = factory.newDocumentBuilder();079 final N po = builder.parse(source.getResource(), source.getSystemId());083 final N items = model.getFirstChildElementByName(root, null, nameBridge.symbolize("items"));086 for (final N item : model.getChildElementsByName(items, null, nameBridge.symbolize("item")))088 System.out.println("partNum:" + model.getAttributeStringValue(item, nameBridge.empty(), nameBridge.symbolize("partNum")));090 final N price = model.getFirstChildElementByName(item, null, nameBridge.symbolize("USPrice"));091 total += Double.valueOf(model.getStringValue(price)).doubleValue();027 public abstract class MutableSample<I, U, N extends I, A extends I, S, T, X> extends MutableApp<I, U, N, A, S, T, X>030 * This is a test of basic mutability through the optional mutability API.037 final GxProcessingContextMutable<I, U, N, A, S, T, X> pcx = newProcessingContext();046 assertEquals(NodeKind.DOCUMENT, model.getNodeKind(documentNode));053 final S namespaceURI = nameBridge.symbolize("http://www.example.com");056 final N documentElement = model.createElement(owner, namespaceURI, localName, prefix);063 model.setAttribute(documentElement, nameBridge.empty(), nameBridge.symbolize("version"), XMLConstants.DEFAULT_NS_PREFIX, atomBridge.wrapAtom(atomBridge.createDecimal(BigDecimal.valueOf(2.7))));013 import com.tibco.gxml.sa.processor.serialization.api.GxDocumentSerializer;015 import com.tibco.gxml.sa.processor.serialization.api.GxSerializerFactory;017 import com.tibco.gxml.sa.processor.serialization.impl.SerializerFactory;019 public abstract class IntroSerializationSample<I, U, N extends I, A extends I, S, T, X> extends SampleApp<I, U, N, A, S, T, X>021 public void exampleUsingDocumentSerializer(final N node, final GxProcessingContext<I, U, N, A, S, T, X> pcx)023 final GxDocumentSerializerFactory<N, S> sf = new DocumentSerializerFactory<I, U, N, A, S, T, X>(pcx);032 final GxDocumentSerializer<N> serializer = sf.newDocumentSerializer(sw);039 public void exampleUsingSequenceHandler(final N node, final GxProcessingContext<I, U, N, A, S, T, X> pcx)041 final GxSerializerFactory<I,U,N,A, S, T,X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);051 final GxSequenceHandler<A, S, T> serializer = sf.newSerializer(sw);019 import com.tibco.gxmlsa.processor.org.exslt.math.ExsltMathFunctionGroup;021 public abstract class XPathSample<I, U, N extends I, A extends I, S, T, X> extends SampleApp<I, U, N, A, S, T, X>025 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();027 // For demonstration purposes, register the language toolkit with the processing context.032 GxLanguageToolKit<I, U, N, A, S, T, X> xtk = pcx.getProcessor("xyz", GxLanguageToolKit.class);034 final GxExprContextStaticArgs<I, U, N, A, S, T, X> sarg = xtk.newStaticContextArgs();036 final GxMetaBridge<A, S, T> metaBridge = pcx.getMetaBridge();038 final ExprResult<I, U, N, A, S, T, X> prepared = xtk.prepare("concat('Hello', ', ', 'World', '!')", metaBridge.emptyType(), sarg);041 final GxExprContextDynamicArgs<I, U, N, A, S, T, X> darg = xtk.newDynamicContextArgs();050 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();052 final GxLanguageToolKit<I, U, N, A, S, T, X> xtk = new LanguageToolKit<I, U, N, A, S, T, X>(pcx);054 final GxExprContextStaticArgs<I, U, N, A, S, T, X> statArgs = xtk.newStaticContextArgs();058 final SmName<S> varName = new SmName<S>(nameBridge.symbolize("x"), nameBridge);060 final GxMetaBridge<A, S, T> metaBridge = pcx.getMetaBridge();061 statArgs.bindVariableType(varName, metaBridge.getType(SmNativeType.STRING));066 final ExprResult<I, U, N, A, S, T, X> prepared = xtk.prepare(es, sfocus, statArgs);068 final GxExprContextDynamicArgs<I, U, N, A, S, T, X> dynArgs = xtk.newDynamicContextArgs();071 final GxVariantBridge<I, N, A, X> valueBridge = pcx.getVariantBridge();084 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();087 final GxLanguageToolKit<I, U, N, A, S, T, X> xtk = new LanguageToolKit<I, U, N, A, S, T, X>(pcx);089 final GxExprContextStaticArgs<I, U, N, A, S, T, X> sarg = xtk.newStaticContextArgs();090 sarg.getInScopeNamespaces().declarePrefix("math", nameBridge.symbolize("http://exslt.org/math"));091 final ExsltMathFunctionGroup<I, U, N, A, S, T, X> exsltMathFunctionGroup = new ExsltMathFunctionGroup<I, U, N, A, S, T, X>("http://exslt.org/math", pcx);092 sarg.setFunctionSigns("http://exslt.org/math", exsltMathFunctionGroup);093 // The function implementations can be provided now or just prior to execution.094 sarg.setFunctionImpls("http://exslt.org/math", exsltMathFunctionGroup);096 final GxMetaBridge<A, S, T> metaBridge = pcx.getMetaBridge();098 final ExprResult<I, U, N, A, S, T, X> prepared = xtk.prepare("math:exp(1)", metaBridge.emptyType(), sarg);102 final GxExprContextDynamicArgs<I, U, N, A, S, T, X> darg = xtk.newDynamicContextArgs();103 // Here we also (redundantly) provide the function implementations just prior to execution.104 darg.setFunctionImpls("http://exslt.org/math", exsltMathFunctionGroup);113 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();115 final GxLanguageToolKit<I, U, N, A, S, T, X> xtk = new LanguageToolKit<I, U, N, A, S, T, X>(pcx);117 final GxExprContextStaticArgs<I, U, N, A, S, T, X> sarg = xtk.newStaticContextArgs();119 final GxMetaBridge<A, S, T> metaBridge = pcx.getMetaBridge();121 final ExprResult<I, U, N, A, S, T, X> prepared = xtk.prepare("'Hello'", metaBridge.emptyType(), sarg);122 /* final GxExpr<I, U, N, A, S, T, X> expr = */prepared.getExpr();031 import com.tibco.gxml.sa.processor.serialization.api.GxSerializerFactory;032 import com.tibco.gxml.sa.processor.serialization.impl.SerializerFactory;037 import com.tibco.gxmlsa.processor.org.exslt.strings.ExsltStringsFunctionGroup;039 public abstract class XSLTSample<I, U, N extends I, A extends I, S, T, X> extends SampleApp<I, U, N, A, S, T, X>041 public void testExample() throws ParserConfigurationException, IOException, GxException, ExprException, URISyntaxException043 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();044 final GxMetaBridge<A, S, T> metaBridge = pcx.getMetaBridge();050 final Resolved<InputStream> xmlInput = resolver.resolveInputStream(xmlSystemId);052 final GxDocumentBuilderFactory<N, S> f = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);057 final N document = builder.parse(xmlInput.getResource(), xmlInput.getSystemId());060 final Resolved<InputStream> xslInput = resolver.resolveInputStream(xslSystemId);062 final GxTransformBuilder<I, U, N, A, S, T, X> compiler = new XSLTransformBuilder<I, U, N, A, S, T, X>(pcx);069 final T documentType = metaBridge.documentType(metaBridge.elementType(new SmName<S>(null, null, nameBridge), metaBridge.getType(SmNativeType.UNTYPED), false));072 final GxTransform<I, U, N, A, S, T, X> compiled = compiler.prepareTransform(xslInput.getResource(), xslInput.getSystemId());074 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);083 final GxSequenceHandler<A, S, T> handler = sf.newSerializer(w);085 final GxTransformer<I, U, N, A, S, T, X> transformer = compiled.newTransformer();099 final GxTransformBuilder<I, U, N, A, S, T, X> builder = new XSLTransformBuilder<I, U, N, A, S, T, X>(pcx);101 final GxTransform<I, U, N, A, S, T, X> transform = builder.prepareTransform(new StringReader("<x xsl:version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'></x>"), new URI(""));103 final GxTransformer<I, U, N, A, S, T, X> transformer = transform.newTransformer();121 public void skipVariableBinding() throws ParserConfigurationException, IOException, GxException, ExprException, URISyntaxException123 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();128 final Resolved<InputStream> xslInput = resolver.resolveInputStream(xslSystemId);130 final GxTransformBuilder<I, U, N, A, S, T, X> compiler = new XSLTransformBuilder<I, U, N, A, S, T, X>(pcx);132 final GxTransform<I, U, N, A, S, T, X> compiled = compiler.prepareTransform(xslInput.getResource(), xslInput.getSystemId());134 final GxTransformer<I, U, N, A, S, T, X> transformer = compiled.newTransformer();138 final GxVariantBridge<I, N, A, X> valueBridge = pcx.getVariantBridge();142 transformer.bindVariableValue(nameBridge.name(new QName("http://www.example.com", "from")), valueBridge.stringValue("Julie"));148 assertEquals(NodeKind.DOCUMENT, model.getNodeKind(documentNode));150 final N to = model.getFirstChildElementByName(email, nameBridge.symbolize("http://www.example.com"), nameBridge.symbolize("to"));152 final N from = model.getFirstChildElementByName(email, null, nameBridge.symbolize("from"));154 final N again = model.getFirstChildElementByName(email, nameBridge.symbolize("http://www.example.com"), null);158 public void skipExternalFunctions() throws ParserConfigurationException, IOException, GxException, ExprException, URISyntaxException160 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();164 final Resolved<InputStream> xmlInput = resolver.resolveInputStream(new URI("exslt.xml"));166 final GxDocumentBuilderFactory<N, S> f = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);170 final N document = builder.parse(xmlInput.getResource(), xmlInput.getSystemId());172 final Resolved<InputStream> xslInput = resolver.resolveInputStream(new URI("exslt.xsl"));174 final GxTransformBuilder<I, U, N, A, S, T, X> compiler = new XSLTransformBuilder<I, U, N, A, S, T, X>(pcx);177 final ExsltStringsFunctionGroup<I, U, N, A, S, T, X> functions = new ExsltStringsFunctionGroup<I, U, N, A, S, T, X>(namespaceURI, pcx);181 final GxTransform<I, U, N, A, S, T, X> compiled = compiler.prepareTransform(xslInput.getResource(), xslInput.getSystemId());183 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);192 final GxSequenceHandler<A, S, T> handler = sf.newSerializer(w);194 final GxTransformer<I, U, N, A, S, T, X> transformer = compiled.newTransformer();201 public void skipHotel() throws ParserConfigurationException, IOException, GxException, ExprException, URISyntaxException203 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();207 final Resolved<InputStream> xmlInput = resolver.resolveInputStream(new URI("hotel.xml"));209 final GxDocumentBuilderFactory<N, S> f = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);213 final N document = builder.parse(xmlInput.getResource(), xmlInput.getSystemId());215 final Resolved<InputStream> xslInput = resolver.resolveInputStream(new URI("hotel.xsl"));217 final GxTransformBuilder<I, U, N, A, S, T, X> compiler = new XSLTransformBuilder<I, U, N, A, S, T, X>(pcx);219 final GxTransform<I, U, N, A, S, T, X> compiled = compiler.prepareTransform(xslInput.getResource(), xslInput.getSystemId());221 final GxTransformer<I, U, N, A, S, T, X> transformer = compiled.newTransformer();223 final SmName<S> varName = nameBridge.name(new QName("MessageData"));224 final GxVariantBridge<I, N, A, X> valueBridge = pcx.getVariantBridge();233 assertEquals(NodeKind.DOCUMENT, model.getNodeKind(documentNode));234 final N searchHotelRequest = model.getFirstChildElement(documentNode);235 final N parameters = model.getFirstChildElementByName(searchHotelRequest, nameBridge.symbolize("http://xmlns.example.com/1189038295781"), nameBridge.symbolize("parameters"));236 final N searchHotel = model.getFirstChildElementByName(parameters, nameBridge.symbolize("http://www.xyzcorp/procureservice/QueryGDS_Europe/"), nameBridge.symbolize("searchHotel"));237 final N country = model.getFirstChildElementByName(searchHotel, nameBridge.symbolize("http://www.xyzcorp/procureservice/QueryGDS_Europe/"), nameBridge.symbolize("country"));021 import com.tibco.gxml.sa.processor.serialization.api.GxSerializerFactory;022 import com.tibco.gxml.sa.processor.serialization.impl.SerializerFactory;029 public abstract class XQuerySample<I, U, N extends I, A extends I, S, T, X> extends SampleApp<I, U, N, A, S, T, X>034 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();036 final GxXQDataSource<I, U, N, A, S, T, X> ds = new XQEngine<I, U, N, A, S, T, X>(pcx);038 final GxXQConnection<I, U, N, A, S, T, X> conn = ds.getConnection();040 final String expression = "<x>{text{for $i in (1,2,3,4) return $i * 2}}</x>";042 final GxXQPreparedExpression<I, U, N, A, S, T, X> expr = conn.prepareExpression(expression);044 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);048 final GxSequenceHandler<A, S, T> handler = sf.newSerializer(sw);059 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();061 final GxXQDataSource<I, U, N, A, S, T, X> ds = new XQEngine<I, U, N, A, S, T, X>(pcx);063 final GxXQConnection<I, U, N, A, S, T, X> conn = ds.getConnection();065 final GxXQExpression<I, U, N, A, S, T, X> expr = conn.createExpression();067 final String es = "for $n in fn:doc('catalog.xml')//item return fn:data($n/name)";079 final GxProcessingContext<I, U, N, A, S, T, X> pcx = this.newProcessingContext();081 final GxXQDataSource<I, U, N, A, S, T, X> ds = new XQEngine<I, U, N, A, S, T, X>(pcx);083 final GxXQConnection<I, U, N, A, S, T, X> conn = ds.getConnection();087 final String expression = "declare variable $x external; concat('Hello, ',$x, '!')";089 final GxXQPreparedExpression<I, U, N, A, S, T, X> expr = conn.prepareExpression(expression);091 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);096 final GxSequenceHandler<A, S, T> handler = sf.newSerializer(sw);099 final GxVariantBridge<I, N, A, X> valueBridge = pcx.getVariantBridge();101 final SmName<S> varName = new SmName<S>(nameBridge.symbolize("x"), nameBridge);115 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();117 final GxXQDataSource<I, U, N, A, S, T, X> ds = new XQEngine<I, U, N, A, S, T, X>(pcx);119 final GxXQConnection<I, U, N, A, S, T, X> conn = ds.getConnection();122 final String expression = "count((element elem {1, 'string', 1,2e3})/text())";124 final GxXQPreparedExpression<I, U, N, A, S, T, X> expr = conn.prepareExpression(expression);126 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);130 final GxSequenceHandler<A, S, T> handler = sf.newSerializer(sw);140 final GxProcessingContext<I, U, N, A, S, T, X> pcx = this.newProcessingContext();142 final GxXQDataSource<I, U, N, A, S, T, X> ds = new XQEngine<I, U, N, A, S, T, X>(pcx);144 final GxXQConnection<I, U, N, A, S, T, X> conn = ds.getConnection();152 final String expression = "(xs:untypedAtomic('1'),xs:untypedAtomic('2')) = (xs:untypedAtomic('2.0'),2.0)";154 final GxXQPreparedExpression<I, U, N, A, S, T, X> expr = conn.prepareExpression(expression);158 final GxVariantBridge<I, N, A, X> variantBridge = pcx.getVariantBridge();164 final Iterable<I> items = variantBridge.getItemSet(value);173 final GxAtomBridge<A, S> atomBridge = pcx.getAtomBridge();187 final BigInteger integer = variantBridge.getInteger(value);193 throw new AssertionError(variantBridge.getNature(value));200 final GxProcessingContext<I, U, N, A, S, T, X> pcx = this.newProcessingContext();202 final GxXQDataSource<I, U, N, A, S, T, X> ds = new XQEngine<I, U, N, A, S, T, X>(pcx);204 final GxXQConnection<I, U, N, A, S, T, X> conn = ds.getConnection();212 final String expression = "declare variable $x external; contains(string(number($x)),'NaN')";214 final GxXQPreparedExpression<I, U, N, A, S, T, X> expr = conn.prepareExpression(expression);216 final GxSerializerFactory<I, U, N, A, S, T, X> sf = new SerializerFactory<I, U, N, A, S, T, X>(pcx);221 final GxSequenceHandler<A, S, T> handler = sf.newSerializer(sw);224 final GxVariantBridge<I, N, A, X> valueBridge = pcx.getVariantBridge();226 final SmName<S> varName = new SmName<S>(nameBridge.symbolize("x"), nameBridge);022 import com.tibco.gxml.sa.common.helpers.SmAtomBridgeOnGxAtomBridgeAdapter;025 import com.tibco.gxml.sa.processor.validation.GxValidatorCacheFactory;026 import com.tibco.gxml.sa.processor.validation.ValidatorCacheFactory;029 public abstract class ValidationSample<I, U, N extends I, A extends I, S, T, X> extends SampleApp<I, U, N, A, S, T, X>034 final List<Resolved<InputStream>> resources = new LinkedList<Resolved<InputStream>>();035 resources.add(getResolver().resolveInputStream(new URI("PurchaseOrder.xsd")));040 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();042 final W3cXmlSchemaParser<A, S> parser = new W3cXmlSchemaParser<A, S>(new SmAtomBridgeOnGxAtomBridgeAdapter<A, S>(pcx.getAtomBridge()));046 pcx.register(parser.parse(resource.getLocation(), resource.getResource(), resource.getSystemId(), errors, args, pcx));052 final GxValidatorCacheFactory<A, S, T> vcf = new ValidatorCacheFactory<I, U, N, A, S, T, X>(pcx);053 final GxValidatorCache<A, S, T> vc = vcf.newValidatorCache();054 final GxContentValidator<A, S, T> validator = vc.newContentValidator();056 // Set the downstream event handler which contains annotations and typed content.061 final Resolved<InputStream> xmlInput = getResolver().resolveInputStream(new URI("PurchaseOrder.xml"));063 final GxDocumentBuilderFactory<N, S> factory = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);065 final GxDocumentBuilder<N> builder = factory.newDocumentBuilder();067 final N document = builder.parse(xmlInput.getResource(), xmlInput.getSystemId());085 final List<Resolved<InputStream>> resources = new LinkedList<Resolved<InputStream>>();086 resources.add(getResolver().resolveInputStream(new URI("PurchaseOrder.xsd")));091 final GxProcessingContext<I, U, N, A, S, T, X> pcx = newProcessingContext();092 final W3cXmlSchemaParser<A, S> parser = new W3cXmlSchemaParser<A, S>(new SmAtomBridgeOnGxAtomBridgeAdapter<A, S>(pcx.getAtomBridge()));095 pcx.register(parser.parse(resource.getLocation(), resource.getResource(), resource.getSystemId(), errors, args, pcx));102 final Resolved<InputStream> xmlInput = resolver.resolveInputStream(xmlSystemId);104 final GxDocumentBuilderFactory<N, S> factory = new DocumentBuilderFactory<I, U, N, A, S, T, X>(pcx);106 final GxDocumentBuilder<N> builder = factory.newDocumentBuilder();108 final N documentIn = builder.parse(xmlInput.getResource(), xmlInput.getSystemId());125 * This static function illustrates a helper function for validating a document tree. <br/>126 * Note that we assume that the processing context is already loaded with meta-data.135 public static <I, U, N extends I, A extends I, S, T, X> N validate(final N node, final SmExceptionHandler errors, final GxProcessingContext<I, U, N, A, S, T, X> pcx)137 final GxValidatorCacheFactory<A, S, T> vcf = new ValidatorCacheFactory<I, U, N, A, S, T, X>(pcx);140 // and stream the document in as a bunch of events (a bit like SAX, but not lexical).141 final GxValidatorCache<A, S, T> vc = vcf.newValidatorCache();143 final GxContentValidator<A, S, T> validator = vc.newContentValidator();150 final GxFragmentBuilder<N, A, S, T> builder = pcx.newFragmentBuilder();158 // Practice safe coding: We don't know what might happen if there are errors.'
Copyright © TIBCO Software Inc. All Rights Reserved.