diff options
author | Peter A. Bigot <pabigot@users.sourceforge.net> | 2010-05-29 16:43:30 -0500 |
---|---|---|
committer | Peter A. Bigot <pabigot@users.sourceforge.net> | 2010-05-29 16:43:30 -0500 |
commit | 34a09a640f2c6c8d0fdfaa9e1e8b52fe7d797b4f (patch) | |
tree | e467624015c1035fe5f35eca81464e915da4de55 | |
parent | db34f6487f8e29eb585aa7812066ad616a525535 (diff) |
New test for nested choice/sequence
-rw-r--r-- | tests/trac/test-trac-0033a.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/trac/test-trac-0033a.py b/tests/trac/test-trac-0033a.py new file mode 100644 index 0000000..66f3902 --- /dev/null +++ b/tests/trac/test-trac-0033a.py @@ -0,0 +1,54 @@ +import pyxb.binding.generate +import pyxb.utils.domutils +from xml.dom import Node + +import os.path +xsd='''<?xml version="1.0" encoding="UTF-8"?> +<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> +<xs:complexType name="tAddress"> + <xs:choice> + <xs:sequence> + <xs:element name="Line1" type="xs:string"/> + <xs:element name="Line2" type="xs:string"/> + </xs:sequence> + <xs:sequence> + <xs:element name="Missing" type="xs:string"/> + </xs:sequence> + </xs:choice> +</xs:complexType> +<xs:complexType name="tOther"> + <xs:sequence> + <xs:element name="Header" type="xs:string"/> + <xs:choice> + <xs:sequence> + <xs:element name="Special" type="tAddress"/> + <xs:element name="Common" type="tAddress" minOccurs="0"/> + </xs:sequence> + <xs:sequence> + <xs:element name="Common" type="tAddress"/> + </xs:sequence> + </xs:choice> + </xs:sequence> +</xs:complexType> +<xs:element name="elt" type="tOther"/> +</xs:schema>''' + +code = pyxb.binding.generate.GeneratePython(schema_text=xsd) +file('code.py', 'w').write(code) +#print code + +rv = compile(code, 'test', 'exec') +eval(rv) + +from pyxb.exceptions_ import * + +import unittest + +class TestTrac0033a (unittest.TestCase): + def test (self): + xml = '<elt><Header/><Common><Line1/><Line2/></Common></elt>' + instance = CreateFromDocument(xml) + +if __name__ == '__main__': + unittest.main() + |