<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
span.EmailStyle20
{mso-style-type:personal-reply;
font-family:"Calibri",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>I think that any failure is a failure. Can’t proceed with half-baked content.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Since this is an object interface, it is written in an attempt to be content-neutral, which means suitable for run-time interpretation of multiple content types: X3D VRML images sounds movies etc.<o:p></o:p></p><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>all the best, Don<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>-- <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Don Brutzman Naval Postgraduate School, Code USW/Br brutzman@nps.edu<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>X3D graphics, virtual worlds, Navy robotics https://</span> <span style='font-size:10.0pt;font-family:"Courier New"'>faculty.nps.edu/brutzman<o:p></o:p></span></p></div><p class=MsoNormal><o:p> </o:p></p><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From:</b> Joseph D Williams <joedwil@earthlink.net> <br><b>Sent:</b> Sunday, April 24, 2022 5:34 PM<br><b>To:</b> Brutzman, Donald (Don) (CIV) <brutzman@nps.edu>; Andreas Plesch <andreasplesch@gmail.com><br><b>Cc:</b> X3D Graphics public mailing list <x3d-public@web3d.org>; Brutzman, Donald (Don) (CIV) <brutzman@nps.edu><br><b>Subject:</b> RE: [x3d-public] url MFString handling<o:p></o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Hi Don and All.<o:p></o:p></p><p class=MsoNormal>I was thinking the problem was determining how much checking the browser needs to do when it first laads the file, then when ‘interprets’ the user code for loading into the scene. For loadsensor it seems like all it has to do is make sure the profile is covered, then a failure in further loading is a different problem. Again, if the profile is ok but the file has other problems leading to error, does the next file get attempted? Is this different if loadsensor is not present?<o:p></o:p></p><p class=MsoNormal>Thanks,<o:p></o:p></p><p class=MsoNormal>Joe<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Sent: </b>Sunday, April 24, 2022 4:44 PM<br><b>To: </b><a href="mailto:andreasplesch@gmail.com">Andreas Plesch</a>; <a href="mailto:joedwil@earthlink.net">Joseph D Williams</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:brutzman@nps.edu">Brutzman, Donald (Don) (CIV)</a><br><b>Subject: </b>RE: [x3d-public] url MFString handling<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks for looking hard at this.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Am thinking we might simply remove "X3D browsers only have to interpret a<o:p></o:p></p><p class=MsoNormal>single string." ...<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Or perhaps to rephrase it better as intended, that once a single success is<o:p></o:p></p><p class=MsoNormal>encountered, there is no need to retrieve further content.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>"X3D browsers only need to satisfactorily interpret content corresponding<o:p></o:p></p><p class=MsoNormal>to a single string in the url list. Retrieving all versions of url content<o:p></o:p></p><p class=MsoNormal>is not necessary."<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don<o:p></o:p></p><p class=MsoNormal>-- <o:p></o:p></p><p class=MsoNormal>Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a><o:p></o:p></p><p class=MsoNormal>Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149<o:p></o:p></p><p class=MsoNormal>X3D graphics, virtual worlds, Navy robotics https://<o:p></o:p></p><p class=MsoNormal>faculty.nps.edu/brutzman<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-----Original Message-----<o:p></o:p></p><p class=MsoNormal>From: x3d-public <<a href="mailto:x3d-public-bounces@web3d.org">x3d-public-bounces@web3d.org</a>> On Behalf Of Andreas Plesch<o:p></o:p></p><p class=MsoNormal>Sent: Friday, April 22, 2022 8:32 AM<o:p></o:p></p><p class=MsoNormal>To: Joseph D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>><o:p></o:p></p><p class=MsoNormal>Cc: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>><o:p></o:p></p><p class=MsoNormal>Subject: Re: [x3d-public] url MFString handling<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>For future reference:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On Thu, Apr 21, 2022 at 4:43 PM Andreas Plesch <<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>><o:p></o:p></p><p class=MsoNormal>wrote:<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> On Thu, Apr 21, 2022 at 4:04 PM Joseph D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>><o:p></o:p></p><p class=MsoNormal>wrote:<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> >> Let me propose that getting rid of "interpret" would suffice:<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Maybe 'resolve"?<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Some tweaks:<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> "All url fields can hold multiple string values. The strings in these <o:p></o:p></p><p class=MsoNormal>> fields indicate multiple locations to search for data in the order <o:p></o:p></p><p class=MsoNormal>> listed. If the browser cannot locate the data specified by the first <o:p></o:p></p><p class=MsoNormal>> string, it shall try the second and subsequent locations in order <o:p></o:p></p><p class=MsoNormal>> until a resolvable location containing data is encountered. X3D <o:p></o:p></p><p class=MsoNormal>> browsers only have to load a single location. If no loadable locations <o:p></o:p></p><p class=MsoNormal>> are found, the node type defines the resultant default behaviour."<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> > Meaning the file name has been found and delivered to the browser and<o:p></o:p></p><p class=MsoNormal>ready to be loaded into the calling context?<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Autorefresh sort of complicates things a bit, so now I am looking for<o:p></o:p></p><p class=MsoNormal>something "file found and loaded" Autorefresh must not try to reload if the<o:p></o:p></p><p class=MsoNormal>loaded file content fails.<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Good point. I am not familiar with the motivation behind introducing <o:p></o:p></p><p class=MsoNormal>> autorefresh. I think the expectation would be that only the initially <o:p></o:p></p><p class=MsoNormal>> selected url would autorefresh, eg. that browsers would not be <o:p></o:p></p><p class=MsoNormal>> required to test all supplied locations to determine if a higher <o:p></o:p></p><p class=MsoNormal>> priority one became available after each refresh.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>It appears that retrying all urls on refresh was deemed preferable:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/</a><o:p></o:p></p><p class=MsoNormal>components/networking.html#X3DUrlObject<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>That means, on refresh:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>1) Use currently selected url<o:p></o:p></p><p class=MsoNormal>2) If that fails, try all urls in order<o:p></o:p></p><p class=MsoNormal>3) If that fails, do nothing<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This is a bit more complicated than A)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>1) Use currently selected url<o:p></o:p></p><p class=MsoNormal>2) If that fails, do nothing<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>or, alternatively B)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>1) do the same as when initially loaded: try all urls in order<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Since autorefresh probably targets regular updates of an existing resource<o:p></o:p></p><p class=MsoNormal>(say an image of a weather forecast), option A) seemed sufficient and also<o:p></o:p></p><p class=MsoNormal>more predictable. Let's see how it goes when there is time.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Andreas<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> -Andreas<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> > Thanks,<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Joe<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > From: Andreas Plesch<o:p></o:p></p><p class=MsoNormal>> > Sent: Thursday, April 21, 2022 12:46 PM<o:p></o:p></p><p class=MsoNormal>> > To: Joseph D Williams<o:p></o:p></p><p class=MsoNormal>> > Cc: X3D Graphics public mailing list<o:p></o:p></p><p class=MsoNormal>> > Subject: Re: [x3d-public] url MFString handling<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Hi Joe,<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Thank you for your response which makes a lot of sense to me.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > This urls feature really only handles problems with finding the file<o:p></o:p></p><p class=MsoNormal>and delivering contents, not dealing with the validity of actual contents of<o:p></o:p></p><p class=MsoNormal>the file.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Yes, I agree. This role should be clearly pointed out. The first <o:p></o:p></p><p class=MsoNormal>> > file<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > which can be found and accessed should be considered selected for<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > further processing which then may lead to failure. Unfortunately, I<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > think currently the spec. language is more vague.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > <a href="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/c">https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/c</a><o:p></o:p></p><p class=MsoNormal>> > omponents/networking.html#X3DUrlObject<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > says:<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > "All url fields can hold multiple string values. The strings in <o:p></o:p></p><p class=MsoNormal>> > these<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > fields indicate multiple locations to search for data in the order<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > listed. If the browser cannot locate or interpret the data specified<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > by the first location, it shall try the second and subsequent<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > locations in order until a location containing interpretable data is<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > encountered. X3D browsers only have to interpret a single string. If<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > no interpretable locations are found, the node type defines the<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > resultant default behaviour."<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Let me propose that getting rid of "interpret" would suffice:<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > "All url fields can hold multiple string values. The strings in <o:p></o:p></p><p class=MsoNormal>> > these<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > fields indicate multiple locations to search for data in the order<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > listed. If the browser cannot locate the data specified by the first<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > string, it shall try the second and subsequent locations in order<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > until a location containing data is encountered. X3D browsers only<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > have to load a single location. If no accessible locations are <o:p></o:p></p><p class=MsoNormal>> > found,<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > the node type defines the resultant default behaviour."<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Happy to iterate if desired,<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Andreas<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > As for json and gltf, same thing. Runtime expects the delivered data<o:p></o:p></p><p class=MsoNormal>to be legal contents as defined by the author. If the data is wrong, like<o:p></o:p></p><p class=MsoNormal>some stuff not matching, then, something else fails, not the loading<o:p></o:p></p><p class=MsoNormal>process.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > Thanks for all on this, Andreas,<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > Joe<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > From: Andreas Plesch<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > Sent: Thursday, April 21, 2022 10:06 AM<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > To: X3D Graphics public mailing list<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > Subject: Re: [x3d-public] url MFString handling<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > Are there suggestions on how to handle back-up "#viewpoint" style <o:p></o:p></p><p class=MsoNormal>> > > urls<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > for Anchor in case Viewpoints with matching def names do not exist ?<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > <a href="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01">https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01</a><o:p></o:p></p><p class=MsoNormal>> > > /components/networking.html#Anchor<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > paragraph nine explains that in this case:<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > "In this case, if the node derived from X3DViewpointNode is not <o:p></o:p></p><p class=MsoNormal>> > > found,<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > no action occurs on activation."<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > This seems to mean that back-up #viewpoint urls should not be <o:p></o:p></p><p class=MsoNormal>> > > tried so<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > that no action can occur. Would that make the most sense ?<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > I actually cannot think of a use case for back-up #viewpoint urls, <o:p></o:p></p><p class=MsoNormal>> > > so<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > that case may be intentionally left ill defined and open to <o:p></o:p></p><p class=MsoNormal>> > > browser<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > implementations.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > Any feedback welcome,<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > Andreas<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > On Tue, Apr 19, 2022 at 9:34 PM Andreas Plesch<o:p></o:p></p><p class=MsoNormal><<a href="mailto:andreasplesch@gmail.com">andreasplesch@gmail.com</a>> wrote:<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > x3dom currently lacks support for back-up urls to use if the <o:p></o:p></p><p class=MsoNormal>> > > > first<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > urls do not work. I am trying to add support and wonder how to <o:p></o:p></p><p class=MsoNormal>> > > > deal<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > with corner cases.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > The spirit of the spec. here is pretty clear:<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > <a href="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part">https://www.web3d.org/documents/specifications/19775-1/V3.3/Part</a><o:p></o:p></p><p class=MsoNormal>> > > > 01/components/networking.html#X3DUrlObject<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > says that a url which cannot be located or if the retrieved data<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > cannot be All url fields can hold multiple string values. The <o:p></o:p></p><p class=MsoNormal>> > > > strings in these fields indicate multiple locations to search <o:p></o:p></p><p class=MsoNormal>> > > > for data in the order listed. If the browser cannot locate or <o:p></o:p></p><p class=MsoNormal>> > > > interpret the data specified by the first location, it shall try <o:p></o:p></p><p class=MsoNormal>> > > > the second and subsequent locations in order until a location <o:p></o:p></p><p class=MsoNormal>> > > > containing interpretable data is encountered. X3D browsers only <o:p></o:p></p><p class=MsoNormal>> > > > have to interpret a single string. If no interpretable locations <o:p></o:p></p><p class=MsoNormal>> > > > are found, the node type defines the resultant default <o:p></o:p></p><p class=MsoNormal>> > > > behaviour.interpreted should be skipped. Subsequent urls are <o:p></o:p></p><p class=MsoNormal>> > > > then used<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > as back-ups.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > Currently, x3dom checks if an inline x3d url can be parsed as <o:p></o:p></p><p class=MsoNormal>> > > > xml and<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > if so if it has a Scene element.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > The first corner case happens if there is a X3D element but it <o:p></o:p></p><p class=MsoNormal>> > > > does<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > not contain a Scene element. This could be interpreted to mean <o:p></o:p></p><p class=MsoNormal>> > > > an<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > empty X3D document with an empty Scene, or that it perhaps <o:p></o:p></p><p class=MsoNormal>> > > > should be<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > skipped as not interpretable. I would probably favor skipping as <o:p></o:p></p><p class=MsoNormal>> > > > this<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > would normally happen by mistake.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > The second corner case is a Scene element without content. <o:p></o:p></p><p class=MsoNormal>> > > > Should such<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > X3D be considered interpretable ? I think x3dom is currently <o:p></o:p></p><p class=MsoNormal>> > > > set up<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > to parse it without error resulting in an empty Scene, probably <o:p></o:p></p><p class=MsoNormal>> > > > with<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > default NavigationInfo and Viewpoint. So this could be <o:p></o:p></p><p class=MsoNormal>> > > > considered<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > interpretable and not be skipped.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > <a href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHint">https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHint</a><o:p></o:p></p><p class=MsoNormal>> > > > s.html#urls<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > says a result needs to be "legal". But legal is by definition <o:p></o:p></p><p class=MsoNormal>> > > > what is<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > provided in the spec., eg. comes down to being interpretable.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > The tooltip at <o:p></o:p></p><p class=MsoNormal>> > > > <a href="https://www.web3d.org/x3d/content/X3dTooltips.html#Inline.url">https://www.web3d.org/x3d/content/X3dTooltips.html#Inline.url</a><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > does not seem to further clarify.<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > Any feedback appreciated,<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > Andreas<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > --<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > Andreas Plesch<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > > Waltham, MA 02453<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > --<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > Andreas Plesch<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > Waltham, MA 02453<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > _______________________________________________<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > x3d-public mailing list<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > <a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > > <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > --<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Andreas Plesch<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> > Waltham, MA 02453<o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>> ><o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> --<o:p></o:p></p><p class=MsoNormal>> Andreas Plesch<o:p></o:p></p><p class=MsoNormal>> Waltham, MA 02453<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>--<o:p></o:p></p><p class=MsoNormal>Andreas Plesch<o:p></o:p></p><p class=MsoNormal>Waltham, MA 02453<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>_______________________________________________<o:p></o:p></p><p class=MsoNormal>x3d-public mailing list<o:p></o:p></p><p class=MsoNormal><a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><o:p></o:p></p><p class=MsoNormal><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div></div></body></html>