On Mon, Oct 24, 2016 at 08:37:06PM +0200, "Peter “Peter, Berlin” Rosemann" wrote: > Hello Dave, > > could it be that this is the reason why its not possible to process fpml > (from main onwards) when I use " --one-file-per-xsd “? > I use generateDS same way as you do in your GitHub repository, one by one at > right now.
Thanks for this suggestion. I've downloaded the latest FpML schemas that I can find at www.fpml.org, and am trying to do some testing with them. > > Regards > > Peter > > p.s. > > Love your tool! Saves so much time! Thank you! > Great. I appreciate the comment. Dave > > > On 23 Oct 2016, at 22:56, Dave Kuhlman <dkuhl...@davekuhlman.org> wrote: > > > > On Sun, Oct 23, 2016 at 05:30:55PM +0200, Pietro Saccardi wrote: > >> Hello Dave, > >> > >> my name is Pietro. I recently started using generateDS--great job! it's > >> really useful and works seamlessly out of the box. > > > > Pietro, > > > > Great. > > > >> > >> While testing, I encountered a bug. I wanted to file it to sourceforce, but > >> I am unable to create tickets. I am also not very used to the platform so I > >> may have missed something. > > > > Not so great. > > > > Thanks for reporting this. I'm going to be away traveling for most > > of this week. I've put this on my To-do list, and will look at it when > > I get back. > > > > My recollection is that generateDS.py does not distinguish very > > carefully between <xsd:sequence> and <xsd:choice>. So, this may be > > a pretty deep problem. But, at the least, generateDS.py should not > > generate the silly code that your example shows. > > > > More later. > > > > Dave > > > >> > >> Anyway, I'll describe the bug. > >> > >> Consider such a schema: > >> > >> <xsd:element name="authors"> > >> <xsd:complexType> > >> <xsd:sequence> > >> <xsd:element ref="author"/> > >> <xsd:choice maxOccurs="unbounded" minOccurs="0"> > >> <xsd:element ref="author"/> > >> <xsd:element name="cooperation" type="xsd:string"/> > >> </xsd:choice> > >> </xsd:sequence> > >> </xsd:complexType> > >> </xsd:element> > >> > >> This will require the <authors> element to have a first child of type > >> <author>, followed by zero or more instances of the elements <author> or > >> <cooperation>. > >> > >> Such schema is not handled correctly in generateDS; it will generate > >> ambiguity between the unique, initial author and the list of author > >> objects. This is an excerpt of the buildChildren method of the authors > >> class: > >> > >> def buildChildren(self, child_, node, nodeName_, fromsubclass_=False): > >> if nodeName_ == 'author': > >> obj_ = person.factory() > >> obj_.build(child_) > >> self.author = obj_ > >> obj_.original_tagname_ = 'author' > >> elif nodeName_ == 'author': > >> obj_ = person.factory() > >> obj_.build(child_) > >> self.author.append(obj_) > >> obj_.original_tagname_ = 'author' > >> elif nodeName_ == 'cooperation': > >> cooperation_ = child_.text > >> cooperation_ = self.gds_validate_string(cooperation_, node, > >> 'cooperation') > >> self.cooperation.append(cooperation_) > >> > >> As you can see, the second elif will never be reached and any further > >> <author> will override the author property, losing the remaining elements > >> in the list. Also, the exportChildren method will crash, because it will > >> try to enumerate the author property of authors. > >> > >> I changed the structure of my XSD to work around this problem, but I think > >> this should either be remarked in the documentation or fixed. > >> > >> I hope this can be of any use; thank you for your great work on generateDS! > >> > >> Best regards, > >> > >> Pietro Saccardi > > > > -- > > > > Dave Kuhlman > > http://www.davekuhlman.org > > > > ------------------------------------------------------------------------------ > > Check out the vibrant tech community on one of the world's most > > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > _______________________________________________ > > generateds-users mailing list > > generateds-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/generateds-users > -- Dave Kuhlman http://www.davekuhlman.org ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today. http://sdm.link/xeonphi _______________________________________________ generateds-users mailing list generateds-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/generateds-users