[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