> ------------ Původní zpráva ------------
> Od: Peter Bigot <[email protected]>
> Předmět: Re: [pyxb-users] Help with XML generation
> Datum: 03.7.2010 02:32:44
> ----------------------------------------
> It's harder with your schema because the elements are defined within the
> complex types, rather than globally where they can be referenced by their
> element name (as they appear in the document)
>
> If you want to create the inner elements independently, you can do so using
> their type, as with inv.invoiceHeaderType() below. Alternatively, you can
> ask PyXB to pick an appropriate type based on the content model, as with the
> assignment to ivh.account below.
>
> If you want to create them dynamically as parameters to a constructor, you
> can often just provide the value as a keyword parameter; other times you
> might need to use the
> pyxb.BIND<http://pyxb.sourceforge.net/userref_usebind.html#creating-instances-of-anonymous-types>feature.
>
> I suggest building the document component-by-component, then putting it
> together at the end. Here's one approach (not complete, but it should give
> the idea):
Peter,
thanks a lot for your quick and really effectual help. I have extended your
script with all required elements and I'm now able to produce valid XML
document without having:
pyxb.RequireValidWhenGenerating(False)
Thank you very much. Saved me a lot of time. May I have another two questions?
1. How can I add information about encoding, I'd like to have it utf8.
<?xml version="1.0" encoding="UTF-8"?>
2. How can I work with utf8 characters within my script? It doesn't work for
me. My test is:
ivh.text = 'Unicode test ěščřžýáíé'
which ends with error:
Traceback (most recent call last):
File "sf.py", line 20, in ?
ivh.text = 'Unicode test ěščřžýáíé'
File "/usr/lib/python2.4/site-packages/pyxb/binding/basis.py", line 62, in
__setattr__
return super(_TypeBinding_mixin, self).__setattr__(name, value)
File "/usr/lib/python2.4/site-packages/pyxb/binding/content.py", line 521, in
set
value = self.__elementBinding.compatibleValue(value,
is_plural=self.isPlural())
File "/usr/lib/python2.4/site-packages/pyxb/binding/basis.py", line 1339, in
compatibleValue
return self.typeDefinition()._CompatibleValue(value, **kw)
File "/usr/lib/python2.4/site-packages/pyxb/binding/basis.py", line 270, in
_CompatibleValue
return cls(value)
File "/usr/lib/python2.4/site-packages/pyxb/binding/basis.py", line 684, in
__new__
args = cls._ConvertArguments(args, kw)
File "/usr/lib/python2.4/site-packages/pyxb/binding/basis.py", line 662, in
_ConvertArguments
norm_str = unicode(cf_whitespace.normalizeString(args[0]))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 13:
ordinal not in range(128)
Thanks,
David Hrbac
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
pyxb-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pyxb-users