[x3d-public] potential error in X3dToJava.xslt (setLang not called for meta statements.

John Carlson yottzumm at gmail.com
Fri Nov 19 14:26:30 PST 2021


I found stripped attributes in the Java example (Teapot.java) on your 
website, but cannot verify the parameter necessary to strip default 
attribute values in your emails.  I will look more into the stylesheet 
parameters available.

Here's the file I found on the web: 
https://x3dgraphics.com/examples/X3dForAdvancedModeling/GeometricShapes/Teapot.java

(note that "Index" is missing from filename below).

John

On 11/19/21 16:05, John Carlson wrote:

> Here's the Teapot.java I was referring to: 
> https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/java/net/x3djsonld/data/Teapot.java.
>
> I verified my in email was a git diff.  The filenames are in the first 
> few lines.
>
> I will look for updates.
>
> Parallel to your code, my checked in Teapot.java, created with 
> stylesheets, looks like:
>
> .setDir("").setHttp_equiv("")/* xml:lang='' */.setScheme(""))
>
> I will look further into your referenced build.xml, I'm looking more 
> for how to do more than one file (validating with Java) *and* do to do 
> a single file validator.  I already have code to do Saxon stuff.
>
> I have one more comment below.
>
> John
>
> On 11/19/21 03:56, Brutzman, Donald (Don) (CIV) wrote:
>>
>> Thanks for report. Not sure what change or problem you are reporting 
>> however.  Further you mention Teapot but then show another example, 
>> Mooring Buoy.  Hmmm.
>>
>> I suspect that you are getting things like 
>> setDir("").setHttp_equiv("").setLang("").setScheme("") because you do 
>> not have Saxon invocation set to strip default attribute values.
>>
>> Excerpt from 
>> https://x3dgraphics.com/examples/X3dForAdvancedModeling/build.xml 
>> showing invocation parameters
>>
>>                         <!-- process individual files here. show full 
>> path to facilitate user loading, editing of reported files -->
>>
>> <echo>${archive.path}/${relative.path1}/${relative.path2}/${name.short}.x3d 
>> converted to ${name.short}.java</echo>
>>
>>                         <!-- Saxon10 is locally defined macro -->
>>
>>                         <Saxon10 
>> scene="${relative.path1}/${relative.path2}/${name.short}"
>>
>> stylesheet="${stylesheet.dir}/X3dToJava"
>>
>> parameterPair1="packageName=${archive.name}.${relative.path1}${relative.path2}"
>>
>>                         parameterPair2= "className=${name.short}"
>>
>> parameterPair3="includeLicense=true"
>>
>>                                 suffix=""
>>
>> extension="java"
>>
>> expand="on"/>
>>
>>                         <!-- expand:on since DTD defaults needed -->
>>
>>                <!-- <echo message="... compiling 
>> ${name.short}.java"/> -->
>>
>>                <javac srcdir="${relative.path1}/${relative.path2}/"
>>
>>                                includes="${name.short}.java"
>>
>> classpath="${x3djsail.stylesheets.dir}/${jsai.full.archive.jar.name}"
>>
>> destdir="${java.classes.dir}"
>>
>>                                    debug="on"
>>
>>                                   source="${java.source}"
>>
>>                                   target="${java.target}"
>>
>>                                  verbose="${javac.verbose}"
>>
>>                                  failonerror="false"
>>
>> includeantruntime="false">
>>
>> Anyway I’m not seeing what your seeing, here is my local test of Teapot:
>>
>>>> https://x3dgraphics.com/examples/X3dForAdvancedModeling/GeometricShapes/TeapotIndex.html
>>
>>>> https://x3dgraphics.com/examples/X3dForAdvancedModeling/GeometricShapes/TeapotIndex.x3d
>>
>>>> https://x3dgraphics.com/examples/X3dForAdvancedModeling/GeometricShapes/TeapotIndex.java
>>
>
> I'm seeing TeapotIndex.java here, and Teapot.java below. Please clarify.
>
>> ant -f 
>> C:\\x3d-code\\www.web3d.org\\x3d\\content\\examples\\X3dForAdvancedModeling 
>> processScenes.java
>>
>> clean.RoundTrip:
>>
>> ensuring any prior converted *RoundTrip*.* source files are cleaned 
>> out...
>>
>> processScenes.java:
>>
>> Verifying Apache Ant XML Catalog resolver classpath: 
>> C:\apache-ant-1.10.11\lib/xml-resolver-1.2.jar (84091 bytes)
>>
>> versions:
>>
>> ant -version
>>
>> Apache Ant(TM) version 1.10.11 compiled on July 10 2021
>>
>> java -version
>>
>> openjdk version "16" 2021-03-16
>>
>> OpenJDK Runtime Environment (build 16+36-2231)
>>
>> OpenJDK 64-Bit Server VM (build 16+36-2231, mixed mode, sharing)
>>
>> python -version
>>
>> Python 3.9.7
>>
>> saxon -? help
>>
>> Saxon-HE 10.6J from Saxonica
>>
>> Usage: see 
>> http://www.saxonica.com/documentation/index.html#!using-xsl/commandline
>>
>> Format: net.sf.saxon.Transform options params
>>
>> Options available: -? -a -catalog -config -cr -diag -dtd -ea -expand 
>> -explain -export -ext -im -init -it -jit -l -lib -license -m -nogo 
>> -now -ns -o -opt -or -outval -p -quit -r -relocate -repeat -s -sa 
>> -scmin -strip -t -T -target -TB -threads -TJ -Tlevel -Tout -TP 
>> -traceout -tree -u -val -versionmsg -warnings -x -xi -xmlversion -xsd 
>> -xsdversion -xsiloc -xsl -y --?
>>
>> Use -XYZ:? for details of option XYZ
>>
>> Params:
>>
>>   param=value Set stylesheet string parameter
>>
>> +param=filename       Set stylesheet document parameter
>>
>> ?param=expression     Set stylesheet parameter using XPath
>>
>> !param=value          Set serialization parameter
>>
>> ANT_HOME=C:\apache-ant-1.10.11
>>
>> JAVA_HOME=C:\Program Files\Java\openjdk\jdk-16
>>
>> PYTHONHOME=C:\Program Files\Python39
>>
>> PYTHONPATH=C:\x3d-code\www.web3d.org\x3d\stylesheets\python\x3d
>>
>> Check for X3DJSAIL ${jsail.full.archive.jar.name} or 
>> X3DJSAIL.4.0.classes.jar
>>
>> CLASSPATH=C:\x3d-code\www.web3d.org\x3d\stylesheets\java\jars\X3DJSAIL.4.0.full.jar;
>>
>> javac source/target      $java.source=1.8
>>
>> Java/JVM version    $ant.java.version=16
>>
>> Java/JVM detail version $java.version=16
>>
>> Ant version              $ant.version=Apache Ant(TM) version 1.10.11 
>> compiled on July 10 2021
>>
>> Check for node.js installation from https://nodejs.org
>>
>> v14.17.6
>>
>> lib/X3DJSAIL.4.0.full.jar -version
>>
>> X3DJSAIL version date: 12 October 2021
>>
>> Configuration settings: https://savage.nps.edu/Savage/developers.html
>>
>> ===========================================
>>
>> C:\x3d-code\www.web3d.org\x3d\content\examples\X3dForAdvancedModeling/GeometricShapes//Teapot.x3d 
>> converted to Teapot.java
>>
>> Compiling 1 source file to 
>> C:\x3d-code\www.web3d.org\x3d\content\examples\X3dForAdvancedModeling\classes
>>
>> now run and validate the java model
>>
>> java -classpath 
>> classes;../../../stylesheets/java/jars/X3DJSAIL.4.0.full.jar 
>> X3dForAdvancedModeling.GeometricShapes.Teapot
>>
>> Java program "X3dForAdvancedModeling.GeometricShapes.Teapot" 
>> self-validation test results: success
>>
>> ===================================
>>
>> echo.timestamp:
>>
>> timestamp 01:36:46 on 19 November 2021
>>
>> processScenes.java complete.
>>
>> BUILD SUCCESSFUL (total time: 5 seconds)
>>
>> all the best, Don
>>
>> -- 
>>
>> Don Brutzman  Naval Postgraduate School, Code USW/Br brutzman at nps.edu
>>
>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    
>> +1.831.656.2149
>>
>> X3D graphics, virtual worlds, navy robotics https:// 
>> faculty.nps.edu/brutzman
>>
>> *From:* John Carlson <yottzumm at gmail.com>
>> *Sent:* Thursday, November 18, 2021 2:31 AM
>> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; X3D Graphics 
>> public mailing list <x3d-public at web3d.org>
>> *Subject:* potential error in X3dToJava.xslt (setLang not called for 
>> meta statements.
>>
>> Before/after difference in Teapot.java.
>>
>> *diff --git a/src/main/java/net/x3djsonld/data/Teapot.java 
>> b/src/main/java/net/x3djsonld/data/Teapot.java*
>> *index a9fdb5619..3ad954bd0 100644*
>> *--- a/src/main/java/net/x3djsonld/data/Teapot.java*
>> *+++ b/src/main/java/net/x3djsonld/data/Teapot.java*
>> @@ -88,16 +88,16 @@public class Teapot
>>        {
>>   x3dModel = new 
>> X3D().setProfile(X3D.PROFILE_INTERCHANGE).setVersion(X3D.VERSION_3_0)
>>   .setHead(new head()
>> -    .addMeta(new meta().setName(meta.NAME_TITLE 
>>      ).setContent("Teapot.x3d").setDir("").setHttp_equiv("").setLang("").setScheme(""))
>> -    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("A 
>> mooring buoy used in Naval 
>> Harbors").setDir("").setHttp_equiv("").setLang("").setScheme(""))
>> -    .addMeta(new meta().setName(meta.NAME_CREATOR 
>>    ).setContent("LT Patrick 
>> Sullivan").setDir("").setHttp_equiv("").setLang("").setScheme(""))
>> -    .addMeta(new meta().setName(meta.NAME_CREATED 
>>    ).setContent("28 July 
>> 2006").setDir("").setHttp_equiv("").setLang("").setScheme(""))
>> -    .addMeta(new meta().setName(meta.NAME_MODIFIED 
>>   ).setContent("12 January 
>> 2014").setDir("").setHttp_equiv("").setLang("").setScheme(""))
>> -    .addMeta(new meta().setName(meta.NAME_IDENTIFIER 
>> ).setContent("https://savage.nps.edu/Savage/HarborEquipment/Buoys/MooringBuoy.x3d" 
>> <https://savage.nps.edu/Savage/HarborEquipment/Buoys/MooringBuoy.x3d>).setDir("").setHttp_equiv(""
>> ).setLang("").setScheme(""))
>> -    .addMeta(new meta().setName(meta.NAME_GENERATOR 
>>  ).setContent("VizX3D, http://www.vivaty.com/downloads/studio 
>> <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.vivaty.com%2Fdownloads%2Fstudio&data=04%7C01%7Cbrutzman%40nps.edu%7Cc0455ddce86c44084be808d9aa7e7456%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637728282827010252%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=mmchXNoHzkTbNzFBBoCmr6PTnXtA22ROWXbBMUWj0Wc%3D&reserved=0>").setDir("").setHttp_equiv("").setLang("").setSche
>> me(""))
>> -    .addMeta(new meta().setName(meta.NAME_GENERATOR 
>>  ).setContent("Wings3D, http://www.wings3d.com 
>> <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.wings3d.com%2F&data=04%7C01%7Cbrutzman%40nps.edu%7Cc0455ddce86c44084be808d9aa7e7456%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637728282827020212%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=q5xJEBPJD%2BW49vmy0d8%2B0spdSV77sOYAEzuP3E%2FQ2Q0%3D&reserved=0>").setDir("").setHttp_equiv("").setLang("").setScheme(""))
>> -    .addMeta(new meta().setName(meta.NAME_GENERATOR 
>>  ).setContent("X3D-Edit, 
>> https://savage.nps.edu/X3D-Edit").setDir("").setHttp_equiv("").setLang("").setScheme(""
>> ))
>> -    .addMeta(new meta().setName(meta.NAME_LICENSE 
>>    ).setContent("../../license.html").setDir("").setHttp_equiv("").setLang("").setScheme("")))
>> +    .addMeta(new meta().setName(meta.NAME_TITLE 
>>      ).setContent("Teapot.x3d").setDir("").setHttp_equiv("")/* 
>> xml:lang='' */.setScheme(""))
>> +    .addMeta(new meta().setName(meta.NAME_DESCRIPTION).setContent("A 
>> mooring buoy used in Naval Harbors").setDir("").setHttp_equiv("")/* 
>> xml:lang='' */.setScheme(""
>> ))
>> +    .addMeta(new meta().setName(meta.NAME_CREATOR 
>>    ).setContent("LT Patrick Sullivan").setDir("").setHttp_equiv("")/* 
>> xml:lang='' */.setScheme(""))
>> +    .addMeta(new meta().setName(meta.NAME_CREATED 
>>    ).setContent("28 July 2006").setDir("").setHttp_equiv("")/* 
>> xml:lang='' */.setScheme(""))
>> +    .addMeta(new meta().setName(meta.NAME_MODIFIED 
>>   ).setContent("12 January 2014").setDir("").setHttp_equiv("")/* 
>> xml:lang='' */.setScheme(""))
>> +    .addMeta(new meta().setName(meta.NAME_IDENTIFIER 
>> ).setContent("https://savage.nps.edu/Savage/HarborEquipment/Buoys/MooringBuoy.x3d" 
>> <https://savage.nps.edu/Savage/HarborEquipment/Buoys/MooringBuoy.x3d>).setDir("").setHttp_equiv(""
>> )/* xml:lang='' */.setScheme(""))
>> +    .addMeta(new meta().setName(meta.NAME_GENERATOR 
>>  ).setContent("VizX3D, http://www.vivaty.com/downloads/studio 
>> <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.vivaty.com%2Fdownloads%2Fstudio&data=04%7C01%7Cbrutzman%40nps.edu%7Cc0455ddce86c44084be808d9aa7e7456%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637728282827020212%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=vvFFUsxQcVIn4PvmIskqNYoWii0HQ6mVy067mDLvj2c%3D&reserved=0>").setDir("").setHttp_equiv("")/* 
>> xml:lang='' */.se
>> tScheme(""))
>> +    .addMeta(new meta().setName(meta.NAME_GENERATOR 
>>  ).setContent("Wings3D, http://www.wings3d.com 
>> <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.wings3d.com%2F&data=04%7C01%7Cbrutzman%40nps.edu%7Cc0455ddce86c44084be808d9aa7e7456%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637728282827020212%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=q5xJEBPJD%2BW49vmy0d8%2B0spdSV77sOYAEzuP3E%2FQ2Q0%3D&reserved=0>").setDir("").setHttp_equiv("")/* 
>> xml:lang='' */.setScheme(""))
>> +    .addMeta(new meta().setName(meta.NAME_GENERATOR 
>>  ).setContent("X3D-Edit, 
>> https://savage.nps.edu/X3D-Edit").setDir("").setHttp_equiv("")/* 
>> xml:lang='' */.setSche
>> me(""))
>> +    .addMeta(new meta().setName(meta.NAME_LICENSE 
>>    ).setContent("../../license.html").setDir("").setHttp_equiv("")/* 
>> xml:lang='' */.setScheme("")))
>>   .setScene(new Scene()
>>     .addChild(new Transform().setScale(0.3,0.3,0.3)
>>       .addChild(new Group("MooringBuoyWithHook")
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20211119/f4045826/attachment-0001.html>


More information about the x3d-public mailing list