<html><head></head><body><div style="color:#000; background-color:#fff; font-family:Courier New, courier, monaco, monospace, sans-serif;font-size:13px"><div id="yui_3_16_0_1_1468431763328_45569"><span id="yui_3_16_0_1_1468431763328_45568">Actually, Swagger does allow # in the variable name. You just need to double quote the variable name.</span></div><div id="yui_3_16_0_1_1468431763328_45569">The bigger problem is that Swagger does not support the patternProperties that is defined as part of the JSON schema. patternProperties will allow us to specify something like name(#..)*</div><div id="yui_3_16_0_1_1468431763328_45569">Without patternProperties support, we might end up having to write the property names for each language/script.</div><div id="yui_3_16_0_1_1468431763328_45569"><br></div><div id="yui_3_16_0_1_1468431763328_45569">As for using the map, it would be something like the following :</div><div id="yui_3_16_0_1_1468431763328_45569"><br></div><div id="yui_3_16_0_1_1468431763328_46153">  ErrorMessage:</div><div id="yui_3_16_0_1_1468431763328_46154">    properties:</div><div id="yui_3_16_0_1_1468431763328_46155">      longMessage:</div><div id="yui_3_16_0_1_1468431763328_46156">        type: string</div><div id="yui_3_16_0_1_1468431763328_46157">      shortMessage:</div><div id="yui_3_16_0_1_1468431763328_46158">        type: string</div><div id="yui_3_16_0_1_1468431763328_46159">  </div><div id="yui_3_16_0_1_1468431763328_46160">  MultilingualErrorMessage:</div><div id="yui_3_16_0_1_1468431763328_46161">    additionalProperties:</div><div id="yui_3_16_0_1_1468431763328_46162">    $ref: "#/definitions/ErrorMessage"</div><div id="yui_3_16_0_1_1468431763328_46163">    </div><div id="yui_3_16_0_1_1468431763328_46164">  Error:</div><div id="yui_3_16_0_1_1468431763328_46165">    required:</div><div id="yui_3_16_0_1_1468431763328_46166">      - code</div><div id="yui_3_16_0_1_1468431763328_46167">      - message</div><div id="yui_3_16_0_1_1468431763328_46168">    properties:</div><div id="yui_3_16_0_1_1468431763328_46169">      code:</div><div id="yui_3_16_0_1_1468431763328_46170">        type: string</div><div id="yui_3_16_0_1_1468431763328_46171">      message:<br></div><div dir="ltr" id="yui_3_16_0_1_1468431763328_46176">        $ref: "#/definitions/MultilingualErrorMessage"    </div><div id="yui_3_16_0_1_1468431763328_45569"><br></div><div id="yui_3_16_0_1_1468431763328_45569"><br></div><div id="yui_3_16_0_1_1468431763328_45569">Error is a multi-lingual error object like :</div><div id="yui_3_16_0_1_1468431763328_45569"><br></div><div id="yui_3_16_0_1_1468431763328_45569">{</div><div id="yui_3_16_0_1_1468431763328_45569">"code": "dberror",</div><div id="yui_3_16_0_1_1468431763328_45569">"message" : {</div><div id="yui_3_16_0_1_1468431763328_45569"><br></div><div id="yui_3_16_0_1_1468431763328_46410">    "en" : {</div><div dir="ltr" id="yui_3_16_0_1_1468431763328_46411">        "longMessage" : "long error message",<br id="yui_3_16_0_1_1468431763328_46412"></div><div dir="ltr" id="yui_3_16_0_1_1468431763328_46413">        "shortMessage" : "short error message",<br id="yui_3_16_0_1_1468431763328_46414"></div><div id="yui_3_16_0_1_1468431763328_46415">    },</div><div id="yui_3_16_0_1_1468431763328_46416">    "fr" : {</div><div dir="ltr" id="yui_3_16_0_1_1468431763328_46417">        "longMessage" : "some long message in French",<br id="yui_3_16_0_1_1468431763328_46418"></div><div dir="ltr" id="yui_3_16_0_1_1468431763328_46419">        "shortMessage" : "some short message in French"<br id="yui_3_16_0_1_1468431763328_46420"></div><div dir="ltr" id="yui_3_16_0_1_1468431763328_46421">    }</div><div id="yui_3_16_0_1_1468431763328_45569">}</div><div id="yui_3_16_0_1_1468431763328_45569"><br></div><div id="yui_3_16_0_1_1468431763328_45569"><br></div><div id="yui_3_16_0_1_1468431763328_45569">The additionalProperties of MultilingualErrorMessage only state that it has additional properties that are ErrorMessage objects. It doesn't state what the property name is so it can be anything. But we would need to document that the property name must be language_script format or something like that.</div><div id="yui_3_16_0_1_1468431763328_45569"><br></div><div id="yui_3_16_0_1_1468431763328_45569">The Swagger editor doesn't show additonalProperties in an obvious way.</div><div class="qtdSeparateBR" id="yui_3_16_0_1_1468431763328_45567"><br><br></div><div class="yahoo_quoted" id="yui_3_16_0_1_1468431763328_45526" style="display: block;">  <div style="font-family: Courier New, courier, monaco, monospace, sans-serif; font-size: 13px;" id="yui_3_16_0_1_1468431763328_45525"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1468431763328_45524"> <div dir="ltr" id="yui_3_16_0_1_1468431763328_45566"> <font size="2" face="Arial" id="yui_3_16_0_1_1468431763328_45775"> <hr size="1" id="yui_3_16_0_1_1468431763328_45776"> <b><span style="font-weight:bold;">From:</span></b> Nat Sakimura <nat@sakimura.org><br> <b><span style="font-weight: bold;">To:</span></b> Openid-specs Fapi <openid-specs-fapi@lists.openid.net> <br> <b><span style="font-weight: bold;">Sent:</span></b> Wednesday, July 13, 2016 10:54 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> [Openid-specs-fapi] Representing international strings<br> </font> </div> <div class="y_msg_container" id="yui_3_16_0_1_1468431763328_45523"><br><div id="yiv3731023586">
<div id="yui_3_16_0_1_1468431763328_45522">
<div id="yui_3_16_0_1_1468431763328_45531">Hi</div>
<div id="yui_3_16_0_1_1468431763328_45530">OpenID Connect introduced a variable name scheme for international scripts. For example, a name in Katakana script in Japanese will be represented as </div>
<div id="yui_3_16_0_1_1468431763328_45529">        name#ja-Kana-JP</div>
<div id="yui_3_16_0_1_1468431763328_45528">where "ja-Kana-JP" part is described in ISO script format. </div>
<div id="yui_3_16_0_1_1468431763328_45521">My question to the list is whether do we want to continue using this scheme even on Swagger. As swagger cannot have # in the variable name, it would become like</div>
<div id="yui_3_16_0_1_1468431763328_45534">        name%23ja-Kana-JP</div>
<div id="yui_3_16_0_1_1468431763328_45532">etc. This may be OK, but there could be better ways as well, I suppose. </div>
<div id="yui_3_16_0_1_1468431763328_45533">Another obvious ways to deal with it is to use map where the key is going to be the script name and value is the actual value for the parameter. </div>
<div id="yui_3_16_0_1_1468431763328_46102">In any case, I need to find out how to put a variable as the key/name in Swagger definition. Those who knows Swagger well, please help. </div>
<div id="yui_3_16_0_1_1468431763328_46299">Another issue that I have in mind is that what happens if Kanji arrives as "Name" in DDA endpoint. Would the application be OK with it or blows up? Read only case would probably be ok, but if you wanted to send money, for example, and there are Kanji in the Transfer message, what would happen to the US banking system? </div>
<div id="yui_3_16_0_1_1468431763328_46565">Do we need to mandate the current Name like string restricted to ASCII? </div>
<div>Best, </div>
<div id="yui_3_16_0_1_1468431763328_46566">Nat Sakimura</div>
<div id="yui_3_16_0_1_1468431763328_46297"> </div>
<div id="yui_3_16_0_1_1468431763328_46293"> </div>
<div id="yui_3_16_0_1_1468431763328_46294"> </div>
</div></div><br>_______________________________________________<br>Openid-specs-fapi mailing list<br><a ymailto="mailto:Openid-specs-fapi@lists.openid.net" href="mailto:Openid-specs-fapi@lists.openid.net">Openid-specs-fapi@lists.openid.net</a><br><a href="http://lists.openid.net/mailman/listinfo/openid-specs-fapi" target="_blank">http://lists.openid.net/mailman/listinfo/openid-specs-fapi</a><br><br><br></div> </div> </div>  </div></div></body></html>