-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
xsdata and --compound-field #40
Labels
Comments
O fix ainda é necessario, mas no xsdata o nome do arquivo mudou. Eu refiz o commit xsdata aqui então: |
atualização: o método process foi ré-escrito na futura versão do xsdata: tefra/xsdata@4dc9b41 agora tem que aplicar um patch no metodo: merge_duplicate_attrs
|
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Na nova branch master-xsdata que usa xsdata, temos um pequeno problema com o elemento IPI da tag Imposto. Da forma como é o xsd, ou precisa de um patch de 1 linha no xsdata, ou precisa usar a opçâo
--compound-field
do xsdata. Eu detalhei o problema aqui: tefra/xsdata#666De inicio, pode parecer uma boa usar a opção
--compound-field
já que resolve o problema no binding gerido como aqui. Porem tem um outro lado da moeda: quando usar essa opção, tem pelo menos 2 campos (IPI do Imposto e um outro no Transp) que viram então um campo composto com uma hierarquia mais funda:Sem a opção
--compound-field
e com meu patch tefra/xsdata#666:Agora com a opção
--compound-field
e sem meu patch:Nesse caso o xsdata tem uma espece de gestão de choice.
O grande ponto é que nos temos um interesso não apenas nos bindings Python mas tb nos modelos Odoo geridos pelo plugin https://github.com/akretion/xsdata-odoo
Esses modelos Odoo são de persistência e é interessante que seja muito mais "planos" do que os modelos super fundos do XSD que servem apenas para validação XSD. E usar a opção
--compound-field
iria atrapalhar nisso porque nos obrigaria a repensar o mapeamento entre um campo Odoo e um campo de um binding dessa lib, criaria mais complexidade no mapping.Se essa opção tb lidava com as verdadeiras tags choice do xsd como fazia o generateDS (que nos interessa apenas nas visões automáticas, ou seja muito pouco hoje), eu bancaria essa complexidade. Mas não é o caso, seria uma complexidade meio inútil.
Eu fiz uma busca exaustiva e o problema acontece apenas com essa tag IPI na dezena de esquemas de NFe que temos nessa branch. Com tudo o meu fix aqui tefra/xsdata#666 resolve isso perfeitamente (eu gerei tudo de novo e vi que o impacto era apenas o esperado aqui).
Nisso minha escolha é de usar esse patch de uma linha no xsdata ou então no código Python gerido apenas pela tag IPI.
cc @mbcosta @renatonlima @marcelsavegnago @netosjb @felipemotter
The text was updated successfully, but these errors were encountered: