[x3d-public] potential error in X3dToJava.xslt (setLang not called for meta statements.
Brutzman, Donald (Don) (CIV)
brutzman at nps.edu
Fri Nov 19 15:33:18 PST 2021
Sure, have fun. As (hopefully) communicated earlier in the week, current experimental way of handling xml:lang in Java is the inserted comment
.someInvcation("")/* xml:lang='' */.anotherInvocation("")
Java comments are not persistent, of course. This experimental commenting is likely to go away, if we indeed conclude next week that the XML-only attribute xml:lang='EN' is not something we want to encourage.
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: Friday, November 19, 2021 2:05 PM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
Cc: X3D Graphics public mailing list <x3d-public at web3d.org>
Subject: Re: potential error in X3dToJava.xslt (setLang not called for meta statements.
NPS WARNING: *external sender* verify before acting.
Here's the Teapot.java I was referring to: https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/java/net/x3djsonld/data/Teapot.java<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcoderextreme%2FX3DJSONLD%2Fblob%2Fmaster%2Fsrc%2Fmain%2Fjava%2Fnet%2Fx3djsonld%2Fdata%2FTeapot.java&data=04%7C01%7Cbrutzman%40nps.edu%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199121629%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=qHGe%2BAuIhpImUbqicGZG5JZc%2FeSehQdFRYEfs2hvytY%3D&reserved=0>.
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<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fx3dgraphics.com%2Fexamples%2FX3dForAdvancedModeling%2Fbuild.xml&data=04%7C01%7Cbrutzman%40nps.edu%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199131586%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=BHTDyCJajRXO%2F4EtUBSpyrfhUgXH1fz4GQe3GEihPVc%3D&reserved=0> 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://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fx3dgraphics.com%2Fexamples%2FX3dForAdvancedModeling%2FGeometricShapes%2FTeapotIndex.html&data=04%7C01%7Cbrutzman%40nps.edu%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199131586%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=G9uQ4DImongsN10uwh%2F8UkXkhGGb9YJfQGUu0xC38C0%3D&reserved=0>
* https://x3dgraphics.com/examples/X3dForAdvancedModeling/GeometricShapes/TeapotIndex.x3d<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fx3dgraphics.com%2Fexamples%2FX3dForAdvancedModeling%2FGeometricShapes%2FTeapotIndex.x3d&data=04%7C01%7Cbrutzman%40nps.edu%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199141544%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=%2B6EdtOQKsR8%2FLJ8A%2Fi51dbOUsMCrpzzBhRbC6tgmDBs%3D&reserved=0>
* https://x3dgraphics.com/examples/X3dForAdvancedModeling/GeometricShapes/TeapotIndex.java<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fx3dgraphics.com%2Fexamples%2FX3dForAdvancedModeling%2FGeometricShapes%2FTeapotIndex.java&data=04%7C01%7Cbrutzman%40nps.edu%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199141544%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=owsSQhAhkIjqfN%2BAV5cIwivsrFMXtI%2FrRJ4J6gFEyCE%3D&reserved=0>
I'm seeing TeapotIndex.java here, and Teapot.java below. Please clarify.
ant -f C:\\x3d-code\\www.web3d.org\\x3d\\content\\examples\\X3dForAdvancedModeling<http://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<https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.saxonica.com%2Fdocumentation%2Findex.html%23!using-xsl%2Fcommandline&data=04%7C01%7Cbrutzman%40nps.edu%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199151499%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=EQhogT8lv8%2BrtbOrX0yTVWMRP9KKHUs3Q%2FNfzirAiEc%3D&reserved=0>
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<http://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<http://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<https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fnodejs.org%2F&data=04%7C01%7Cbrutzman%40nps.edu%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199161459%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=NrqkhJjL5ATSQR2tJY%2FmeUaXsqnNrjKbUp8mTxC38s0%3D&reserved=0>
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<http://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<http://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<mailto: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><mailto:yottzumm at gmail.com>
Sent: Thursday, November 18, 2021 2:31 AM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu><mailto:brutzman at nps.edu>; X3D Graphics public mailing list <x3d-public at web3d.org><mailto: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%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199161459%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=DVRDzLRhQlnbdPUiJMNbbcOgzeFTWD%2Fka%2F%2FYbKpbNRU%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%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199171409%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=2nJQuOY35cNZtpP9BZJtS6KYIkLtmby8Qrk%2FTNIa4%2FE%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%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199171409%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=K%2FcgPheSXw1l%2F35QKP6mJjNSzNhyP3vzWU9tZc0g46A%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%7Cf1103a63e2b14940b58708d9aba8a973%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637729564199181362%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=kqacXNS%2B4ttWgAB0ZPmWEQfTxliZ%2B8yPqshfExzq8Ns%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/2bb66771/attachment-0001.html>
More information about the x3d-public
mailing list