[x3d-public] `ant all` in x3d/stylesheets/java/node (missing jar); containerField_ALTERNATE_VALUES correction

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Fri Dec 31 09:20:35 PST 2021


Please see the X3DJSAIL web page for further details on building things yourself.  Specific suggested build improvements, problem identification, and feature requests are always welcome.


  *   X3DJSAIL, Codebase Production
  *   https://www.web3d.org/specifications/java/X3DJSAIL.html#Codebase

That includes link to typical build output for me, which you can use for comparison:

  *   https://www.web3d.org/specifications/java/build.out.X3DJSAIL.txt

Another output log is also provided for building examples.

  *   X3DJSAIL Examples
  *   https://www.web3d.org/specifications/java/X3DJSAIL.html#Examples
  *   https://www.web3d.org/specifications/java/examples/HelloWorldProgramOutput.java
  *   https://www.web3d.org/specifications/java/examples/HelloWorldProgramOutputLog.txt

Build logs are maintained in version control so you can also check history of project evolution.


  *   Regarding X3D case in point: yes each of the Metadata nodes might indeed appear as either 'metadata' field within other nodes, or as 'value' field of a parent MetadataSet node.

As you also noted, X3DUOM is correct.

Aha moment: and so, can confirm accuracy of your note below that the following autogenerated statement for each of the X3DJSAIL Metadata nodes is mistaken:


  *   containerField_ALTERNATE_VALUES = new String[] { "value", "value" }; // type containerFieldChoicesMetadata

Now fixed as:


  *   containerField_ALTERNATE_VALUES = new String[] { "value", "metadata" }; // type containerFieldChoicesMetadata

Thanks for that.  Will deploy corrected source in updated build later today.

Hope all this build detail helps, have fun with X3DJSAIL!  8)

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, December 30, 2021 10:33 PM
To: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>; X3D Graphics public mailing list <x3d-public at web3d.org>
Subject: Re: `ant all` in x3d/stylesheets/java/node (missing jar)

On 12/24/21 03:01, John Carlson wrote:
Note: development file.

Exception thrown by running `ant all` in x3d/stylesheets/java/node

Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: Invalid setContainerFieldOverride() value='metadata', legal values for MetadataSet are containerField_ALTERNATE_VALUES='"value" "value"'

No longer appears (see log below).  I am not sure what what changed.

I think what's happening is the X3DJSAIL jar is not being generated in x3d/stylesheets/java/jars.

That's the problem!

Please ensure that the X3DJSAIL jar is being generated from the stylesheet

Thanks!

John
This appears to be relevant from log belowCreateX3dSceneAccessInterfaceJava.xslt:

setContainerFieldOverride() value='metadata', legal values for MetadataSet are containerField_ALTERNATE_VALUES='"value" "value"'

I haven't worked with this code in a long time, but my guess would be that alternate values of the containerField would be /metadata/ and /value/

Here's X3DUOM:

            <containerField default="value" type="containerFieldChoicesMetadata"/>

[snip]

      <SimpleType name="containerFieldChoicesMetadata"
                  baseType="xs:NMTOKEN"
                  appinfo="containerFieldChoicesMetadata lists the allowed containerField enumeration values for Metadata nodes: "value" if providing information and parent node is MetadataSet collection, otherwise default "metadata" if providing information about parent node."
documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField">
         <enumeration value="metadata"
                      appinfo="this node provides metadata information regarding its parent node."/>
         <enumeration value="value"
                      appinfo="parent node is MetadataSet, this node is providing information as part of a MetadataSet collection."/>
      </SimpleType>


I'll rebuild X3DJSAIL.  Rebuilding X3DJSAIL did not work.

MetadataSet.java looks like this:

342                containerField_ALTERNATE_VALUES = new String[] { "value", "value" }; // type containerFieldChoicesMetadata

>From the CreateX3dSceneAccessInterfaceJava.xslt:

