diff options
Diffstat (limited to 'xsd/tests/cxx/parser/built-in')
| -rw-r--r-- | xsd/tests/cxx/parser/built-in/driver.cxx | 530 | ||||
| -rw-r--r-- | xsd/tests/cxx/parser/built-in/makefile | 83 | ||||
| -rw-r--r-- | xsd/tests/cxx/parser/built-in/output | 164 | ||||
| -rw-r--r-- | xsd/tests/cxx/parser/built-in/test.xml | 199 | ||||
| -rw-r--r-- | xsd/tests/cxx/parser/built-in/test.xsd | 63 | 
5 files changed, 1039 insertions, 0 deletions
| diff --git a/xsd/tests/cxx/parser/built-in/driver.cxx b/xsd/tests/cxx/parser/built-in/driver.cxx new file mode 100644 index 0000000..2791387 --- /dev/null +++ b/xsd/tests/cxx/parser/built-in/driver.cxx @@ -0,0 +1,530 @@ +// file      : tests/cxx/parser/built-in/driver.cxx +// copyright : Copyright (c) 2006-2014 Code Synthesis Tools CC +// license   : GNU GPL v2 + exceptions; see accompanying LICENSE file + +// Test built-in type parsing. +// + +#include <string> +#include <iostream> + +#include "test-pskel.hxx" + +using namespace std; +using namespace test; +using xml_schema::ro_string; + +struct any_type_pimpl: xml_schema::any_type_pimpl +{ +  virtual void +  pre () +  { +    cout << "{" << endl; +  } + +  virtual void +  _start_any_element (ro_string const&, +                      ro_string const& n, +		      ro_string const*) +  { +    cout << "  start any element '" << n << "'" << endl; +  } + +  virtual void +  _end_any_element (ro_string const&, ro_string const& n) +  { +    cout << "  end any element '" << n << "'" << endl; +  } + +  virtual void +  _any_attribute (ro_string const&, +                  ro_string const& n, +		  ro_string const& v) +  { +    cout << "  any attribute " << n << " = '" << v << "'" << endl; +  } + +  virtual void +  _any_characters (ro_string const& s) +  { +    cout << "  any text: '" << s << "'" << endl; +  } + +  virtual void +  post_any_type () +  { +    cout << "}" << endl +         << endl; +  } +}; + +struct any_simple_type_pimpl: xml_schema::any_simple_type_pimpl +{ +  virtual void +  pre () +  { +    cout << "{" << endl; +  } + +  virtual void +  _any_characters (ro_string const& s) +  { +    cout << "  any text: '" << s << "'" << endl; +  } + +  virtual void +  post_any_simple_type () +  { +    cout << "}" << endl +         << endl; +  } +}; + +struct type_pimpl: type_pskel +{ +  virtual void +  boolean (bool v) +  { +    cout << v << endl; +  } + +  virtual void +  byte (signed char v) +  { +    cout << short (v) << endl; +  } + +  virtual void +  unsigned_byte (unsigned char v) +  { +    cout << (unsigned short) (v) << endl; +  } + +  virtual void +  short_ (short v) +  { +    cout << v << endl; +  } + +  virtual void +  unsigned_short (unsigned short v) +  { +    cout << v << endl; +  } + +  virtual void +  int_ (int v) +  { +    cout << v << endl; +  } + +  virtual void +  unsigned_int (unsigned int v) +  { +    cout << v << endl; +  } + +  virtual void +  long_ (long long v) +  { +    cout << v << endl; +  } + +  virtual void +  unsigned_long (unsigned long long v) +  { +    cout << v << endl; +  } + +  virtual void +  integer (long long v) +  { +    cout << v << endl; +  } + +  virtual void +  negative_integer (long long v) +  { +    cout << v << endl; +  } + + +  virtual void +  non_positive_integer (long long v) +  { +    cout << v << endl; +  } + + +  virtual void +  positive_integer (unsigned long long v) +  { +    cout << v << endl; +  } + +  virtual void +  non_negative_integer (unsigned long long v) +  { +    cout << v << endl; +  } + +  virtual void +  float_ (float v) +  { +    cout << v << endl; +  } + +  virtual void +  double_ (double v) +  { +    cout << v << endl; +  } + +  virtual void +  decimal (double v) +  { +    cout << v << endl; +  } + +  virtual void +  string (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  normalized_string (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  token (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  name (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  nmtoken (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  nmtokens (xml_schema::string_sequence const& s) +  { +    cout << "'"; + +    for (xml_schema::string_sequence::const_iterator i (s.begin ()); +         i != s.end (); ++i) +      cout << *i << " "; + +    cout << "'" << endl; +  } + +  virtual void +  ncname (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  id (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  idref (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  idrefs (xml_schema::string_sequence const& s) +  { +    cout << "'"; + +    for (xml_schema::string_sequence::const_iterator i (s.begin ()); +         i != s.end (); ++i) +      cout << *i << " "; + +    cout << "'" << endl; +  } + +  virtual void +  language (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  uri (std::string const& v) +  { +    cout << "'" << v << "'" << endl; +  } + +  virtual void +  qname (xml_schema::qname const& v) +  { +    cout << "'" << v.prefix () << ":" << v.name () << "'" << endl; +  } + +  virtual void +  base64_binary (XSD_AUTO_PTR<xml_schema::buffer> v) +  { +    std::string tmp (v->data (), v->size ()); +    cout << "'" << tmp << "'" << endl; +  } + +  virtual void +  hex_binary (XSD_AUTO_PTR<xml_schema::buffer> v) +  { +    std::string tmp (v->data (), v->size ()); +    cout << "'" << tmp << "'" << endl; +  } + +  virtual void +  gday (xml_schema::gday const& v) +  { +    cout << v.day (); + +    if (v.zone_present ()) +      cout << (v.zone_hours () < 0 ? "" : "+") << v.zone_hours () +           << ':' << v.zone_minutes (); + +    cout << endl; +  } + +  virtual void +  gmonth (xml_schema::gmonth const& v) +  { +    cout << v.month (); + +    if (v.zone_present ()) +      cout << (v.zone_hours () < 0 ? "" : "+") << v.zone_hours () +           << ':' << v.zone_minutes (); + +    cout << endl; +  } + +  virtual void +  gyear (xml_schema::gyear const& v) +  { +    cout << v.year (); + +    if (v.zone_present ()) +      cout << (v.zone_hours () < 0 ? "" : "+") << v.zone_hours () +           << ':' << v.zone_minutes (); + +    cout << endl; +  } + +  virtual void +  gmonth_day (xml_schema::gmonth_day const& v) +  { +    cout << v.month () << '-' << v.day (); + +    if (v.zone_present ()) +      cout << (v.zone_hours () < 0 ? "" : "+") << v.zone_hours () +           << ':' << v.zone_minutes (); + +    cout << endl; +  } + +  virtual void +  gyear_month (xml_schema::gyear_month const& v) +  { +    cout << v.year () << '-' << v.month (); + +    if (v.zone_present ()) +      cout << (v.zone_hours () < 0 ? "" : "+") << v.zone_hours () +           << ':' << v.zone_minutes (); + +    cout << endl; +  } + +  virtual void +  date (xml_schema::date const& v) +  { +    cout << v.year () << '-' << v.month () << '-' << v.day (); + +    if (v.zone_present ()) +      cout << (v.zone_hours () < 0 ? "" : "+") << v.zone_hours () +           << ':' << v.zone_minutes (); + +    cout << endl; +  } + +  virtual void +  time (xml_schema::time const& v) +  { +    cout << v.hours () << ':' << v.minutes () << ':' << v.seconds (); + +    if (v.zone_present ()) +      cout << (v.zone_hours () < 0 ? "" : "+") << v.zone_hours () +           << ':' << v.zone_minutes (); + +    cout << endl; +  } + +  virtual void +  date_time (xml_schema::date_time const& v) +  { +    cout << v.year () << '-' << v.month () << '-' << v.day () << 'T' +         << v.hours () << ':' << v.minutes () << ':' << v.seconds (); + +    if (v.zone_present ()) +      cout << (v.zone_hours () < 0 ? "" : "+") << v.zone_hours () +           << ':' << v.zone_minutes (); + +    cout << endl; +  } + +  virtual void +  duration (xml_schema::duration const& v) +  { +    cout << (v.negative () ? "-" : "") << 'P' +         << v.years () << 'Y' +         << v.months () << 'M' +         << v.days () << 'D' +         << 'T' +         << v.hours () << 'H' +         << v.minutes () << 'M' +         << v.seconds () << 'S' +         << endl; +  } +}; + +int +main (int argc, char* argv[]) +{ +  if (argc != 2) +  { +    cerr << "usage: " << argv[0] << " test.xml" << endl; +    return 1; +  } + +  try +  { +    any_type_pimpl any_type_p; +    any_simple_type_pimpl any_simple_type_p; + +    xml_schema::boolean_pimpl boolean_p; + +    xml_schema::byte_pimpl byte_p; +    xml_schema::unsigned_byte_pimpl unsigned_byte_p; +    xml_schema::short_pimpl short_p; +    xml_schema::unsigned_short_pimpl unsigned_short_p; +    xml_schema::int_pimpl int_p; +    xml_schema::unsigned_int_pimpl unsigned_int_p; +    xml_schema::long_pimpl long_p; +    xml_schema::unsigned_long_pimpl unsigned_long_p; + +    xml_schema::integer_pimpl integer_p; +    xml_schema::negative_integer_pimpl negative_integer_p; +    xml_schema::non_positive_integer_pimpl non_positive_integer_p; +    xml_schema::positive_integer_pimpl positive_integer_p; +    xml_schema::non_negative_integer_pimpl non_negative_integer_p; + +    xml_schema::float_pimpl float_p; +    xml_schema::double_pimpl double_p; +    xml_schema::decimal_pimpl decimal_p; + +    xml_schema::string_pimpl string_p; +    xml_schema::normalized_string_pimpl normalized_string_p; +    xml_schema::token_pimpl token_p; +    xml_schema::name_pimpl name_p; +    xml_schema::nmtoken_pimpl nmtoken_p; +    xml_schema::nmtokens_pimpl nmtokens_p; +    xml_schema::ncname_pimpl ncname_p; +    xml_schema::id_pimpl id_p; +    xml_schema::idref_pimpl idref_p; +    xml_schema::idrefs_pimpl idrefs_p; + +    xml_schema::language_pimpl language_p; +    xml_schema::uri_pimpl uri_p; +    xml_schema::qname_pimpl qname_p; + +    xml_schema::base64_binary_pimpl base64_binary_p; +    xml_schema::hex_binary_pimpl hex_binary_p; + +    xml_schema::gday_pimpl gday_p; +    xml_schema::gmonth_pimpl gmonth_p; +    xml_schema::gyear_pimpl gyear_p; +    xml_schema::gmonth_day_pimpl gmonth_day_p; +    xml_schema::gyear_month_pimpl gyear_month_p; +    xml_schema::date_pimpl date_p; +    xml_schema::time_pimpl time_p; +    xml_schema::date_time_pimpl date_time_p; +    xml_schema::duration_pimpl duration_p; + +    type_pimpl type_p; + +    type_p.parsers (any_type_p, +                    any_simple_type_p, +                    boolean_p, +                    byte_p, +                    unsigned_byte_p, +                    short_p, +                    unsigned_short_p, +                    int_p, +                    unsigned_int_p, +                    long_p, +                    unsigned_long_p, +                    integer_p, +                    negative_integer_p, +                    non_positive_integer_p, +                    positive_integer_p, +                    non_negative_integer_p, +                    float_p, +                    double_p, +                    decimal_p, +                    string_p, +                    normalized_string_p, +                    token_p, +                    name_p, +                    nmtoken_p, +                    nmtokens_p, +                    ncname_p, +                    id_p, +                    idref_p, +                    idrefs_p, +                    language_p, +                    uri_p, +                    qname_p, +                    base64_binary_p, +                    hex_binary_p, +                    gday_p, +                    gmonth_p, +                    gyear_p, +                    gmonth_day_p, +                    gyear_month_p, +                    date_p, +                    time_p, +                    date_time_p, +                    duration_p); + +    xml_schema::document doc_p (type_p, "test", "root"); + +    type_p.pre (); +    doc_p.parse (argv[1]); +    type_p.post_type (); +  } +  catch (xml_schema::exception const& e) +  { +    cerr << e << endl; +    return 1; +  } +  catch (std::ios_base::failure const&) +  { +    cerr << "io failure" << endl; +    return 1; +  } +} diff --git a/xsd/tests/cxx/parser/built-in/makefile b/xsd/tests/cxx/parser/built-in/makefile new file mode 100644 index 0000000..64987d0 --- /dev/null +++ b/xsd/tests/cxx/parser/built-in/makefile @@ -0,0 +1,83 @@ +# file      : tests/cxx/parser/built-in/makefile +# copyright : Copyright (c) 2006-2014 Code Synthesis Tools CC +# license   : GNU GPL v2 + exceptions; see accompanying LICENSE file + +include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make + +xsd := test.xsd +cxx := driver.cxx + +obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=-pskel.o)) +dep := $(obj:.o=.o.d) + +driver := $(out_base)/driver +test   := $(out_base)/.test +clean  := $(out_base)/.clean + +# Import. +# +$(call import,\ +  $(scf_root)/import/libxerces-c/stub.make,\ +  l: xerces_c.l,cpp-options: xerces_c.l.cpp-options) + +# Build. +# +$(driver): $(obj) $(xerces_c.l) + +$(obj) $(dep): cpp_options := -I$(out_base) -I$(src_base) -I$(src_root)/libxsd +$(obj) $(dep): $(xerces_c.l.cpp-options) + +genf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx) +gen  := $(addprefix $(out_base)/,$(genf)) + +$(gen): xsd := $(out_root)/xsd/xsd +$(gen): $(out_root)/xsd/xsd + +$(call include-dep,$(dep),$(obj),$(gen)) + +# Convenience alias for default target. +# +$(out_base)/: $(driver) + + +# Test. +# +$(test): driver := $(driver) +$(test): $(driver) $(src_base)/test.xml $(src_base)/output +	$(call message,test $$1,$$1 $(src_base)/test.xml | diff -u $(src_base)/output -,$(driver)) + +# Clean. +# +$(clean): $(driver).o.clean                                 \ +  $(addsuffix .cxx.clean,$(obj))                            \ +  $(addsuffix .cxx.clean,$(dep))                            \ +  $(addprefix $(out_base)/,$(xsd:.xsd=-pskel.cxx.xsd.clean)) + +# Generated .gitignore. +# +ifeq ($(out_base),$(src_base)) +$(gen): | $(out_base)/.gitignore +$(driver): | $(out_base)/.gitignore + +$(out_base)/.gitignore: files := driver $(genf) +$(clean): $(out_base)/.gitignore.clean + +$(call include,$(bld_root)/git/gitignore.make) +endif + +# How to. +# +$(call include,$(bld_root)/cxx/o-e.make) +$(call include,$(bld_root)/cxx/cxx-o.make) +$(call include,$(bld_root)/cxx/cxx-d.make) + +$(call include,$(bld_root)/cxx/standard.make) # cxx_standard +ifdef cxx_standard +$(gen): xsd_options += --std $(cxx_standard) +$(call include,$(scf_root)/xsd/parser/xsd-cxx.make) +endif + + +# Dependencies. +# +$(call import,$(src_root)/xsd/makefile) diff --git a/xsd/tests/cxx/parser/built-in/output b/xsd/tests/cxx/parser/built-in/output new file mode 100644 index 0000000..756abcd --- /dev/null +++ b/xsd/tests/cxx/parser/built-in/output @@ -0,0 +1,164 @@ +{ +  any attribute x = 'x' +  any text: ' +    ' +  start any element 'a' +  any text: 'a' +  end any element 'a' +  any text: ' +    ' +  start any element 'any-type' +  any attribute x = 'xxx' +  any text: 'aaa' +  start any element 'a' +  any text: 'bbb' +  end any element 'a' +  any text: 'ccc' +  end any element 'any-type' +  any text: ' +  ' +} + +{ +  any text: '123abc' +} + +1 +0 +1 +0 +0 +127 +-128 +123 +0 +255 +123 +0 +32767 +-32768 +-12345 +0 +65535 +12345 +0 +2147483647 +-2147483648 +-1234567890 +0 +4294967295 +1234567890 +0 +9223372036854775807 +-9223372036854775808 +-1234567890123456789 +0 +18446744073709551615 +12345678901234567890 +0 +2147483647 +-2147483648 +-1234567890 +-2147483648 +-1234567890 +0 +-2147483648 +-1234567890 +4294967295 +1234567890 +0 +4294967295 +1234567890 +0 +0 +-0 +inf +-inf +nan +123.567 +123.567 +-1.23567e+07 +-4.5e-06 +0 +0 +-0 +inf +-inf +nan +123.567 +123.567 +-1.23567e+07 +-4.5e-06 +0 +0 +-0 +123.567 +123.567 +-123.567 +'string space +newline +  ' +' string space newline    ' +'string space newline' +'as123:345-.abs' +'1as123:345-.abs' +'abc 123 ' +'as123_345-.abs' +'as123_345-.abs' +'abc' +'a123' +'as123_345-.abs' +'abc a123 ' +'x' +'en' +'en-us' +'one-two-three-four44-seven77-eight888' +'' +'relative' +'#id' +'http://www.example.com/foo#bar' +':schemaLocation' +'xsi:schemaLocation' +'12345abcjk' +'a' +'ab' +'abc' +'' +'12345abcjk' +12+12:0 +1 +31 +15+0:0 +15-14:0 +10+12:0 +1 +12+0:0 +2007+12:0 +1 +-20000+0:0 +10-28+12:0 +12-31 +1-1+0:0 +2007-12+12:0 +-2007-10 +20007-10+0:0 +-20007-1 +2007-12-26+12:0 +-2007-10-15 +20007-12-31+0:0 +-20007-1-1 +12:46:23.456+12:0 +12:13:14 +12:13:14+0:0 +2007-12-26T12:13:14.123+12:0 +-2007-10-15T12:13:14 +20007-12-31T12:13:14+0:0 +-20007-1-1T12:13:14 +-P2007Y13M32DT25H61M61.123S +P1Y0M0DT0H0M0S +P0Y1M0DT0H0M0S +P0Y0M1DT0H0M0S +P0Y0M0DT1H0M0S +P0Y0M0DT0H1M0S +P0Y0M0DT0H0M1.1S +P1Y0M0DT0H0M1S diff --git a/xsd/tests/cxx/parser/built-in/test.xml b/xsd/tests/cxx/parser/built-in/test.xml new file mode 100644 index 0000000..8d9332a --- /dev/null +++ b/xsd/tests/cxx/parser/built-in/test.xml @@ -0,0 +1,199 @@ +<t:root xmlns:t="test" +        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +        xsi:schemaLocation="test test.xsd"> + +  <any-type x="x"> +    <a>a</a> +    <any-type x="xxx">aaa<a>bbb</a>ccc</any-type> +  </any-type> + +  <any-simple-type>123abc</any-simple-type> + +  <boolean>1</boolean> +  <boolean> 0 </boolean> +  <boolean>true</boolean> +  <boolean> false </boolean> + +  <byte>0</byte> +  <byte>+127</byte> +  <byte>-128</byte> +  <byte> 123 </byte> + +  <unsigned-byte>0</unsigned-byte> +  <unsigned-byte>255</unsigned-byte> +  <unsigned-byte> 123 </unsigned-byte> + +  <short>0</short> +  <short>+32767</short> +  <short>-32768</short> +  <short> -12345 </short> + +  <unsigned-short>0</unsigned-short> +  <unsigned-short>65535</unsigned-short> +  <unsigned-short> 12345 </unsigned-short> + +  <int>0</int> +  <int>+2147483647</int> +  <int>-2147483648</int> +  <int> -1234567890 </int> + +  <unsigned-int>0</unsigned-int> +  <unsigned-int>4294967295</unsigned-int> +  <unsigned-int> 1234567890 </unsigned-int> + +  <long>0</long> +  <long>+9223372036854775807</long> +  <long>-9223372036854775808</long> +  <long> -1234567890123456789 </long> + +  <unsigned-long>0</unsigned-long> +  <unsigned-long>18446744073709551615</unsigned-long> +  <unsigned-long> 12345678901234567890 </unsigned-long> + +  <integer>0</integer> +  <integer> +2147483647 </integer> +  <integer>-02147483648</integer> +  <integer>-1234567890</integer> + +  <negative-integer>-02147483648</negative-integer> +  <negative-integer> -1234567890 </negative-integer> + +  <non-positive-integer>0</non-positive-integer> +  <non-positive-integer>-02147483648</non-positive-integer> +  <non-positive-integer> -1234567890 </non-positive-integer> + +  <positive-integer>4294967295</positive-integer> +  <positive-integer> +01234567890 </positive-integer> + +  <non-negative-integer>0</non-negative-integer> +  <non-negative-integer>4294967295</non-negative-integer> +  <non-negative-integer> +01234567890 </non-negative-integer> + +  <float>0</float> +  <float>+0</float> +  <float>-0</float> +  <float>INF</float> +  <float>-INF</float> +  <float>NaN</float> +  <float> 123.567 </float> +  <float>+123.567</float> +  <float>-123.567e5</float> +  <float>-.45E-5</float> + +  <double>0</double> +  <double>+0</double> +  <double>-0</double> +  <double>INF</double> +  <double>-INF</double> +  <double>NaN</double> +  <double> 123.567 </double> +  <double>+123.567</double> +  <double>-123.567e5</double> +  <double>-.45E-5</double> + +  <decimal>0</decimal> +  <decimal>+0</decimal> +  <decimal>-0</decimal> +  <decimal> 123.567 </decimal> +  <decimal>+123.567</decimal> +  <decimal>-123.567</decimal> + +  <string>string space +newline +  </string> + +  <normalized-string> string space +newline + +  </normalized-string> + +  <token> string space +newline + +  </token> + +  <name> as123:345-.abs </name> + +  <nmtoken> 1as123:345-.abs </nmtoken> + +  <nmtokens> abc   123 </nmtokens> + +  <ncname> as123_345-.abs </ncname> + +  <id> as123_345-.abs </id> +  <id> abc </id> +  <id> a123 </id> + +  <idref> as123_345-.abs </idref> + +  <idrefs> abc   a123 </idrefs> + +  <language> x </language> +  <language> en </language> +  <language> en-us </language> +  <language>one-two-three-four44-seven77-eight888</language> + +  <uri>   </uri> +  <uri> relative </uri> +  <uri> #id </uri> +  <uri> http://www.example.com/foo#bar </uri> + +  <qname>schemaLocation</qname> +  <qname>xsi:schemaLocation</qname> + +  <base64_binary> MTIzND +                  VhYmNqaw = =</base64_binary> +  <base64_binary>YQ==</base64_binary> +  <base64_binary>YWI=</base64_binary> +  <base64_binary>YWJj</base64_binary> + +  <hex_binary>  </hex_binary> +  <hex_binary> 31323334356162636a6b   </hex_binary> + +  <gday>  ---12+12:00  </gday> +  <gday>---01</gday> +  <gday>---31</gday> +  <gday>---15Z</gday> +  <gday>---15-14:00</gday> + +  <gmonth>  --10+12:00  </gmonth> +  <gmonth>--01</gmonth> +  <gmonth>--12Z</gmonth> + +  <gyear>  2007+12:00  </gyear> +  <gyear>0001</gyear> +  <gyear>-20000Z</gyear> + +  <gmonth_day>  --10-28+12:00  </gmonth_day> +  <gmonth_day>--12-31</gmonth_day> +  <gmonth_day>--01-01Z</gmonth_day> + +  <gyear_month>  2007-12+12:00  </gyear_month> +  <gyear_month>-2007-10</gyear_month> +  <gyear_month>20007-10Z</gyear_month> +  <gyear_month>-20007-01</gyear_month> + +  <date>  2007-12-26+12:00  </date> +  <date>-2007-10-15</date> +  <date>20007-12-31Z</date> +  <date>-20007-01-01</date> + +  <time>  12:46:23.456+12:00  </time> +  <time>12:13:14</time> +  <time>12:13:14Z</time> + +  <date_time>  2007-12-26T12:13:14.123+12:00  </date_time> +  <date_time>-2007-10-15T12:13:14</date_time> +  <date_time>20007-12-31T12:13:14Z</date_time> +  <date_time>-20007-01-01T12:13:14</date_time> + +  <duration>  -P2007Y13M32DT25H61M61.123S  </duration> +  <duration>P1Y</duration> +  <duration>P1M</duration> +  <duration>P1D</duration> +  <duration>PT1H</duration> +  <duration>PT1M</duration> +  <duration>PT1.1S</duration> +  <duration>P1YT1S</duration> + +</t:root> diff --git a/xsd/tests/cxx/parser/built-in/test.xsd b/xsd/tests/cxx/parser/built-in/test.xsd new file mode 100644 index 0000000..9c00eb4 --- /dev/null +++ b/xsd/tests/cxx/parser/built-in/test.xsd @@ -0,0 +1,63 @@ +<?xml version="1.0"?> +<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test"> + +  <complexType name="type"> +    <sequence> +      <element name="any-type" type="anyType" maxOccurs="unbounded"/> +      <element name="any-simple-type" type="anySimpleType" maxOccurs="unbounded"/> + +      <element name="boolean" type="boolean" maxOccurs="unbounded"/> + +      <element name="byte" type="byte" maxOccurs="unbounded"/> +      <element name="unsigned-byte" type="unsignedByte" maxOccurs="unbounded"/> +      <element name="short" type="short" maxOccurs="unbounded"/> +      <element name="unsigned-short" type="unsignedShort" maxOccurs="unbounded"/> +      <element name="int" type="int" maxOccurs="unbounded"/> +      <element name="unsigned-int" type="unsignedInt" maxOccurs="unbounded"/> +      <element name="long" type="long" maxOccurs="unbounded"/> +      <element name="unsigned-long" type="unsignedLong" maxOccurs="unbounded"/> + +      <element name="integer" type="integer" maxOccurs="unbounded"/> +      <element name="negative-integer" type="negativeInteger" maxOccurs="unbounded"/> +      <element name="non-positive-integer" type="nonPositiveInteger" maxOccurs="unbounded"/> +      <element name="positive-integer" type="positiveInteger" maxOccurs="unbounded"/> +      <element name="non-negative-integer" type="nonNegativeInteger" maxOccurs="unbounded"/> + +      <element name="float" type="float" maxOccurs="unbounded"/> +      <element name="double" type="double" maxOccurs="unbounded"/> +      <element name="decimal" type="decimal" maxOccurs="unbounded"/> + +      <element name="string" type="string" maxOccurs="unbounded"/> +      <element name="normalized-string" type="normalizedString" maxOccurs="unbounded"/> +      <element name="token" type="token" maxOccurs="unbounded"/> +      <element name="name" type="Name" maxOccurs="unbounded"/> +      <element name="nmtoken" type="NMTOKEN" maxOccurs="unbounded"/> +      <element name="nmtokens" type="NMTOKENS" maxOccurs="unbounded"/> +      <element name="ncname" type="NCName" maxOccurs="unbounded"/> +      <element name="id" type="ID" maxOccurs="unbounded"/> +      <element name="idref" type="IDREF" maxOccurs="unbounded"/> +      <element name="idrefs" type="IDREFS" maxOccurs="unbounded"/> + +      <element name="language" type="language" maxOccurs="unbounded"/> +      <element name="uri" type="anyURI" maxOccurs="unbounded"/> +      <element name="qname" type="QName" maxOccurs="unbounded"/> + +      <element name="base64_binary" type="base64Binary" maxOccurs="unbounded"/> +      <element name="hex_binary" type="hexBinary" maxOccurs="unbounded"/> + +      <element name="gday" type="gDay" maxOccurs="unbounded"/> +      <element name="gmonth" type="gMonth" maxOccurs="unbounded"/> +      <element name="gyear" type="gYear" maxOccurs="unbounded"/> +      <element name="gmonth_day" type="gMonthDay" maxOccurs="unbounded"/> +      <element name="gyear_month" type="gYearMonth" maxOccurs="unbounded"/> +      <element name="date" type="date" maxOccurs="unbounded"/> +      <element name="time" type="time" maxOccurs="unbounded"/> +      <element name="date_time" type="dateTime" maxOccurs="unbounded"/> +      <element name="duration" type="duration" maxOccurs="unbounded"/> + +    </sequence> +  </complexType> + +  <element name="root" type="t:type"/> + +</schema> | 
