<div dir="auto">I meant below instead of elsewhere.</div><div dir="auto"><br></div><div dir="auto">Oops!</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 14, 2021 at 4:47 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">I have the following Java code:<br>
<br>
grep humanoidVersion net/*/data/Kor*Mot*java|grep set<br>
net/coderextreme/data/KoreanCharacterMotionAnnexC01Jin.java: <br>
.setValue(new MetadataString().setName("humanoidVersion").setValue(new <br>
org.web3d.x3d.jsail.fields.MFString(new MFString0().getArray()))))<br>
net/coderextreme/data/KoreanCharacterMotionAnnexD01Jin.java: <br>
.setValue(new MetadataString().setName("humanoidVersion").setValue(new <br>
org.web3d.x3d.jsail.fields.MFString(new MFString0().getArray()))))<br>
net/x3djsonld/data/KoreanCharacterMotionAnnexC01Jin.java: <br>
.setMetadata(new <br>
MetadataString().setName("humanoidVersion").setValue(new String[] {"2.0"})))<br>
net/x3djsonld/data/KoreanCharacterMotionAnnexD01Jin.java: <br>
.setMetadata(new <br>
MetadataString().setName("humanoidVersion").setValue(new String[] {"2.0"})))<br>
<br>
<br>
As far as I can tell, the former 2 work, and the latter 2 do not.  Your <br>
mileage may vary.<br>
<br>
<br>
The former two were generated by the JavaSerializer.js in X3DJSONLD.<br>
<br>
The latter two were generate by the X3dToJava.xslt on sourceforge.<br>
<br>
<br>
Source code (X3D) appears here:<br>
<br>
<br>
<a href="https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/" rel="noreferrer" target="_blank">https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/</a><br>
<br>
<br>
What I'm wondering is, should setValue take an MFString as input.<br>
<br>
<br>
In:<br>
<br>
/c/x3d-code/<a href="http://www.web3d.org/x3d/stylesheets/java/src/org/web3d/x3d/sai/Core/MetadataString.java" rel="noreferrer" target="_blank">www.web3d.org/x3d/stylesheets/java/src/org/web3d/x3d/sai/Core/MetadataString.java</a><br>
<br>
<br>
Appears:<br>
<br>
public MetadataString setValue(String[] newValue);<br>
<br>
<br>
X3DUOM says:<br>
<br>
       <ConcreteNode name="MetadataString"><br>
          <InterfaceDefinition <br>
specificationUrl="<a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/core.html#MetadataString" rel="noreferrer" target="_blank">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/core.html#MetadataString</a>"<br>
                               appinfo="The metadata provided by this <br>
node is contained in the strings of the value field."><br>
             <componentInfo name="Core" level="1"/><br>
             <Inheritance baseType="X3DNode"/><br>
             <AdditionalInheritance baseType="X3DMetadataObject"/><br>
             <field name="name"<br>
                    type="SFString"<br>
                    accessType="inputOutput"<br>
                    inheritedFrom="X3DMetadataObject"<br>
                    description="Depending on the metadata vocabulary, <br>
the attribute name is usually required for metadata nodes."/><br>
             <field name="value"<br>
                    type="MFString"<br>
                    accessType="inputOutput"<br>
                    description="The value attribute is a strictly typed <br>
data array providing relevant metadata information."/><br>
<br>
<br>
So it seems like SAI would support MFString.<br>
<br>
<br>
Indeed in X3DJSAIL:<br>
<br>
/c/x3d-code/<a href="http://www.web3d.org/x3d/stylesheets/java/src/org/web3d/x3d/jsail/Core$" rel="noreferrer" target="_blank">www.web3d.org/x3d/stylesheets/java/src/org/web3d/x3d/jsail/Core$</a> <br>
grep setValue *|grep MetadataString|grep public<br>
MetadataString.java:    public MetadataString setValue(String[] newValue)<br>
MetadataString.java:    public MetadataString setValue(MFString newValue)<br>
MetadataString.java:    public MetadataString setValue(SFString newValue)<br>
MetadataString.java:    public MetadataString setValue(String newValue)<br>
MetadataString.java:    public MetadataString setValue(ArrayList<String> <br>
newValue)<br>
<br>
<br>
Halp!<br>
<br>
One Java source code file attached.<br>
<br>
<br>
Here's the javac console errors:<br>
<br>
coderextreme@coderextreme-Kubuntu20:~/X3DJSONLD/src/main/java$ javac -cp <br>
~/pythonSAI/X3DJSAIL.4.0.full.jar:. <br>
net/coderextreme/data/KoreanCharacterMotion*java<br>
net/coderextreme/data/KoreanCharacterMotionAnnexC01Jin.java:72: error: <br>
'void' type not allowed here<br>
             .setValue(new <br>
MetadataString().setName("humanoidVersion").setValue(new <br>
org.web3d.x3d.jsail.fields.MFString(new MFString0().getArray()))))<br>
                      ^<br>
net/coderextreme/data/KoreanCharacterMotionAnnexD01Jin.java:72: error: <br>
'void' type not allowed here<br>
             .setValue(new <br>
MetadataString().setName("humanoidVersion").setValue(new <br>
org.web3d.x3d.jsail.fields.MFString(new MFString0().getArray()))))<br>
<br>
                      ^<br>
<br>
<br>
2 errors<br>
<br>
Suggestions for improving code generation welcome. X3dToJava.xslt seems <br>
to do fine, until you run the generated Java code--the errors here are <br>
elsewhere.<br>
<br>
coderextreme@coderextreme-Kubuntu20:~/X3DJSONLD/src/main/java$ java -cp <br>
~/pythonSAI/X3DJSAIL.4.0.full.jar:. <br>
net.x3djsonld.data.KoreanCharacterMotionAnnexC01Jin<br>
Java program "KoreanCharacterMotionAnnexC01Jin" self-validation test <br>
results: ERROR_ILLEGAL_VALUE: HAnimSegment DEF='hanim_sacrum' <br>
name='sacrum' illegal parent found: HAnimJoint <br>
name='hanim_humanoid_root' name='humanoid_root'<br>
coderextreme@coderextreme-Kubuntu20:~/X3DJSONLD/src/main/java$ java -cp <br>
~/pythonSAI/X3DJSAIL.4.0.full.jar:. <br>
net.x3djsonld.data.KoreanCharacterMotionAnnexD01Jin<br>
Java program "KoreanCharacterMotionAnnexD01Jin" self-validation test <br>
results: ERROR_ILLEGAL_VALUE: HAnimSegment DEF='hanim_sacrum' <br>
name='sacrum' illegal parent found: HAnimJoint <br>
name='hanim_humanoid_root' name='humanoid_root'<br>
<br>
John<br>
<br>
<br>
<br>
</blockquote></div></div>