[x3d-public] MFString as field value of value of MetadataString

John Carlson yottzumm at gmail.com
Sun Mar 14 13:05:50 PDT 2021


I meant below instead of elsewhere.

Oops!

On Sun, Mar 14, 2021 at 4:47 AM John Carlson <yottzumm at gmail.com> wrote:

> I have the following Java code:
>
> grep humanoidVersion net/*/data/Kor*Mot*java|grep set
> net/coderextreme/data/KoreanCharacterMotionAnnexC01Jin.java:
> .setValue(new MetadataString().setName("humanoidVersion").setValue(new
> org.web3d.x3d.jsail.fields.MFString(new MFString0().getArray()))))
> net/coderextreme/data/KoreanCharacterMotionAnnexD01Jin.java:
> .setValue(new MetadataString().setName("humanoidVersion").setValue(new
> org.web3d.x3d.jsail.fields.MFString(new MFString0().getArray()))))
> net/x3djsonld/data/KoreanCharacterMotionAnnexC01Jin.java:
> .setMetadata(new
> MetadataString().setName("humanoidVersion").setValue(new String[]
> {"2.0"})))
> net/x3djsonld/data/KoreanCharacterMotionAnnexD01Jin.java:
> .setMetadata(new
> MetadataString().setName("humanoidVersion").setValue(new String[]
> {"2.0"})))
>
>
> As far as I can tell, the former 2 work, and the latter 2 do not.  Your
> mileage may vary.
>
>
> The former two were generated by the JavaSerializer.js in X3DJSONLD.
>
> The latter two were generate by the X3dToJava.xslt on sourceforge.
>
>
> Source code (X3D) appears here:
>
>
>
> https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/Specifications/
>
>
> What I'm wondering is, should setValue take an MFString as input.
>
>
> In:
>
> /c/x3d-code/
> www.web3d.org/x3d/stylesheets/java/src/org/web3d/x3d/sai/Core/MetadataString.java
>
>
> Appears:
>
> public MetadataString setValue(String[] newValue);
>
>
> X3DUOM says:
>
>        <ConcreteNode name="MetadataString">
>           <InterfaceDefinition
> specificationUrl="
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-WD3/Part01/components/core.html#MetadataString
> "
>                                appinfo="The metadata provided by this
> node is contained in the strings of the value field.">
>              <componentInfo name="Core" level="1"/>
>              <Inheritance baseType="X3DNode"/>
>              <AdditionalInheritance baseType="X3DMetadataObject"/>
>              <field name="name"
>                     type="SFString"
>                     accessType="inputOutput"
>                     inheritedFrom="X3DMetadataObject"
>                     description="Depending on the metadata vocabulary,
> the attribute name is usually required for metadata nodes."/>
>              <field name="value"
>                     type="MFString"
>                     accessType="inputOutput"
>                     description="The value attribute is a strictly typed
> data array providing relevant metadata information."/>
>
>
> So it seems like SAI would support MFString.
>
>
> Indeed in X3DJSAIL:
>
> /c/x3d-code/
> www.web3d.org/x3d/stylesheets/java/src/org/web3d/x3d/jsail/Core$
> grep setValue *|grep MetadataString|grep public
> MetadataString.java:    public MetadataString setValue(String[] newValue)
> MetadataString.java:    public MetadataString setValue(MFString newValue)
> MetadataString.java:    public MetadataString setValue(SFString newValue)
> MetadataString.java:    public MetadataString setValue(String newValue)
> MetadataString.java:    public MetadataString setValue(ArrayList<String>
> newValue)
>
>
> Halp!
>
> One Java source code file attached.
>
>
> Here's the javac console errors:
>
> coderextreme at coderextreme-Kubuntu20:~/X3DJSONLD/src/main/java$ javac -cp
> ~/pythonSAI/X3DJSAIL.4.0.full.jar:.
> net/coderextreme/data/KoreanCharacterMotion*java
> net/coderextreme/data/KoreanCharacterMotionAnnexC01Jin.java:72: error:
> 'void' type not allowed here
>              .setValue(new
> MetadataString().setName("humanoidVersion").setValue(new
> org.web3d.x3d.jsail.fields.MFString(new MFString0().getArray()))))
>                       ^
> net/coderextreme/data/KoreanCharacterMotionAnnexD01Jin.java:72: error:
> 'void' type not allowed here
>              .setValue(new
> MetadataString().setName("humanoidVersion").setValue(new
> org.web3d.x3d.jsail.fields.MFString(new MFString0().getArray()))))
>
>                       ^
>
>
> 2 errors
>
> Suggestions for improving code generation welcome. X3dToJava.xslt seems
> to do fine, until you run the generated Java code--the errors here are
> elsewhere.
>
> coderextreme at coderextreme-Kubuntu20:~/X3DJSONLD/src/main/java$ java -cp
> ~/pythonSAI/X3DJSAIL.4.0.full.jar:.
> net.x3djsonld.data.KoreanCharacterMotionAnnexC01Jin
> Java program "KoreanCharacterMotionAnnexC01Jin" self-validation test
> results: ERROR_ILLEGAL_VALUE: HAnimSegment DEF='hanim_sacrum'
> name='sacrum' illegal parent found: HAnimJoint
> name='hanim_humanoid_root' name='humanoid_root'
> coderextreme at coderextreme-Kubuntu20:~/X3DJSONLD/src/main/java$ java -cp
> ~/pythonSAI/X3DJSAIL.4.0.full.jar:.
> net.x3djsonld.data.KoreanCharacterMotionAnnexD01Jin
> Java program "KoreanCharacterMotionAnnexD01Jin" self-validation test
> results: ERROR_ILLEGAL_VALUE: HAnimSegment DEF='hanim_sacrum'
> name='sacrum' illegal parent found: HAnimJoint
> name='hanim_humanoid_root' name='humanoid_root'
>
> John
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20210314/daefc5cf/attachment.html>


More information about the x3d-public mailing list