<xsl:text>
        setContainerFieldOverride(""); // ensuring default value used
                containerField_ALTERNATE_VALUES = new String[] { "</xsl:text>
<xsl:value-of select="InterfaceDefinition/containerField/@default"/>
<xsl:text>"</xsl:text>

I'm lost at this point.  It would seem like you would like to get the values out of the SimpleType enumeration.  Perhaps something is incomplete?


Run (see subject) log:

[echo] Run test 1:
     [echo] org.web3d.x3d.jsail.CommandLine examples/HelloWorldProgramOutput.x3d -tojs -toFile examples/HelloWorldProgramOutput.Node.js
     [java] parameter: source file HelloWorldProgramOutput.x3d filesize 23474 bytes
     [java] CommandLine parameter: "-tojs" for conversion to X3DJSONLD JavaScript source
     [java] CommandLine parameter: "-toFile" "examples/HelloWorldProgramOutput.Node.js" for result file name root examples/HelloWorldProgramOutput.Node
     [java] Parsing using Document Object Model (DOM) based X3DLoaderDOM...
     [java] [X3DLoaderDOM] <meta name='info' content='continued development and testing in progress'/>
     [java] convert to JS JavaScript:
     [java] Note: toFileStylesheetConversion(X3dToNodeJS.xslt) is overwriting prior file examples/HelloWorldProgramOutput.Node.js
     [java] className='HelloWorldProgramOutput.Node' has illegal character(s) ( -.,;) replaced with '_' underscore character. newClassName='HelloWorldProgramOutput_Node'
     [java] file conversion successful: HelloWorldProgramOutput.Node.js (37781 bytes)
     [java] parameter: source file Json.x3d filesize 22435 bytes
     [java] CommandLine parameter: "-tojs" for conversion to X3DJSONLD JavaScript source
     [java] CommandLine parameter: "-toFile" "examples/Json.js" for result file name root examples/Json
     [java] Parsing using Document Object Model (DOM) based X3DLoaderDOM...
     [java] Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: Invalid setContainerFieldOverride() value='metadata', legal values for MetadataSet are containerField_ALTERNATE_VALUES='"value" "value"'
     [java]     at org.web3d.x3d.jsail.X3DConcreteNode.setContainerFieldOverride(X3DConcreteNode.java:401)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:631)
     [java] [X3DLoaderDOM] <meta name='info' content='continued development and testing in progress'/>    at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:490)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:453)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.loadModelFromFileX3D(X3DLoaderDOM.java:247)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.loadModelFromFileX3D(X3DLoaderDOM.java:231)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.loadModelFromFileX3D(X3DLoaderDOM.java:205)
     [java]     at org.web3d.x3d.jsail.CommandLine.run(CommandLine.java:914)
     [java]     at org.web3d.x3d.jsail.CommandLine.main(CommandLine.java:234)
     [java] Java Result: 1
     [java] parameter: source file Quotes.x3d filesize 23111 bytes
     [java] CommandLine parameter: "-tojs" for conversion to X3DJSONLD JavaScript source
     [java] CommandLine parameter: "-toFile" "examples/Quotes.js" for result file name root examples/Quotes
     [java] Parsing using Document Object Model (DOM) based X3DLoaderDOM...
     [java] [X3DLoaderDOM] <meta name='info' content='tested sat: name value cannot contain embedded space character'/>
     [java] Exception in thread "main" org.web3d.x3d.sai.InvalidFieldValueException: Invalid setContainerFieldOverride() value='metadata', legal values for MetadataSet are containerField_ALTERNATE_VALUES='"value" "value"'
     [java]     at org.web3d.x3d.jsail.X3DConcreteNode.setContainerFieldOverride(X3DConcreteNode.java:401)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:631)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:619)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:490)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.toX3dModelInstance(X3DLoaderDOM.java:453)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.loadModelFromFileX3D(X3DLoaderDOM.java:247)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.loadModelFromFileX3D(X3DLoaderDOM.java:231)
     [java]     at org.web3d.x3d.jsail.X3DLoaderDOM.loadModelFromFileX3D(X3DLoaderDOM.java:205)
     [java]     at org.web3d.x3d.jsail.CommandLine.run(CommandLine.java:914)
     [java]     at org.web3d.x3d.jsail.CommandLine.main(CommandLine.java:234)
     [java] Java Result: 1
     [echo] ===========
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20211231/ba0667c8/attachment-0001.html>


More information about the x3d-public mailing list