<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:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle19
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
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-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Don,<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>John is correct. Remove in all 32 instances of geosystem the “N” value, and the JSON encoded file passes validation.<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>This has been discussed in Mantis issue 938 (<a href="http://www.web3d.org/member-only/mantis/view.php?id=938">http://www.web3d.org/member-only/mantis/view.php?id=938</a> for Web3D members). The V3.3 of the standard only permits an optional “S” to indicate southern hemisphere. The northern hemisphere “N” is not permitted. It is assumed by default if there is no “S”.<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>While we may change this in V4.0 of X3D, the fact is that this is the case for V3.3. The JSON schema for V3.3 should, therefore, reflect the V3.3 standard. This problem was only identified because of the greater expressive power of JSON schema over the corresponding XML schema. The JSON schema was written to fully validate the geoSystem field in accordance with the standard. The Schematron should also be able to do this. Does it?<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>All the best,<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'>Roy<o:p></o:p></span></p><p class=MsoNormal><span style='mso-fareast-language:EN-US'><o:p> </o:p></span></p><p class=MsoNormal><b><span lang=EN-US>From:</span></b><span lang=EN-US> John Carlson [mailto:yottzumm@gmail.com] <br><b>Sent:</b> 10 July 2017 16:13<br><b>To:</b> Don Brutzman <brutzman@nps.edu><br><b>Cc:</b> X3D Graphics public mailing list <x3d-public@web3d.org>; Roy Walmsley <roy.walmsley@ntlworld.com><br><b>Subject:</b> Re: X3D JSON schema validation problems: geoSystem "UTM"<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Again, your "N" or north will not pass schema.<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>John<o:p></o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Jul 10, 2017 10:57 AM, "Don Brutzman" <<a href="mailto:brutzman@nps.edu">brutzman@nps.edu</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=MsoNormal>Issue with geoSystem support for "UTM", example attached.  Troublesome line appears to be<br><br><GeoOrigin DEF='ORIGIN' geoCoords='4342525.5 740604 0' geoSystem='"UTM" "Z10" "N"' rotateYUp='true'/><br><br>"-geoOrigin":<br>  { "GeoOrigin":<br>        {<br>          "@DEF":"ORIGIN",<br>          "@geoCoords":[4342525.5,740604,0],<br>          "@geoSystem":["UTM","Z10","N"],<br>          "@rotateYUp":true<br>        }<br>  }<br><br>(perhaps other errors as well, this console error goes on for quite a ways.)  json schema validation excerpt follows:<br><br><br>--- BEGIN C:\x3d-code\<a href="http://www.web3d.org" target="_blank">www.web3d.org</a>\x3d\content\examples\Basic\Geospatial\Squaw.json---<br>validation: FAILURE<br>[ {<br>  "level" : "error",<br>  "schema" : {<br>    "loadingURI" : "file:/C:/x3d-code/<a href="http://www.web3d.org/specifications/x3d-3.3-JSONSchema.json" target="_blank">www.web3d.org/specifications/x3d-3.3-JSONSchema.json#</a>",<br>    "pointer" : "/definitions/@geoSystem"<br>  },<br>  "instance" : {<br>    "pointer" : "/X3D/Scene/-children/4/GeoViewpoint/-geoOrigin/GeoOrigin/@geoSystem"<br>  },<br>  "domain" : "validation",<br>  "keyword" : "oneOf",<br>  "message" : "instance failed to match exactly one schema (matched 0 out of 9)",<br>  "matched" : 0,<br>  "nrSchemas" : 9,<br>  "reports" : {<br>    "/definitions/@geoSystem/oneOf/0" : [ {<br>      "level" : "error",<br>      "schema" : {<br>        "loadingURI" : "file:/C:/x3d-code/<a href="http://www.web3d.org/specifications/x3d-3.3-JSONSchema.json" target="_blank">www.web3d.org/specifications/x3d-3.3-JSONSchema.json#</a>",<br>        "pointer" : "/definitions/@geoSystem/oneOf/0/items/0"<br>      },<br>      "instance" : {<br>        "pointer" : "/X3D/Scene/-children/4/GeoViewpoint/-geoOrigin/GeoOrigin/@geoSystem/0"<br>      },<br>      "domain" : "validation",<br>      "keyword" : "enum",<br>      "message" : "instance value (\"UTM\") not found in enum (possible values: [\"GD\",\"GDC\"])",<br>      "value" : "UTM",<br>      "enum" : [ "GD", "GDC" ]<br>    }, {<br>      "level" : "error",<br>      "schema" : {<br>        "loadingURI" : "file:/C:/x3d-code/<a href="http://www.web3d.org/specifications/x3d-3.3-JSONSchema.json" target="_blank">www.web3d.org/specifications/x3d-3.3-JSONSchema.json#</a>",<br>        "pointer" : "/definitions/@geoSystem/oneOf/0/items/1"<br>      },<br>      "instance" : {<br>        "pointer" : "/X3D/Scene/-children/4/GeoViewpoint/-geoOrigin/GeoOrigin/@geoSystem/1"<br>      },<br>      "domain" : "validation",<br>      "keyword" : "enum",<br>      "message" : "instance value (\"Z10\") not found in enum (possible values: [\"WGS84\"])",<br>      "value" : "Z10",<br>      "enum" : [ "WGS84" ]<br>    }, {<br>      "level" : "error",<br>      "schema" : {<br>        "loadingURI" : "file:/C:/x3d-code/<a href="http://www.web3d.org/specifications/x3d-3.3-JSONSchema.json" target="_blank">www.web3d.org/specifications/x3d-3.3-JSONSchema.json#</a>",<br>        "pointer" : "/definitions/@geoSystem/oneOf/0/additionalItems"<br>      },<br>      "instance" : {<br>        "pointer" : "/X3D/Scene/-children/4/GeoViewpoint/-geoOrigin/GeoOrigin/@geoSystem/2"<br>      },<br>      "domain" : "validation",<br>      "keyword" : "enum",<br>      "message" : "instance value (\"N\") not found in enum (possible values: [\"AM\",\"AN\",\"BN\",\"BR\",\"CC\",\"CD\",\"EA\",\"EB\",\"EC\",\"ED\",\"EE\",\"EF\",\"FA\",\"HE\",\"HO\",\"ID\",\"IN\",\"KA\",\"RF\",\"SA\",\"WD\",\"WE\"])",<br>      "value" : "N",<br>      "enum" : [ "AM", "AN", "BN", "BR", "CC", "CD", "EA", "EB", "EC", "ED", "EE", "EF", "FA", "HE", "HO", "ID", "IN", "KA", "RF", "SA", "WD", "WE" ]<br>    } ],<br><br>etc.<br><br>all the best, Don<br>-- <br>Don Brutzman  Naval Postgraduate School, Code USW/Br       <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   <a href="tel:%2B1.831.656.2149" target="_blank">+1.831.656.2149</a><br>X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" target="_blank">http://faculty.nps.edu/brutzman</a><o:p></o:p></p></blockquote></div></div></div></body></html>