[x3d-public] reading schematron diagnostics
John Carlson
yottzumm at gmail.com
Sat Feb 6 15:15:05 PST 2021
Okay, I did a search on the error and got this:
<report test=" $protoFound and not( $protoFieldFound)" role="hint">
<
<value-of select="local-name(..)"/>
name='
<value-of select="../@name"/>
' DEF='
<value-of select="../@DEF"/>
'> <
<name/>
name='
<value-of select="@name"/>
' value='
<value-of select="@value"/>
'/> has matching ProtoDeclare but no corresponding field match for this
fieldValue
</report>
Searching upwards:
I'm not sure about this context in
https://www.web3d.org/x3d/tools/schematron/X3dSchematronValidityChecks.sch
context="fieldValue | *[(lower-case(local-name()) = 'fieldValue')]"
It would seem like lower-case(foo) would never match 'fieldValue'. I
suggest 'fieldvalue' or lower-case on both sides of the comparison.
But I doubt if this would solve the error message I'm getting because of
the other side of the |.
Hmmm! More research necessary!
John
On 2/6/21 4:38 PM, John Carlson wrote:
> Well, the accessType modification didn't change much.
>
> Stumped for now. Waiting for bright idea to pop into my head.
>
> I will also text in freewrl.
>
> John
>
> On 2/6/21 4:26 PM, John Carlson wrote:
>> Don, I don't see any updates to X3D validator, so errors will still
>> appear as hints. Likely, you are busy. Schematron is still
>> (incorrectly?) reporting "pass." I am including Doug Sanden since I
>> think he was the originator of the file (attached). Other wise people
>> might help too?
>>
>> I don't see the problem given your explanation previously, Don.
>>
>> Perhaps it's the initializeOnly's and inputOnly's that should be
>> converted to inputOutput?
>>
>> Still sort of puzzled. I'm not aiming at wizardhood, just commenting
>> on book titles ("Order of the Phoenix").
>>
>> This time, the errors appear not scrunched up i hope. There was a
>> problem with paste before, some mysterious Thunderbird feature.
>>
>> I will proceed by changing accessType on the fields.
>>
>> Thanks,
>>
>> John
>>
>> 7. Performing X3D Schematron check...
>> <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: pass.
>> Good practice is to fix errors and warnings wherever possible, and
>> consider silencing harmless informational messages, so that important
>> indicators remain noticeable.
>>
>> On 2/6/21 11:58 AM, Don Brutzman wrote:
>>> step by step...
>>>
>>> On 2/5/2021 1:55 AM, John Carlson wrote:
>>>>
>>>> Thanks, Don. I will look over the X3D file some more later.
>>>
>>> gosh i love diagnostics! um, compared to the alternative of no
>>> diagnostics...
>>>
>>>> Should the order of the fieldValues match the order of fields?
>>>
>>> not required
>>>
>>>> I’m beginning to sound like Harry Potter. Lol
>>>
>>> We haven't yet defined a policy for "Web3D Wizard" but am sure that
>>> consensus is possible following much concerted effort, controversy,
>>> sound and fury...
>>>
>>>> Thanks!
>>>>
>>>> John
>>>
>>> happy to help when i can, you are finding the gaps/seams and we're
>>> all in this together. take care. 8)
>>>
>>>> On Fri, Feb 5, 2021 at 2:11 AM Don Brutzman <brutzman at nps.edu
>>>> <mailto:brutzman at nps.edu>> wrote:
>>>>
>>>> These Schematron alerts are readable if you split them up. Here
>>>> is explanation for first.
>>>>
>>>> On 2/4/2021 10:54 PM, John Carlson wrote:
>>>> > ProtoInstance name='x3dconnector' DEF='connector1'>
>>>> <fieldValue name='startnode' value=''/> has matching ProtoDeclare
>>>> but no corresponding field match for this fieldValue
>>>>
>>>> The above warning says that your ProtoInstance named
>>>> "x3dconnector" has an initial field value named "startnode", but
>>>> there is no corresponding field "startnode" defined in the
>>>> governing ProtoDeclare named "x3dconnector".
>>>>
>>>> No name found usually means that you have a flawed
>>>> ProtoInstance. Though the mismatch/misunderstanding might be in
>>>> the ProtoDeclare or ExternProtoDeclare. As author, you must ensure
>>>> that all the names match.
>>>>
>>>> > [/X3D/Scene/ProtoInstance[1]/fieldValue[1], hint]
>>>
>>> p.s. i changed role attribute of this diagnostic from "hint" to
>>> "error" since it is an error.
>>>
>>>> This provides the location of the node in your scene graph.
>>>> Thus go to the X3D node, then the scene node, then the first
>>>> ProtoInstance [1] , then the first fieldValue [1].
>>>>
>>>> These are super helpful. If the flaw is in your original X3D
>>>> model, then stylesheets and other tools simply won't work - GIGO.
>>>>
>>>> Good luck!
>>>
>>> all the best, Don
More information about the x3d-public
mailing list