<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Looks like Saxon9 is your own macro. I’ll have to pull it out.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Sent: </b>Wednesday, April 19, 2017 12:39 AM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: Awful classnames in X3dToJava.xlst</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 4/18/2017 9:25 PM, yottzumm@gmail.com wrote:</p><p class=MsoNormal>> How do I pass that on the command line? I must be using saxon wrong?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>every xslt processing engine has its own configuration style. same stylesheet works in each case (thank you XSLT standard).</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Using Netbeans or X3D-Edit or XMLSPy is actually quite simple: pick file, then pick stylesheet, then boom presto.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>use saxon docs, i believe there are links in the stylesheet... can add any other you suggest.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>quick search also finds</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> Running XSLT from the Command Line</p><p class=MsoNormal> http://www.saxonica.com/html/documentation/using-xsl/commandline/index.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> I will try to look at the build.xml files, but I am fading?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>each archive has a customized build.xml such as the following; heavy Ant-ness follows, somewhat documented.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> <target name="processScenes.java" description="generate java source, .class files, javadoc" depends=""></p><p class=MsoNormal> <mkdir dir="${java.classes.dir}"/></p><p class=MsoNormal> <echo message="Verifying Apache Ant XML Catalog resolver classpath: ${resolver.dir}/resolver.jar (${resolver.jar.length} bytes)"/></p><p class=MsoNormal> <for param="file.path.name"></p><p class=MsoNormal> <path></p><p class=MsoNormal> <fileset refid="x3dScenes"/></p><p class=MsoNormal> </path></p><p class=MsoNormal> <sequential></p><p class=MsoNormal> <propertyregex</p><p class=MsoNormal> property="name.short"</p><p class=MsoNormal> override="true"</p><p class=MsoNormal> input="@{file.path.name}"</p><p class=MsoNormal> regexp="([^\n]*)[\\/]([^\n]*)\.x3d"</p><p class=MsoNormal> select="\2"/></p><p class=MsoNormal> <propertyregex</p><p class=MsoNormal> property="relative.path1"</p><p class=MsoNormal> override="true"</p><p class=MsoNormal> input="@{file.path.name}"</p><p class=MsoNormal> regexp="([^\n]*)ConformanceNist[\\/]([^\n^\\^/]*)[\\/]([^\n]*)\.x3d"</p><p class=MsoNormal> select="\2"/></p><p class=MsoNormal> <propertyregex</p><p class=MsoNormal> property="relative.path2"</p><p class=MsoNormal> override="true"</p><p class=MsoNormal> input="@{file.path.name}"</p><p class=MsoNormal> regexp="([^\n]*)ConformanceNist[\\/]([^\n^\\^/]*)[\\/]([^\n^\\^/]*)([\\/][^\n]*)\.x3d"</p><p class=MsoNormal> select="\3"/></p><p class=MsoNormal> <!-- trace</p><p class=MsoNormal> <echo></echo></p><p class=MsoNormal> <echo>@file.path.name = @{file.path.name}</echo></p><p class=MsoNormal> <echo>$archive.path = ${archive.path}</echo></p><p class=MsoNormal> <echo>$relative.path1 = ${relative.path1}</echo></p><p class=MsoNormal> <echo>$relative.path2 = ${relative.path2}</echo></p><p class=MsoNormal> <echo>$name.short = ${name.short}</echo></p><p class=MsoNormal> --></p><p class=MsoNormal> <outofdate></p><p class=MsoNormal> <sourcefiles></p><p class=MsoNormal> <filelist></p><p class=MsoNormal> <file name="@{file.path.name}"/></p><p class=MsoNormal> </filelist></p><p class=MsoNormal> </sourcefiles></p><p class=MsoNormal> <mapper dir="." type="glob" from="*.x3d" to="*.java"/></p><p class=MsoNormal> <sequential></p><p class=MsoNormal> <!-- process individual files here. show full path to facilitate user loading, editing of reported files --></p><p class=MsoNormal> <echo>${archive.path}/${relative.path1}/${relative.path2}/${name.short}.java produced from ${name.short}.x3d</echo></p><p class=MsoNormal> <!-- Saxon9 is locally defined macro --></p><p class=MsoNormal> <Saxon9 scene="${relative.path1}/${relative.path2}/${name.short}"</p><p class=MsoNormal> stylesheet="${stylesheet.dir}/X3dToJava"</p><p class=MsoNormal> parameterPair1="packageName=${archive.name}.${relative.path1}.${relative.path2}"</p><p class=MsoNormal> parameterPair2= "className=${name.short}"</p><p class=MsoNormal> parameterPair3="includeLicense=true"</p><p class=MsoNormal> suffix=""</p><p class=MsoNormal> extension="java"</p><p class=MsoNormal> compiled="false"</p><p class=MsoNormal> expand="on"/></p><p class=MsoNormal> <!-- expand:on since DTD defaults needed --></p><p class=MsoNormal> <!-- <echo message="... compiling ${name.short}.java"/> --></p><p class=MsoNormal> <javac srcdir ="${relative.path1}/${relative.path2}/"</p><p class=MsoNormal> classpath="${x3djsail.stylesheets.dir}/${jsai.full.archive.jar.name}"</p><p class=MsoNormal> destdir="${java.classes.dir}"</p><p class=MsoNormal> debug="on"</p><p class=MsoNormal> verbose="${javac.verbose}"</p><p class=MsoNormal> failonerror="false"</p><p class=MsoNormal> includeantruntime="false"></p><p class=MsoNormal> <include name="${name.short}.java"/></p><p class=MsoNormal> <exclude name="newX3dScript.java"/></p><p class=MsoNormal> <exclude name="**/CircleLines.*"/></p><p class=MsoNormal> <exclude name="**/bounce2.*"/></p><p class=MsoNormal> <exclude name="**/javasrc/**/*"/></p><p class=MsoNormal> <exclude name="**/originals/**/*"/></p><p class=MsoNormal> <!-- X3dForWebAuthors --></p><p class=MsoNormal> <exclude name="KelpForestExhibit/FishSchoolCode/*"/></p><p class=MsoNormal> <!-- Basic --></p><p class=MsoNormal> <exclude name="course\ExtrusionXj3dGoldberg1999.*"/></p><p class=MsoNormal> <exclude name="development/TestRegularExpressionChecks.*"/></p><p class=MsoNormal> <exclude name="development/TestSchematronDiagnostics.*"/></p><p class=MsoNormal> <exclude name="development/QuadTreeExamples.*"/></p><p class=MsoNormal> <exclude name="development/SpinGroupInternalSubsetDeclaration.*"/></p><p class=MsoNormal> <exclude name="DistributedInteractiveSimulation/EntityProcessor*"/></p><p class=MsoNormal> <exclude name="DistributedInteractiveSimulation/BaseballBackspin/*"/></p><p class=MsoNormal> <exclude name="DistributedInteractiveSimulation/CannonProject/*"/></p><p class=MsoNormal> <exclude name="DistributedInteractiveSimulation/EntityProcessor.*"/></p><p class=MsoNormal> <exclude name="ExperimentalBinaryCompression/isenburg/**/*"/></p><p class=MsoNormal> <exclude name="ExternalAuthoringInterface/BoxEai.*"/></p><p class=MsoNormal> <exclude name="ExternalAuthoringInterface/CreateSphereEai.*"/></p><p class=MsoNormal> <exclude name="ExternalAuthoringInterface/HelixEai.*"/></p><p class=MsoNormal> <exclude name="ExternalAuthoringInterface/SwitcherEai.*"/></p><p class=MsoNormal> <exclude name="ExternalAuthoringInterface/ViewSwitchEai.*"/></p><p class=MsoNormal> <exclude name="ExternalAuthoringInterface/code/**/*"/></p><p class=MsoNormal> <exclude name="Geospatial/GeoVrmlSiteExamples/**/*"/></p><p class=MsoNormal> <exclude name="HumanoidAnimation/ClientNetListener.*"/></p><p class=MsoNormal> <exclude name="HumanoidAnimation/VoiceActivated/*"/></p><p class=MsoNormal> <exclude name="LatticeXvl/XvlShell.*"/></p><p class=MsoNormal> <exclude name="Networking/ConnectionScript.*"/></p><p class=MsoNormal> <exclude name="Networking/NetworkSensorScript.*"/></p><p class=MsoNormal> <exclude name="NURBS/NurbsCurve.*"/></p><p class=MsoNormal> <exclude name="NURBS/NurbsPatchSurface.*"/></p><p class=MsoNormal> <exclude name="NURBS/NurbsPositionInterpolator.*"/></p><p class=MsoNormal> <exclude name="ScriptConformance/originalExamples/*"/></p><p class=MsoNormal> <exclude name="ScriptConformance/SAIExample*.*"/></p><p class=MsoNormal> <exclude name="ScriptConformance/ScriptNodeEventOutControl.*"/></p><p class=MsoNormal> <exclude name="ScriptConformance/ScriptNodeFieldControl.*"/></p><p class=MsoNormal> <exclude name="ScriptConformance/vrml/**/*"/></p><p class=MsoNormal> <exclude name="ScriptConformance/originalExamples/*"/></p><p class=MsoNormal> <exclude name="StudentProjects/DeadReckoningComparisons/*"/></p><p class=MsoNormal> <exclude name="StudentProjects/melon/*"/></p><p class=MsoNormal> <exclude name="StudentProjects/Race20/**/*"/></p><p class=MsoNormal> <exclude name="X3dSpecifications/SAIExample*.*"/></p><p class=MsoNormal> <!-- ConformanceNist --></p><p class=MsoNormal> <exclude name="Miscellaneous/Script/**/*"/></p><p class=MsoNormal> <!-- Savage Defense --></p><p class=MsoNormal> <exclude name="qrcode/**/*.*"/></p><p class=MsoNormal> </javac></p><p class=MsoNormal> <echo message="now run and validate the java model"/></p><p class=MsoNormal> <echo message="java -classpath ${java.classes.dir};${x3djsail.stylesheets.dir}/${jsai.full.archive.jar.name};${saxon.dir}/${saxon.jar} ${archive.name}.${relative.path1}.${name.short}"/></p><p class=MsoNormal> <java classname="${archive.name}.${relative.path1}.${relative.path2}.${name.short}"</p><p class=MsoNormal> classpath="${java.classes.dir};${saxon.dir}/${saxon.jar};${x3djsail.stylesheets.dir}/${jsai.full.archive.jar.name}"</p><p class=MsoNormal> failonerror="false"/></p><p class=MsoNormal> </sequential></p><p class=MsoNormal> </outofdate></p><p class=MsoNormal> </sequential></p><p class=MsoNormal> </for></p><p class=MsoNormal> <antcall target="echo.timestamp"/></p><p class=MsoNormal> <echo>processScenes.java complete.</echo></p><p class=MsoNormal> <antcall target="processScenes.javadoc"/></p><p class=MsoNormal> </target></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This uses a Saxon9 macro which is also in there:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> <!-- excerpted/adapted from "SAXON XSLT Processing with Ant" by James Fuller, http://ablog.apress.com/?p=753 --></p><p class=MsoNormal> <!-- http://www.saxonica.com/documentation9.0/using-xsl/commandline.html --></p><p class=MsoNormal> <macrodef name="Saxon9" description="Invoke XSLT transformation on passed scene using passed stylesheet"></p><p class=MsoNormal> <attribute name="scene"/></p><p class=MsoNormal> <attribute name="stylesheet"/></p><p class=MsoNormal> <attribute name="suffix" default=""/></p><p class=MsoNormal> <attribute name="extension"/></p><p class=MsoNormal> <attribute name="compiled"/></p><p class=MsoNormal> <!-- http://www.saxonica.com/html/documentation/configuration/config-features.html --></p><p class=MsoNormal> <attribute name="expand" default="off"/> <!-- http://saxon.sf.net/feature/expandAttributeDefaults --></p><p class=MsoNormal> <!-- parameterPair1 must have a legal value or saxon fails mysteriously while running under jenkins! java.lang.StringIndexOutOfBoundsException: String index out of range: 0 --></p><p class=MsoNormal> <attribute name="parameterPair1" default=""/></p><p class=MsoNormal> <attribute name="parameterPair2" default=""/></p><p class=MsoNormal> <attribute name="parameterPair3" default=""/></p><p class=MsoNormal> <sequential></p><p class=MsoNormal> <!--</p><p class=MsoNormal> <echo message="Saxon9 processing @{scene}@{suffix}.@{extension} using @{stylesheet}, compiled=@{compiled}, parameterPair0=@{parameterPair0}, parameterPair1=@{parameterPair1}"/></p><p class=MsoNormal> --></p><p class=MsoNormal> <if></p><p class=MsoNormal> <equals arg1="@{compiled}" arg2="true" /></p><p class=MsoNormal> <then></p><p class=MsoNormal> <java classname="net.sf.saxon.Transform"</p><p class=MsoNormal> classpath="${saxon.dir}/${saxon.jar};${resolver.dir}/resolver.jar"</p><p class=MsoNormal> fork="${fork}"</p><p class=MsoNormal> failonerror="false"></p><p class=MsoNormal> <!-- TODO</p><p class=MsoNormal> <jvmarg value="-Dxml.catalog.files=C:/www.web3d.org/specifications/OasisXmlCatalogX3D.xml"/></p><p class=MsoNormal> <jvmarg value="-Dxml.catalog.verbosity=4"/></p><p class=MsoNormal> use the Apache commons resolver for XML Catalog resolution of online DTD, schema addresses</p><p class=MsoNormal> http://sourceforge.net/apps/mediawiki/saxon/index.php?title=XML_Catalogs</p><p class=MsoNormal> "How to use a catalog file: Using catalogs with Saxon"</p><p class=MsoNormal> http://www.sagehill.net/docbookxsl/UseCatalog.html</p><p class=MsoNormal> download resolver.jar from http://www.apache.org/dist/xerces/xml-commons (formerly http://xml.apache.org/commons/dist)</p><p class=MsoNormal> unzip package and install resolver.jar into classpath above,</p><p class=MsoNormal> must also have CatalogManager.properties in CLASSPATH</p><p class=MsoNormal> <arg value="-r:org.apache.xml.resolver.tools.CatalogResolver"/></p><p class=MsoNormal> <arg value="-x:org.apache.xml.resolver.tools.ResolvingXMLReader"/></p><p class=MsoNormal> <arg value="-y:org.apache.xml.resolver.tools.ResolvingXMLReader"/></p><p class=MsoNormal> <arg value="-u"/> --> <!-- source file name is resolved to a JAXP Source object --></p><p class=MsoNormal> <!-- <arg value="-t"/> timing information --></p><p class=MsoNormal> <!-- <arg value="-T"/> trace (voluminous) --></p><p class=MsoNormal> <arg value="-warnings:recover"/> <!-- recover after writing a warning message --></p><p class=MsoNormal> <arg value="-s:@{scene}.x3d"/> <!-- input file --></p><p class=MsoNormal> <arg value="-o:@{scene}@{suffix}.@{extension}"/><!-- output file --></p><p class=MsoNormal> <arg value="-c:@{stylesheet}.sxx"/> <!-- compiled stylesheet --></p><p class=MsoNormal> <arg value="-dtd:off"/> <!-- suppress creation of default DTD values, only use values in document --></p><p class=MsoNormal> <arg value="-expand:@{expand}"/> <!-- whether to expand (i.e. add) DTD default values (on|off) --></p><p class=MsoNormal> <arg value="@{parameterPair1}"/> <!-- parameter=value passed to stylesheet --></p><p class=MsoNormal> <arg value="@{parameterPair2}"/></p><p class=MsoNormal> <arg value="@{parameterPair3}"/></p><p class=MsoNormal> </java></p><p class=MsoNormal> </then></p><p class=MsoNormal> <else> <!-- not compiled --></p><p class=MsoNormal> <java classname="net.sf.saxon.Transform"</p><p class=MsoNormal> classpath="${saxon.dir}/${saxon.jar};${resolver.dir}/resolver.jar"</p><p class=MsoNormal> fork="${fork}"</p><p class=MsoNormal> failonerror="false"></p><p class=MsoNormal> <!-- TODO</p><p class=MsoNormal> <jvmarg value="-Dxml.catalog.files=C:/www.web3d.org/specifications/OasisXmlCatalogX3D.xml"/></p><p class=MsoNormal> <jvmarg value="-Dxml.catalog.verbosity=4"/></p><p class=MsoNormal> use the Apache commons resolver for XML Catalog resolution of online DTD, schema addresses</p><p class=MsoNormal> http://sourceforge.net/apps/mediawiki/saxon/index.php?title=XML_Catalogs</p><p class=MsoNormal> "How to use a catalog file: Using catalogs with Saxon"</p><p class=MsoNormal> http://www.sagehill.net/docbookxsl/UseCatalog.html</p><p class=MsoNormal> download resolver.jar from http://www.apache.org/dist/xerces/xml-commons (formerly http://xml.apache.org/commons/dist)</p><p class=MsoNormal> unzip package and install resolver.jar into classpath above,</p><p class=MsoNormal> must also have CatalogManager.properties in CLASSPATH</p><p class=MsoNormal> <arg value="-r:org.apache.xml.resolver.tools.CatalogResolver"/></p><p class=MsoNormal> <arg value="-x:org.apache.xml.resolver.tools.ResolvingXMLReader"/></p><p class=MsoNormal> <arg value="-y:org.apache.xml.resolver.tools.ResolvingXMLReader"/> --></p><p class=MsoNormal> <!-- <arg value="-t"/> timing information --></p><p class=MsoNormal> <!-- <arg value="-T"/> trace (voluminous) --></p><p class=MsoNormal> <arg value="-warnings:recover"/> <!-- recover after writing a warning message --></p><p class=MsoNormal> <arg value="-s:@{scene}.x3d"/></p><p class=MsoNormal> <arg value="-o:@{scene}@{suffix}.@{extension}"/></p><p class=MsoNormal> <arg value="-xsl:@{stylesheet}.xslt"/> <!-- regular stylesheet --></p><p class=MsoNormal> <arg value="-dtd:off"/> <!-- suppress creation of default DTD values, only use values in document --></p><p class=MsoNormal> <arg value="-expand:@{expand}"/> <!-- whether to expand (i.e. add) DTD default values (on|off) --></p><p class=MsoNormal> <arg value="@{parameterPair1}"/> <!-- parameter=value passed to stylesheet --></p><p class=MsoNormal> <arg value="@{parameterPair2}"/></p><p class=MsoNormal> <arg value="@{parameterPair3}"/></p><p class=MsoNormal> </java></p><p class=MsoNormal> </else></p><p class=MsoNormal> </if></p><p class=MsoNormal> </sequential></p><p class=MsoNormal> </macrodef></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don</p><p class=MsoNormal>-- </p><p class=MsoNormal>Don Brutzman Naval Postgraduate School, Code USW/Br brutzman@nps.edu</p><p class=MsoNormal>Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>