アップストリームの支払い処理業者に送信する XML ファイルを生成するために PyXB を使用するライブラリがあります。簡略化されたコードは次のようになります。
import pyxb.binding.datatypes as pyxbd
from . import schema
record = schema.Record(
Arg1='xxx',
Arg2='xxx',
)
record.Foo = pyxbd.string('bar')
print record.toDOM()
生成された XML ドキュメントは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<Record Arg1="xxx" Arg2="xxx"
xmlns:ns1="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
<Foo xsi:type="ns1:string">Bar</Foo>
<Record>
理由はわかりませんが、アップストリーム プロセッサはどの要素の属性も気に入らないxsi:type="ns1:string"
ため、リクエストを拒否します。ここでの私の質問は、pyxb スキーマがこのxsi:type
ようなものを生成するのはなぜですか? 生成を停止できますか?