[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Instance construction and use of a java.util.ArrayList
Hi,
I'm using saxonb9-1-0-8j with jdk1.7.0_05 on Unbuntu 12.04 (64 bit) and Windows 7 (Home Premium 64 bit) Attempting to use a java.util.ArrayList for going to another class needing a Java array. But first: ...in namespace area... xmlns:KabschAlignment="java:org.openscience.cdk.geometry.alignment.KabschAlignment" xmlns:cdkatom="java:org.openscience.cdk.Atom" xmlns:Point3d="java:javax.vecmath.Point3d" xmlns:ArrayList="java:java.util.ArrayList" xmlns:date="java:java.util.Date" ....... further along ....... <xsl:variable name="primary-atom-list" select="ArrayList:new()"/> <xsl:for-each select="./cml:molecule/cml:molecule/cml:atomArray/*"> <xsl:variable name="add" select="ArrayList:add($primary-atom-list, cdkatom:new(@elementType, Point3d:new(@x3, @y3, @z3)))"/> </xsl:for-each> <xsl:comment> <xsl:text> primary atoms: </xsl:text> <xsl:value-of select="$number-of-atoms"/> <xsl:text> size: </xsl:text> <xsl:value-of select="ArrayList:size($primary-atom-list)"/> </xsl:comment> ....... the size as printed in the comment is zero. I've tried simpler content for ArrayList and same zero. Also if the .... <xsl:variable name="add" select="ArrayList:add($primary-atom-list, cdkatom:new(@elementType, Point3d:new(@x3, @y3, @z3)))"/> .... is changed to .... <xsl:value-of select="ArrayList:add($primary-atom-list, cdkatom:new(@elementType, Point3d:new(@x3, @y3, @z3)))"/> .... a bunch of truetruetrue's arrive in output. ...... <xsl:variable name="primary-atom-list" select="ArrayList:new()"/> <xsl:for-each select="./cml:molecule/cml:molecule/cml:atomArray/*"> <xsl:variable name="add" select="ArrayList:add($primary-atom-list, 'test with string')"/> </xsl:for-each> <xsl:comment> <xsl:text> primary atoms: </xsl:text> <xsl:value-of select="$number-of-atoms"/> <xsl:text> size: </xsl:text> <xsl:value-of select="ArrayList:size($primary-atom-list)"/> </xsl:comment> ....... leads to zero size as well. Tried a few add's in a row instead of the for-each loop and got zero size too. Compiles and runs just fine. No errors or exceptions. The rest of the xsl works and completes. Any ideas? Do I need to make a custom class to do the work? The idea is to send two atom arrays into the KabschAlignment (which is a big algorithm not fitting xsl readily) to check for rmsd match of two chemicals or not: -------- .<?xml version="1.0"?> <!-- Collates nmr values to the starting chemical definition by selecting comparable candidate from the nmr cml document. --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:divcon="http://quantumbioinc.com/schema/divcon" xmlns:molecularmechanics="http://quantumbioinc.com/schema/molecularmechanics" xmlns:cml="http://www.xml-cml.org/schema/cml2/core" xmlns:ocml="http://www.xml-cml.org/schema" xmlns:functx="http://www.functx.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:saxon="http://saxon.sf.net" xmlns:KabschAlignment="java:org.openscience.cdk.geometry.alignment.KabschAlignment" xmlns:cdkatom="java:org.openscience.cdk.Atom" xmlns:Point3d="java:javax.vecmath.Point3d" xmlns:ArrayList="java:java.util.ArrayList" xmlns:date="java:java.util.Date" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://quantumbioinc.com/schema/divcon ../schemas/divcon.xsd" version="2.0" extension-element-prefixes="saxon"> <xsl:output method="xml" encoding="UTF-8" indent="yes"/> <!--xsl:strip-space elements="*"/--> <xsl:param name="file-path" select="."/> <xsl:function name="functx:is-value-in-sequence" as="xs:boolean" xmlns:functx="http://www.functx.com" > <xsl:param name="value" as="xs:anyAtomicType?"/> <xsl:param name="seq" as="xs:anyAtomicType*"/> <xsl:sequence select=" $value = $seq "/> </xsl:function> <xsl:template match="/"> <xsl:apply-templates select="./divcon:divcon"/> </xsl:template> <xsl:template match="divcon:divcon"> <xsl:element name="divcon:divcon" inherit-namespaces="yes"> <xsl:copy-of select="@*"/> <xsl:namespace name="cml" select="'http://www.xml-cml.org/schema/cml2/core'"/> <xsl:namespace name="xlink" select="'http://www.w3.org/1999/xlink'"/> <xsl:copy-of select="./divcon:general-quantum-mechanics"/> <xsl:copy-of select="./divcon:Hamiltonian"/> <xsl:copy-of select="./divcon:geometry-optimization"/> <xsl:copy-of select="./divcon:outputs"/> <xsl:copy-of select="./divcon:charges"/> <xsl:copy-of select="./divcon:heat-of-formation"/> <xsl:copy-of select="./divcon:solvation-free-energy"/> <xsl:copy-of select="./divcon:ionization-potential"/> <xsl:copy-of select="./divcon:dipole-moment"/> <xsl:copy-of select="./divcon:subsettings"/> <xsl:copy-of select="./divcon:divcon/self-consistent-reaction-field"/> <xsl:copy-of select="./divcon:divcon/nuclear-magnetic-resonance"/> <xsl:apply-templates select="./cml:cml"/> <xsl:apply-templates select="./divcon:benchmark-set"/> <xsl:apply-templates select="./divcon:experimental-reference-set"/> <xsl:copy-of select="./divcon:energyArray"/> <xsl:copy-of select="./divcon:partial-chargeArray"/> <xsl:copy-of select="./divcon:score-set"/> <xsl:copy-of select="./divcon:computation-status"/> </xsl:element> </xsl:template> <xsl:template match="cml:cml"> <xsl:variable name="number-of-atoms" select="count(./cml:molecule/cml:molecule/cml:atomArray/*)"/> <xsl:variable name="primary-atom-list" select="ArrayList:new()"/> <xsl:for-each select="./cml:molecule/cml:molecule/cml:atomArray/*"> <xsl:variable name="add" select="ArrayList:add($primary-atom-list, cdkatom:new(@elementType, Point3d:new(@x3, @y3, @z3)))"/> </xsl:for-each> <xsl:comment> <xsl:text> primary atoms: </xsl:text> <xsl:value-of select="$number-of-atoms"/> <xsl:text> size: </xsl:text> <xsl:value-of select="ArrayList:size($primary-atom-list)"/> </xsl:comment> <xsl:variable name="atom-array" select="document($file-path)/ocml:cml/ocml:molecule/*"/> <xsl:for-each-group select="$atom-array" group-by="count(./atom) = $number-of-atoms"> <xsl:comment> <xsl:if test="function-available('date:to-string') and function-available('date:new')"> <p><xsl:value-of select="date:to-string(date:new())"/></p> <xsl:text> </xsl:text> </xsl:if> <xsl:value-of select="local-name(.)"/> <xsl:text>: group </xsl:text> <xsl:value-of select="count(./*)"/> <xsl:text> name: </xsl:text> <xsl:value-of select="name(./*[1])"/> </xsl:comment> <xsl:variable name="atom-list" select="ArrayList:new()"/> <xsl:for-each select="./*"> <xsl:variable name="add" select="ArrayList:add($atom-list, cdkatom:new(@elementType, Point3d:new(@x3, @y3, @z3)))"/> </xsl:for-each> <xsl:variable name="kabsch-alignment" select="KabschAlignment:new(ArrayList:to-array($primary-atom-list), ArrayList:to-array($atom-list))"/> <xsl:variable name="align" select="KabschAlignment:align($kabsch-alignment)"/> <xsl:variable name="rmsd" select="KabschAlignment:get-RMSD($kabsch-alignment)"/> <xsl:comment> <xsl:text> cdk atoms: </xsl:text> <xsl:value-of select="count($atom-list)"/> <xsl:text> size: </xsl:text> <xsl:value-of select="ArrayList:size($atom-list)"/> <xsl:text> rmsd: </xsl:text> <xsl:value-of select="$rmsd"/> </xsl:comment> </xsl:for-each-group> </xsl:template> <xsl:template match="divcon:benchmark-set"> <xsl:element name="divcon:benchmark-set" inherit-namespaces="yes"> <xsl:copy-of select="./divcon:reference-mark"/> <xsl:copy-of select="./divcon:heat-of-formation"/> <xsl:copy-of select="./divcon:solvation-free-energy"/> <xsl:copy-of select="./divcon:ionization-potential"/> <xsl:copy-of select="./divcon:dipole-moment"/> </xsl:element> </xsl:template> <xsl:template match="divcon:experimental-reference-set"> <xsl:element name="divcon:experimental-reference-set" inherit-namespaces="yes"> <xsl:copy-of select="./divcon:heat-of-formation"/> <xsl:copy-of select="./divcon:solvation-free-energy"/> <xsl:copy-of select="./divcon:ionization-potential"/> <xsl:copy-of select="./divcon:dipole-moment"/> </xsl:element> </xsl:template> </xsl:stylesheet> -------
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|