この xsd ファイルから:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://foo.org/FooIsNotBar"
elementFormDefault="qualified">
<xs:element name="Foo" type="xs:string"/>
</xs:schema>
この XML を取得するために PyXB を使用したい:
<?xml version="1.0" ?>
<Foo xmlns="http://foo.org/FooIsNotBar">hello</Foo>
だから私はこれをしました:
pyxbgen -m test -u test.xsd # Where test.xsd is the above xsd file
echo -e "import test\\nprint test.Foo('Hello World').toxml()" | python
ns1
残念ながら、不要なプレフィックスを持つ XML を取得します。
<?xml version="1.0" ?>
<ns1:Foo xmlns:ns1="http://foo.org/FooIsNotBar">Hello World</ns1:Foo>
ns1:
これらのプレフィックスを削除したいと思います。どのように?
編集
このjaxbに関する質問は、それに関するいくつかのヒントを与えてくれますが、私の問題の解決策はまだ見つかりませんでした。
を使用してプレフィックスを設定できることを発見しましたtest.Namespace.setPrefix('foo')
。残念ながら、プレフィックスを非表示にすることはできません。
汚い解決策はこれを行うことです:
import test
rmp = 'REMOVE_ME_PLEASE'
test.Namesapce.setPrefix(rmp)
print test.Foo('Hello World').toxml().replace(rmp + ':', '').replace(':' + rmp, '')