<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>I'll be performing some local tests on the stylesheets there
appear to be many things to fix.</p>
<p>Don, please compare the JSON output from xslt3 with the output
from saxon9he.jar/X3DJSAIL.</p>
Here's the command I ran to get the errors (not attached, TL):<br>
<p>./../../node_modules/.bin/xslt3
-xsl:/c/x3d-code/www.web3d.org/x3d/stylesheets/X3dToJson.xslt
-s:x3dconnectorProto.x3d -o:x3dconnectorProto.json2</p>
<p>XML and JSON files attached.</p>
<p>Below, possibly related Schematron hints (some false positive?)
Please explain, since I don't understand these messages, thanks!</p>
<p><b>7. Performing <a
href="http://www.web3d.org/x3d/tools/schematron/X3dSchematron.html"
target="X3dValidatorReference" title="test description or
source">X3D Schematron</a> check...</b>
<ProtoInstance name='x3dconnector' DEF='connector1'>
<fieldValue name='startnode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[1]/fieldValue[1], hint]
<ProtoInstance name='x3dconnector' DEF='connector1'>
<fieldValue name='endnode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[1]/fieldValue[2], hint]
<ProtoInstance name='x3dconnector' DEF='connector1'>
<fieldValue name='transnode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[1]/fieldValue[3], hint]
<ProtoInstance name='x3dconnector' DEF='connector1'>
<fieldValue name='rotscalenode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[1]/fieldValue[4], hint]
<ProtoInstance name='x3dconnector' DEF='connector1'>
<fieldValue name='set_startpoint' value='0 0 0'/> has
matching ProtoDeclare but no corresponding field match for this
fieldValue [/X3D/Scene/ProtoInstance[1]/fieldValue[5], hint]
<ProtoInstance name='x3dconnector' DEF='connector1'>
<fieldValue name='set_endpoint' value='0 0 0'/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[1]/fieldValue[6], hint]
<ProtoInstance name='x3dconnector' DEF='connector2'>
<fieldValue name='startnode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[2]/fieldValue[1], hint]
<ProtoInstance name='x3dconnector' DEF='connector2'>
<fieldValue name='endnode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[2]/fieldValue[2], hint]
<ProtoInstance name='x3dconnector' DEF='connector2'>
<fieldValue name='transnode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[2]/fieldValue[3], hint]
<ProtoInstance name='x3dconnector' DEF='connector2'>
<fieldValue name='rotscalenode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[2]/fieldValue[4], hint]
<ProtoInstance name='x3dconnector' DEF='connector2'>
<fieldValue name='set_startpoint' value='0 0 0'/> has
matching ProtoDeclare but no corresponding field match for this
fieldValue [/X3D/Scene/ProtoInstance[2]/fieldValue[5], hint]
<ProtoInstance name='x3dconnector' DEF='connector2'>
<fieldValue name='set_endpoint' value='0 0 0'/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[2]/fieldValue[6], hint]
<ProtoInstance name='x3dconnector' DEF='connector3'>
<fieldValue name='startnode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[3]/fieldValue[1], hint]
<ProtoInstance name='x3dconnector' DEF='connector3'>
<fieldValue name='endnode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[3]/fieldValue[2], hint]
<ProtoInstance name='x3dconnector' DEF='connector3'>
<fieldValue name='transnode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[3]/fieldValue[3], hint]
<ProtoInstance name='x3dconnector' DEF='connector3'>
<fieldValue name='rotscalenode' value=''/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[3]/fieldValue[4], hint]
<ProtoInstance name='x3dconnector' DEF='connector3'>
<fieldValue name='set_startpoint' value='0 0 0'/> has
matching ProtoDeclare but no corresponding field match for this
fieldValue [/X3D/Scene/ProtoInstance[3]/fieldValue[5], hint]
<ProtoInstance name='x3dconnector' DEF='connector3'>
<fieldValue name='set_endpoint' value='0 0 0'/> has matching
ProtoDeclare but no corresponding field match for this fieldValue
[/X3D/Scene/ProtoInstance[3]/fieldValue[6], hint]
X3D Schematron check: <font color="green"><b>pass</b></font>.
Good practice is to fix errors and warnings wherever possible, and
consider silencing harmless informational messages, so that
important indicators remain noticeable. <br>
</p>
<p>================</p>
<p>Interesting, 10-folder increase in JSON output from XML using
xslt3. normal JSON output using saxon9he.jar is 1/4 the xslt3
size. Yipes!<br>
</p>
<p>Let's figure out what's causing the increase! We also should
consider the global effect on disk space due to the upcoming X3D
JSON standard. Perhaps we should consider using tabs or one space
indents instead of 2-4 spaces in the code in the stylesheet?</p>
<p>As far as I know, I am using the same stylesheet.</p>
<p>It appears like the main problem in the xslt3 output (*json2) is
the number of ProtoDeclares, which appears to be the 10x factor in
number of ProtoDeclare's. Can this be snuffed in the
X3dToJson.xslt stylesheet? These don't appear in the XML.
Thanks!</p>
<p>$ grep ProtoDeclare x3dconnectorProto*json*</p>
<p>x3dconnectorProto.json: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json2: { "ProtoDeclare":<br>
x3dconnectorProto.json.new: "ProtoDeclare": {<br>
x3dconnectorProto.new.json: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":<br>
x3dconnectorProto.new.json2: { "ProtoDeclare":</p>
<p>Let's work on reducing the number of ProtoDeclare's in the xslt3
generated JSON files, possibly by modifying the X3dToJson.xslt. I
am not sure what else to do! Thanks!</p>
<p>It appears like we might have to special case the stylesheet for
the stylesheet processor?<br>
</p>
<p>John<br>
</p>
</body>
</html>