xmerl trouble with validation anyURI type

Anton Ryabkov <[email protected]> Tue, 17 Mar 2015 14:12:26 +0600
Newsgroups gmane.comp.lang.erlang.bugs,gmane.comp.lang.erlang.patches
Message-ID <CAH_Ks=Q1qYt_=srX21e6EAbM4U_rtJhn1==V_rn4--vJsCNdkA@mail.gmail.com>
--047d7bb04bacf1a5440511778615
Content-Type: multipart/alternative; boundary=047d7bb04bacf1a53f0511778613

--047d7bb04bacf1a53f0511778613
Content-Type: text/plain; charset=UTF-8

Hello,

I have a trouble with validating xml document by xsd schema with
attribute's type anyURI and value = "alerting.wav". According to RFC 3986
(Uniform Resource Identifier)
"alerting.wav" is valid value for anyURI type. I've tried on Erlang R16B03,
17.4.

I attached simple sample, where you can see this problem. To run it,
compile xml_test and invoke "test" method.

I've analyzed xmerl source code, and have found that in xmerl_xsd_type.erl
file make validation anyURI type. According source code anyURI must
contains SCHEME section, but by RFC 3986
this section is optional. I've made fix, that validate anyURI type
according regular expression from RFC 3986, Appendix B.

--047d7bb04bacf1a53f0511778613
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hello,</div><div><br></div><div>I have a trouble with=
 validating xml document by xsd schema with attribute&#39;s type anyURI and=
 value =3D &quot;alerting.wav&quot;. According to RFC 3986 (Uniform Resourc=
e Identifier)</div><div>&quot;alerting.wav&quot; is valid value for anyURI =
type. I&#39;ve tried on Erlang R16B03,<span style=3D"color:rgb(0,0,0);white=
-space:pre-wrap"> 17.4.</span></div><div><br></div><div>I attached simple s=
ample, where you can see this problem. To run it, compile xml_test and invo=
ke &quot;test&quot; method.</div><div><br></div><div>I&#39;ve analyzed xmer=
l source code, and have found that in xmerl_xsd_type.erl file make validati=
on anyURI type. According source code anyURI must contains SCHEME section, =
but by RFC 3986</div><div>this section is optional. I&#39;ve made fix, that=
 validate anyURI type according regular expression from RFC 3986, Appendix =
B.</div><div><br></div></div>

--047d7bb04bacf1a53f0511778613--
--047d7bb04bacf1a5440511778615
Content-Type: application/x-gzip; name="xmerl_anyURI_bug.tar.gz"
Content-Disposition: attachment; filename="xmerl_anyURI_bug.tar.gz"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_i7d0qod70

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
EBAQEBAQEBAY4V877uXbAFAAAA==
--047d7bb04bacf1a5440511778615
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
erlang-bugs mailing list
[email protected]
http://erlang.org/mailman/listinfo/erlang-bugs

--047d7bb04bacf1a5440511778615--