aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2010-09-20 16:08:48 +0200
committerErlang/OTP <[email protected]>2010-09-20 16:08:48 +0200
commit33029e3620de625a90808cb1c06b3e8da873f724 (patch)
tree22c8a7648a4641b2b9e1c1c5f203685033838afd
parent27a5daae33616e662a36ed514c31618d51ad66e3 (diff)
parenteaab256c6be6814d51ee20583d5172085e3a6c15 (diff)
downloadotp-33029e3620de625a90808cb1c06b3e8da873f724.tar.gz
otp-33029e3620de625a90808cb1c06b3e8da873f724.tar.bz2
otp-33029e3620de625a90808cb1c06b3e8da873f724.zip
Merge branch 'lars/xmerl/validation-of-empty-element/OTP-8599' of ../lars_otp into maint-r13
* 'lars/xmerl/validation-of-empty-element/OTP-8599' of ../lars_otp: An empty element declared as simpleContent was not properly validated.
-rw-r--r--lib/xmerl/src/xmerl_xsd.erl19
1 files changed, 11 insertions, 8 deletions
diff --git a/lib/xmerl/src/xmerl_xsd.erl b/lib/xmerl/src/xmerl_xsd.erl
index c7bca86205..1aedc9e270 100644
--- a/lib/xmerl/src/xmerl_xsd.erl
+++ b/lib/xmerl/src/xmerl_xsd.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2006-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2006-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%%
@@ -2687,13 +2687,16 @@ check_element_type(XML=[E=#xmlElement{name=Name}|Rest],
_ ->
{error,{error_path(E,Name),?MODULE,{element_bad_match,E,Any,Env}}}
end;
-check_element_type([],CM,_Env,_Block,_S,Checked) ->
+check_element_type([],CM,_Env,_Block,S,Checked) ->
%% #schema_complex_type, any, #schema_group, anyType and lists are
%% catched above.
case CM of
+ #schema_simple_type{} ->
+ {NewVal,S2} = check_type(CM,[],unapplied,S),
+ {NewVal,[],S2};
{simpleType,_} ->
- {error,{error_path(Checked,undefined),?MODULE,
- {empty_content_not_allowed,CM}}};
+ {NewVal,S2} = check_type(CM,[],unapplied,S),
+ {NewVal,[],S2};
_ ->
{error,{error_path(Checked,undefined),?MODULE,
{empty_content_not_allowed,CM}}}