Re: [Generateds-users] Incorrect namespace

2017-11-07 Thread Dave Kuhlman
Bob,

Thanks for the test case.  I'll take a look.

Dave

On Tue, Nov 07, 2017 at 01:51:53PM -0800, Bob Barcklay wrote:
> Hi Dave,
> 
> Sorry for the delayed response.  I just reran the test on the latest code 
> from bitbucket.  The issue occurs when I import the xmldsig schema from 
> within another schema.  I’ve created a simple test schema that only imports 
> the xmldsig schema and do see the problem.  If I run generateDS on the 
> xmldsig schema directly (no importing), I get the results you describe.
> 
> 
> 
> 
> -Bob
> 
> 
> > On Nov 3, 2017, at 4:19 PM, Dave Kuhlman  wrote:
> > 
> > Bob,
> > 
> > I ran generateDS.py against the XML schema you sent me.
> > 
> > In class ReferenceType, I get this generated code for exportChildren:
> > 
> >def exportChildren(self, outfile, level, namespace_='ds:', 
> > name_='ReferenceType', fromsubclass_=False, pretty_print=True):
> >if pretty_print:
> >eol_ = '\n'
> >else:
> >eol_ = ''
> >if self.Transforms is not None:
> >self.Transforms.export(outfile, level, namespace_='ds:', 
> > name_='Transforms', pretty_print=pretty_print)
> >if self.DigestMethod is not None:
> >self.DigestMethod.export(outfile, level, namespace_='ds:', 
> > name_='DigestMethod', pretty_print=pretty_print)
> >if self.DigestValue is not None:
> >showIndent(outfile, level, pretty_print)
> >outfile.write('<%sDigestValue>%s%s' % 
> > (namespace_, self.gds_format_base64(self.DigestValue, 
> > input_name='DigestValue'), namespace_, eol_))
> > 
> > In the header line of this function, the namespace_ parameter gets
> > the default value 'ds:', whereas in your generated code (below) it
> > has the value 'oadr:'.  Am I right that the above code would handle
> > your issue correctly?  I've attached my generated file (which I
> > swear that I did not manually doctor.  Honest.) to a separate email.
> > 
> > So, why is your generated code different from mine?
> > 
> > Is it possible that we are using different versions of
> > generateDS.py?  You can look at the top of that generated file to
> > find the version.  You can also see, near the top of the file, what
> > command line and options I used to generate it.
> > 
> > If you suspect that this problem is happening because your version
> > is different from mine, you can find the latest version (which I am
> > using) at https://bitbucket.org/dkuhlman/generateds 
> > .
> > 
> > And, if it is not the version, then perhaps you could show me what
> > command line you used to generate your code (or send me the file,
> > since it has the command line options at the top).  Perhaps there is
> > some option that is causing the problem.  I tried several different
> > command lines, but they produced the same thing.  I tried the
> > following command lines:
> > 
> >$ ./generateDS.py -f -o "tmp01sup.py" -s "tmp01sub.py" 
> > --super="tmp01sup" --member-specs="dict" xmldsig-core-schema.xsd
> >$ ./generateDS.py -f -o "tmp2.py" xmldsig-core-schema.xsd
> > 
> > And, I get the same thing whether I use Python 2.7 or Python 3.6.
> > 
> > I need a clue.  Hope your weekend is/was a good one.
> > 
> > Dave
> > 
> > On Wed, Nov 01, 2017 at 05:09:56PM -0700, Bob Barcklay wrote:
> >> Hi Dave,
> >> 
> >> I’m using the XML Signature Schema
> >> (http://www.w3.org/2000/09/xmldsig#) imported and used inside
> >> another schema (http://openadr.org/oadr-2.0b/2012/07) to create a
> >> “signed object”.  I’m running into a problem with the namespace that
> >> is generated for one element within the XML Signature.  Everything
> >> else looks fine but this one element, which should get associated
> >> with the XML Digital Signature namespace is instead getting tagged
> >> with the surrounding namespace.  The XSD look fine:
> >> 
> >> 
> >> 
> >> 
> >>   
> >>  
> >>  
> >>  
> >>   
> >>   
> >>   
> >>   
> >> 
> >> 
> >> The DigestValue element is associated with the ‘ds’ namespace just
> >> like Transforms and DigestMethod, but the generated code for this
> >> element looks different.
> >> 
> >> def exportChildren(self, outfile, level, namespace_='oadr:', 
> >> name_='ReferenceType', fromsubclass_=False, pretty_print=True):
> >>if pretty_print:
> >>eol_ = '\n'
> >>else:
> >>eol_ = ''
> >>if self.Transforms is not None:
> >>self.Transforms.export(outfile, level, namespace_='ds:', 
> >> name_='Transforms', pretty_print=pretty_print)
> >>if self.DigestMethod is not None:
> >>self.DigestMethod.export(outfile, level, namespace_='ds:', 
> >> name_='DigestMethod', pretty_print=pretty_print)
> >>if self.DigestValue is not None:
> >>showIndent(outfile, level, pretty_print)
> >>outfile.write('<%sDigestValue>%s%s' % (namespace_, 
> >> self.gds_format_base64(self.DigestValue, input_name='DigestValue'), 
> >> namespace_, eol_))
> 

Re: [Generateds-users] Incorrect namespace

2017-11-02 Thread Dave Kuhlman
Bob,

Don't you just hate namespace problems.  I know I do.

Seriously, I'll take a look at it tomorrow or next week at the
latest.

Thanks for the report.

Dave

On Wed, Nov 01, 2017 at 05:09:56PM -0700, Bob Barcklay wrote:
> Hi Dave,
> 
> I’m using the XML Signature Schema (http://www.w3.org/2000/09/xmldsig#) 
> imported and used inside another schema 
> (http://openadr.org/oadr-2.0b/2012/07) to create a “signed object”.  I’m 
> running into a problem with the namespace that is generated for one element 
> within the XML Signature.  Everything else looks fine but this one element, 
> which should get associated with the XML Digital Signature namespace is 
> instead getting tagged with the surrounding namespace.  The XSD look fine:
> 
> 
> 
> 
>
>   
>   
>   
>
>
>
>
> 
> 
> The DigestValue element is associated with the ‘ds’ namespace just like 
> Transforms and DigestMethod, but the generated code for this element looks 
> different.
> 
> def exportChildren(self, outfile, level, namespace_='oadr:', 
> name_='ReferenceType', fromsubclass_=False, pretty_print=True):
> if pretty_print:
> eol_ = '\n'
> else:
> eol_ = ''
> if self.Transforms is not None:
> self.Transforms.export(outfile, level, namespace_='ds:', 
> name_='Transforms', pretty_print=pretty_print)
> if self.DigestMethod is not None:
> self.DigestMethod.export(outfile, level, namespace_='ds:', 
> name_='DigestMethod', pretty_print=pretty_print)
> if self.DigestValue is not None:
> showIndent(outfile, level, pretty_print)
> outfile.write('<%sDigestValue>%s%s' % (namespace_, 
> self.gds_format_base64(self.DigestValue, input_name='DigestValue'), 
> namespace_, eol_))
> Notice that both Transforms and DigestMethod are exported with 
> namespace_=‘ds:’ but for some reason, DigestValue is exported with the 
> default namespace for exportChildren which in this case is namespace=‘oadr:’. 
>  The generated code looks similar if I process only the XML Signature XSD but 
> in this case, the default namespace is ‘ds:’ so it generates correctly.
> 
> I’ve tried unsuccessfully to isolate just a portion of the XSD to make this 
> happen but haven’t been able to do it.  I’m attaching the XML Signature XSD 
> which can be used to generate code that will exhibit the behavior described 
> above. I’m happy to experiment further if you can’t point me in the right 
> direction ;-)
> 
> BTW, I am able to work around the issue by hand editing the generated code 
> and replacing namespace_ with ‘ds:’.
> 
> -Bob
> 
> 
> 
> 
> 
> 
> b...@kisensum.com
> (510) 520-7741
> www.kisensum.com 
> 
> Kisensum | 344 Thomas Berkley Way #260 | Oakland, CA, 94612
> 

> --
> 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

--
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