Re: [Generateds-discuss] Single simpleType results in un-exportable enum
Brought to you by:
dkuhlman
From: Dave K. <dku...@da...> - 2023-06-19 22:16:44
|
A little more follow-up -- You can run those attached files with the following: $ generateDS.py -f -o tmp01.py test02.xsd $ python tmp01.py test02-01.xml Dave K. Quoting Dave Kuhlman <dku...@da...>: > David, > > Good to hear from you. > Sorry I'm a bit slow responding. > > Here are a few words of explanation, or maybe excuse making, > depending on your point of view: > > One, `generateds` is designed around the idea that we want to > generate Python classes that help us process the elements in a XML > instance document. It generates each of those Python classes from > an `xs:complexType` definition in the XML schema. But, your schema > does not have any complex type definitions. And, therefore, we do > not get code that is of much use. > > Two, the XML instance document that you included does not validate > against your schema. You can use `xmllint` to check this. Or, > if you do not have `xmllint`, you can use `validate.py`, which is > in `generateds/utils/validate.py` in the generateds source repo: > `https://sourceforge.net/projects/generateds/` and > `https://sourceforge.net/p/generateds/code/ci/default/tree/`. > If you have Mercurial (Hg), you can download it with this: > `hg clone http://hg.code.sf.net/p/generateds/code generateds-code`. > > `test01.xsd` and `test01-01.xml` (attached) contain your schema and instance > doc (ightly patched). > > When I run `xmllint`, I see the following: > > $ xmllint --noout --schema test01.xsd test01-01.xml > test01-01.xml:1: element MyTestXML: Schemas validity error : > Element 'MyTestXML': No matching global declaration available for > the validation root. > test01-01.xml fails to validate > > `validate.py` produces a similar message because it is built on top > of `lxml` which is built on top of `libxml2` (and `libxml2-utils`, > which provides `xmllint`). > > So, my suggestion is to add a complex type. > > `test02.xsd` and `test02-01.xml` (attached) contain a schema and > instance doc with a `complexType` that uses your `simpleType`. > > The files `test02.xsd` and `test02-01.xml` (attached) provide an XML > schema and an XML instance doc that does this. Maybe it will give > you a hint about how to address your needs. > > Hope this helps. If you have more questions, please let me know. > > Dave > > > Quoting David Ferguson <fer...@gm...>: > >> Hi, >> >> I'm trying to use generateDS to parse and generate XML documents, and >> am very impressed so far - it is handling some complex XSDs very well. >> >> However I seem to have run into an issue for a simple XSD, where only >> a single simpleType enum is defined. My XDS is as follows: >> >> <?xml version="1.0" encoding="UTF-8" standalone="no"?> >> <xsi:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema" >> xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="4.1.0"> >> <xsi:simpleType name="MyTestXML"> >> <xsi:restriction base="xsd:string"> >> <xsi:enumeration value="ValueA"/> >> <xsi:enumeration value="ValueB"/> >> </xsi:restriction> >> </xsi:simpleType> >> </xsi:schema> >> >> And the XML documents are very simple, for example >> <MyTestXML>ValueA</MyTestXML>. >> >> When I run generateDS with `generateDS -o test.py test.xsd `, the >> output is just an enum, eg: >> >> class MyTestXML(str, Enum): >> VALUE_A='ValueA' >> VALUE_B='ValueB' >> >> And therefore I cannot parse, or export XML documents. Is this >> something I'm doing wrong, or a limitation in the program? >> >> Many thanks, >> David >> >> >> _______________________________________________ >> Generateds-discuss mailing list >> Gen...@li... >> https://lists.sourceforge.net/lists/listinfo/generateds-discuss > > > > -- > Dave Kuhlman > http://www.davekuhlman.org -- Dave Kuhlman http://www.davekuhlman.org |