Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
suds — suds 0.4 のクローン + suds-0.4-CVE-2013-2217.patch | Kitploit
ツール/GitHubGitHub/osirium/suds
脆弱性分析スクリプトと自動化APIセキュリティテストウェブセキュリティユーティリティとフレームワークAPIセキュリティ
GitHubosirium/suds

suds

suds 0.4 のクローン + suds-0.4-CVE-2013-2217.patch

リポジトリを見る
8年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

概要

"Suds" Webサービスクライアントは、LGPL ライセンスの Python 向け軽量 SOAP ベースのクライアントです。

詳細は以下を参照してください:

  • プロジェクトサイト: https://fedorahosted.org/suds/
  • ドキュメント: https://fedorahosted.org/suds/wiki/Documentation
  • Epydocs: http://jortel.fedorapeople.org/suds/doc/

リリースノート:

バージョン 0.3.6 (04-31-09):

  • ハードコードされた /tmp/suds を tempfile.gettempdir() に変更し、suds/ をオンデマンドで作成するようにしました。
  • Any.get_attribute() の戻り値の型を修正しました。
  • http キャッシュを更新し、file:// URL を無視するようにしました。
  • 応答のみが注入された場合のメッセージロギングを改善しました。
  • XInteger 型と XFloat 型が返された配列を正しく変換するように修正しました。
  • 同じ名前空間を持つ xs:import スキーマを修正しました。
  • パーサーを更新して外部参照を読み込まないようにし、XMLSchema.xsd の場所に Import.bind() を追加しました。
  • スキーマドクターを追加 - 実行時に XSD にパッチを当てるために使用します。(Option.doctor を参照)
  • python 2.6 の非推奨警告を修正しました。
  • に定義された @default の動作を追加しました。
  • @xsi:type の値を doc/literal で常に修飾するように変更しました。(0.3.5 の変更を元に戻します)
  • @xsi:type が修飾されるタイミングを制御する Option.xstq オプションを追加しました。
  • 修正したチケット: #64, #129, #205, #206, #217, #221, #222, #224, #225, #228, #229, #230

バージョン 0.3.5 (04-16-09):

  • http キャッシュを追加しました。デフォルトは(1)日です。メソッド呼び出しには適用されません。詳細はドキュメントを参照してください。
  • spec が fc9 未満をビルドしなくなったため、fedora バージョンチェックを削除しました。
  • makefile を更新し、tar.sh で tarball をロールするようにしました。
  • document/literal の bare/wrapped 判定を wsdl に移動しました。
  • Transport をパッケージにリファクタリングしました(http ヘッダーのロギングが向上します)。
  • 修正したチケット: #207, #209, #210, #212, #214, #215

バージョン 0.3.4 (02-24-09):

  • 静的(自動)の Import.bind('http://schemas.xmlsoap.org/soap/encoding/') を追加。 ユーザーはこれを実行する必要がなくなりました。
  • {{{UsernameToken}}} とクリアテキストパスワードのみを使用する基本的な ws-security を追加しました。
  • 辞書を渡すことで ''sparse'' SOAP ヘッダーをサポートしました。
  • ユーザー定義の任意の SOAP ヘッダーをサポートしました。
  • 複数の SOAP ヘッダーエントリを持つサービス操作を修正しました。
  • スキーマの読み込みと参照解決アルゴリズムを拡張しました。
  • ネストされた SOAP マルチリファレンスを修正しました。
  • elementFormDefault="unqualified" のより良い(真の)サポートにより、名前空間付けがより正確になりました。
  • WSDL の part 型は、デフォルトで WSDL の targetNamespace にならなくなりました。
  • 修正したチケット: #4, #6, #21, #32, #62, #66, #71, #72, #114, #155, #201。

バージョン 0.3.3 (11-31-08):

  • (tests) パッケージをインストールしなくなりました。
  • API-3 提案を実装 ( https://fedorahosted.org/suds/wiki/Api3Proposal )
    • プラガブルなトランスポート
    • キーワードメソッド引数
    • デフォルトトランスポートでの基本的な http 認証
  • SOAP メッセージ内の名前空間プレフィックス正規化を追加しました。
  • SOAP メッセージ内の空ノードのプルーニングを改善しました。
  • 修正したチケット: #51 - #60

バージョン 0.3.2 (11-7-08):

  • SOAP {{{MultiRef}}} サポート ''(第1パスは r300 で追加)''
  • 新しいスキーマタグのサポートを追加:
    • xs:include/
    • xs:simpleContent/
    • xs:group/
    • xs:attributeGroup/
  • 新しい xs <--> python 型変換のサポートを追加:
    • xs:int
    • xs:long
    • xs:float
    • xs:double
  • 生成されるノードの名前空間付けをさらに明確にするため、マーシャラーとバインディングを改訂しました。
  • スキーマ読み込み中の ''xsd'' パッケージの dereference() における無限再帰を修正しました。
  • wsdl ルート にスキーマファイルをインポートする wsdl:import/ のサポートを追加しました。
  • (&) の二重エンコーディングを修正しました。
  • Client API を追加:
    • setheaders() - キーワードと同じですが、すべての呼び出しで機能します。
    • addprefix() - 名前空間プレフィックスのマッピング。
    • setlocation() - wsdl 内の場所を上書きします。キーワードと同じですが、すべての呼び出しに適用されます。
    • setproxy() - proxy キーワードと同じですが、すべての呼び出しに適用されます。
  • SOAP ヘッダーに適切な名前空間プレフィックスを追加しました。
  • 修正したチケット: #5, #12, #34, #37, #40, #44, #45, #46, #48, #49, #50, #51

バージョン 0.3.1 (10-1-08):

  • 0.3 リリースへの迅速なフォローアップで、マルチポートサービスの定義を 必要以上に扱いにくくしていました。 検討した結果(そしてよく眠った後)、 いくつかの変更を加えればこれがはるかに簡単になることは明らかでした: 1) 除外する SOAP 以外のバインディング - それが本当の問題を引き起こしていた; 2) ほとんどのサーバーは 任意の SOAP バインディング(soap 1.1 と 1.2)で問題ないため、メソッドへの曖昧な参照は ポート修飾なしで呼び出す場合でも、ほぼすべての ケースで問題なく機能します。 では、なぜ suds にポートを選択させるだけでよいのでしょうか。 ユーザーにそれをさせるのをやめましょう 必要な場合を除いて。 ほとんどの場合、0.2.9 以前のユーザーは 0.3.1 に移行する際に、0.3 で必要だったようにコードを更新する必要はありません。

バージョン 0.3 (9-30-08):

  • 0.2.9 で導入されたマルチポートサービスのサポートを拡張します。 この追加により、 複数のサービスが 同じ メソッドを定義でき、suds が それを適切に処理します。 セクション 'SERVICES WITH MULTIPLE PORTS:' を参照してください。

  • マルチドキュメントの document/literal SOAP バインディングスタイルのサポートを追加します。 セクション 'MULTI-DOCUMENT Docuemnt/Literal:' を参照してください。

  • (xs:group, xs:attributeGroup) タグのサポートを追加します。

  • Client.last_sent() と Client.last_received() を追加します。

バージョン 0.2.9 (9-09-08):

  • サービス内の複数ポートのサポート。
  • 属性参照 <xs:attribute ref=""/>
  • sax パッケージの XML 特殊文字エンコーダーをプラガブルにしました。

バージョン 0.2.8 (8-28-08):

  • document/literal バインディングを更新し、 によって参照されるドキュメントルートを常に送信するようにしました。 仕様とユーザー入力を再度確認したところ、参照される 要素は常にドキュメントルートであるようです。

  • 'binding' スキーマロケーションの名前空間 URI へのマッピングをサポートします。
    これは、schemaLocation を指定せず、それでもスキーマのダウンロードを期待するインポートのためのものです。 例: Axis は schemaLocation なしで 'http://schemas.xmlsoap.org/soap/encoding/' を参照します。 そこで、次のようにすることで:

    from suds.xsd.sxbasic import Import. Import.bind('http://schemas.xmlsoap.org/soap/encoding/')

    スキーマが schemaLocation にバインドされ、ダウンロードされます。

  • 基本的なアンマーシャラーは /schema/ を必要としません。 リファクタリング中に削除されるべきでしたが見逃されました。

  • クライアントを更新し、send() に kwargs を渡し、wsdl 内のサービス場所を上書きするための /location/ kwarg を追加しました。

  • オブジェクト属性のうち、要素および/または属性を表し、両方 がオプションで value=None であるものについて、 XML を出力しないようにマーシャラーを更新しました。 * すべての属性を含むように factory (builder) を更新しました。 * SchemaObject に optional() メソッドを追加しました。

  • 指定されている場合、操作内の名前空間を上書きするように wsdl を更新しました。

  • スキーマ読み込みの問題を修正 - インポートを処理する前にすべてのスキーマを構築します。

  • fedora への提出に備えてパッケージングを更新しました。

バージョン 0.2.7 (8-11-08):

  • document/literal - wrapped および unwrapped の検出/サポートを追加しました。
  • document/literal {wrapped} を更新し、ドキュメントルート( の下)がラッパー要素(適切な名前空間付き)になるようにしました。
  • 、、 が maxOccurs を持つ場合のサポートを追加し、アンマーシャラーが非有界コレクションに含まれる要素の値をリストとして設定できるようにしました。
  • client.factory (builder) を更新し、 の子を省略するようにしました。'user' が実際にどの子を含めるかを決定する必要があるためです。
  • インポートされたスキーマから型が再フラット化されるのを防ぐため、フラット化アルゴリズムを更新しました。
  • フラット化/マージアルゴリズムの調整。

バージョン 0.2.6 (8-5-08):

  • xsd パッケージの改修中に壊れた ENUM を修正しました。
  • チケット #24 で定義された型を修正しました。
  • チケット #30 で報告されたメソッドシグネチャ内の重複するパラメータ名を修正しました。
  • Suds は LGPL としてライセンスされました。
  • チケット #31 のパッチで提案されたように、suds.init() 内のロギング設定を削除しました。 ユーザーはロガーを設定する必要があります。
  • Client.Factory.create() の代替構文をサポート: {namespace}name としてビルドする型を完全修飾します。 例: client.factory.create('{http://blabla.com/ns}Person')

バージョン 0.2.5 (8-01-08):

  • (XSD) パッケージを全面的に見直しました。 この新しい(マージ)アプローチはよりシンプルで、信頼性と保守性が向上するはずです。 また、マージされたスキーマは辞書ルックアップでルックアップを実行するため、パフォーマンスも向上するはずです。

    この見直しにより、現在の TypeNotFound と xs:extension/ の問題が修正されるはずです。願っています :-)。

  • dateTime の出力バグを修正しました。

  • それ自身を含む xsd 型に対する builder.Builder の無限再帰防止を追加しました。

バージョン 0.2.4 (7-28-08):

  • WSDL インポートのサポートを追加: wsdl:import/
  • 次の xsd<->python 型変換のサポートを追加しました(Nathan Van Gheem に感謝):
    • xs:date
    • xs:time
    • xs:dateTime
  • 修正:
    • バグ: schemaLocation が指定されたスキーマ 。
    • バグ: サービス定義で指定された名前空間が、client/proxy が表示されるまで有効にならない。

バージョン 0.2.3 (7-23-08):

  • 最適化。

バージョン 0.2.2 (7-8-08):

  • Exception.init() を使用して Exception.message を設定し、例外をより /standard/ な python にするよう更新しました(チケット #14 による提案)。バインディングを更新し、WebFault を (p) を渡して発生させるようにしました。

  • 返り値に複数のルートノードがある場合を処理する機能をバインディングに追加しました。リストが返される場合とは異なり、複合オブジェクトとして返されます。

  • soapAction が引用符で囲まれるように修正しました。

  • xs:all/ のサポートを追加しました。

  • SchemaObject の unbounded() メソッドを修正しました。

  • スキーマを新しい (xsd) パッケージにリファクタリングしました。 ファイルが大きくなりすぎていたためです。 Query に execute() を追加し、Schema.find() を直接使用する代わりに suds がクエリを execute() するように改造しました。 また、スキーマから hokey な start() メソッドとクエリのインクリメントを移動しました。

  • 送信 SOAP メッセージや受信応答メッセージを注入するために使用される inject キーワードを追加しました。 SoapClient をリファクタリングし、

    1. send() を invoke() に名前変更
    2. メッセージ送信を invoke() から分離して send() に配置 呼び出し kwargs に inject={'msg=, and reply='} を持たせることができる TestClient を追加し、メッセージと応答の注入を可能にしました。
  • 名前空間の動作をより適切に管理するために sax に Namespace クラスを追加しました。suds が Namespace をインポートして使用するように修正しました。

  • @base=""、@type=""` 属性を持つ参照型の解決に使用されるデフォルトの名前空間を変更し、プレフィックスが指定されていない場合に targetNamespace ではなく XML (ノード) 名前空間を使用するようにしました。

  • チケット #13 で [email protected] によって定義された修正を適用しました。

  • サービスの定義を更新し、サービスメソッドを ' my_method(xs:int arg0, Person arg1) ' として表示するようにしました。従来のメソッドシグネチャに近い ' my_method(arg0{xs:int}, arg1{Person}) ' の代わりです。

  • アンマーシャラーに xsd/python 型変換を追加しました(XBoolean のみ)。アンマーシャラーをリファクタリングして Content クラスを使用するようにしました。これにより API がよりクリーンになり、マーシャラーとアンマーシャラーの間の対称性が追加され、スキーマプロパティベースの型変換のための優れたメカニズムが提供されます。

  • マーシャラーを Appenders でリファクタリングしました。バインディングの returned_type() と returnes_collection() の修正をサポートするために、resolve() に nobuiltin フラグを追加しました。

  • (202,204) HTTP コードのサポートを追加しました。

  • XBoolean とマッピングを追加しました。型変換に備えて TreeResolver に findattr() を追加しました。

  • スキーマとスキーマプロパティの読み込みを更新しました(深い再帰を停止)。インポートされたスキーマは、インポートされたスキーマをコピーするのではなく、インポートプロキシが検索要求を処理するように変更しました。より良いサービス検査を提供する ServiceDefinition クラスを追加しました。また、名前空間マッピングと型の表示も提供します。スキーマプロパティ API を簡素化しました。xs:any と xs:anyType のサポートを追加しました。いくつかのスキーマルックアップの問題を修正しました。Binding クラスをわずかにリファクタリングしました。多くのデバッグロギングを追加しました(パフォーマンスのために一部をコメントアウトする必要があるかもしれません - 一部の引数はコストがかかります)。

  • sudsobject.Property を追加しました。プロパティは (value) 属性を含む特別な Object であり、 や のような子を持たないスキーマ型に対して Builder (factory) によって返されます。Builder、Marshallers、Resolvers を更新して Properties を処理するようにしました。Resolver と Schema も属性ルックアップを処理するように更新しました(これは欠落していました)。

  • ユーザー定義の SOAP ヘッダーの基盤を追加しました。

  • チケット #7 に従って elementFormDefault を修正しました。

バージョン 0.2.1 (5-8-08):

  • schema.py の SchemaProperty 読み込みシーケンスを更新し、スキーマが3つのステップで読み込まれるようにしました: 1) raw ツリーを構築する。 2) @ref や @base などの依存関係を解決する。
    3) 必要に応じて孫を昇格させ、ツリーをフラット化(非正規化)する。

    wsdl も、スキーマを一度だけ読み込んで保存するように変更されました。 スキーマコレクションは、スキーマを2つのステップで読み込むように変更されました: 1) すべての raw スキーマオブジェクトを作成する。 2) スキーマを読み込む。

    これにより、順序が乱れて参照された場合でも、ローカルの されたスキーマが見つかることが保証されます。
    sax.py の Element インターフェースが変更されました: attribute() は get() と set() に置き換えられました。
    また、getitem と setitem を使用して属性値にアクセスできます。
    sax.py の Epydocs を更新しました。 そして最後に、 が正しくサポートされるようになりました。

  • ロギングを修正: suds.init.logger() で info に設定しない。 root ロガーにのみハンドラを設定する。 logger (log) をクラスからモジュールに移動し、ロガー名に name を使用する。 注: これは、SOAP メッセージのロギングを有効にするには: > > logger('suds.serviceproxy').setLevel(logging.DEBUG) > -- の代わりに -- > > logger('serviceproxy').setLevel(logging.DEBUG) >

  • (xsd) スキーマの ノードのサポートを追加しました。これは主に Builder によって返されるオブジェクトに影響します。

  • serviceproxy.py:set_proxies() を更新し、INFO ではなく DEBUG をログ出力するようにしました。

  • スキーマの str を拡張し、raw XML とモデルの両方を表示するようにしました(主にデバッグ用)。

バージョン 0.2 (04-28-08):

  • rpc/encoded SOAP スタイルの最初の実装が含まれています。

  • Property クラスを suds.sudsobject.Object に置き換えました。 Property クラスはかなり前に少し異なる目的で開発されました。 suds の Object はよりシンプル(より率直な)アプローチであり、必要なコードが少なく、デバッガでの動作も優れています。

  • Binding(およびエンコーディング)はメソッドごとに選択されるようになり、wsdl とより整合的になりました。 0.1.7 以前では、ServiceProxy が構築されたときにバインディングが選択され、すべてのサービスのメソッドに使用されていました。 バインディングは self.binding として保存されていました。 WSDL は各操作に対して個別のバインディングスタイルとエンコーディングを提供するため、Suds も同様に動作するように変更する必要がありました。* サービスプロキシに **kwargs を使用して渡される (nil_supported) および (faults) フラグ。これらのフラグに加えて、(http_proxy) フラグが追加され、urllib2.Request オブジェクトに渡されます。次の引数がサポートされています:

    • faults = サーバーが発生させたフォールトを送出します (デフォルト:True)。それ以外の場合は、サービスメソッド呼び出しからタプル (httpコード, オブジェクト) を返します。
    • nil_supported = このフラグが True (デフォルト:True) の場合、バインディングは value=None のノードに xsi:nil="true" を設定します。それ以外の場合は、空のノード が送信されます。
    • proxy = リクエストで指定する http プロキシ (デフォルト:{})。 プロキシは {protocol:proxy,} として定義されます。
  • Http proxy がサポートされています (上記参照)。

  • ServiceProxy は SoapClient に委譲するようリファクタリングされました。サービスプロキシは getattr() を介して Web サービスを公開するため、ServiceProxy クラスが提供する属性(メソッドを含む)は wsdl で定義された WS 操作を隠してしまいます。そのため、すべてを SoapClient に移すことで、サービスプロキシの属性やメソッドに hoky な名前を使用しなくても、wsdl 操作が隠されることはなくなります。代わりに、サービスプロキシは client 属性と factory 属性を持ちます(これらは名前の衝突のリスクが本当に低いはずです)。当面、get_instance() と get_enum() メソッドは後方互換性を維持するために移動されていません。ただし、推奨される API 変更は以下を置き換えるものです:

    service = ServiceProxy('myurl') person = service.get_instance('person')

    ... を次のようなものに置き換えます ...

    service = ServiceProxy('myurl') person = service.factory.get_instance('person')

    数回のリリースでユーザーが新しい API に切り替える時間を与えた後、get_instance() と get_enum() メソッドは大きな文字での通知とともに削除される可能性があります。

  • wsdl が セクションを定義しておらず、Suds が http://www.w3.org/2001/XMLSchema 名前空間のプレフィックスを解決できず、(xs:string) などの組み込み型を検出できない問題を修正しました。

version-0.1.7 (04-08-08):

  • Binding.nil_supported を追加し、プロパティ値 (out) = None と空タグ (in) の処理方法を制御します。

    • service.binding.nil_supported = True -- は、プロパティ値 = None が (out) として にマーシャリングされ、 は '' としてアンマーシャリングされ、 は None としてアンマーシャリングされることを意味します。
    • service.binding.nil_supported = False -- は、プロパティ値 = None が (out) として にマーシャリングされ、 および の両方が None としてアンマーシャリングされることを意味します。 xsi:nil は実際には無視されます。
    • デフォルトは (TRUE) です。
  • sax パーサーがテキストを「チャンク」する際に、複数の character() コールバックを処理するよう Sax ハンドラーを更新しました。 node.text が None の場合、node.text はその文字に設定されます。それ以外の場合、文字は追加されます。 Thanks - [email protected]

  • 「text」という名前の自然な要素を許可するために、特別な (text) 属性を text に置き換えました。

  • Unicode サポートを追加:

    • str を持つすべてのクラスに unicode を追加
    • すべての str() 呼び出しを unicode() に置き換え。
    • str() は unicode の UTF-8 エンコード結果を返します。
  • XML 出力は UTF-8 としてエンコードされ、HTTP ヘッダーと一致し、Unicode をサポートします。

  • SchemaCollection を変更して、builtin() メソッドと custom() メソッドを提供するようにしました。これをサポートするため、findPrefixes() が sax.py の Element に追加されました。wsdl とスキーマは http://www.w3.org/2001/XMLSchema に対して多くのプレフィックスを持つ可能性があるため、これはいずれにせよより良いアプローチです。doc/lit と rpc/lit の両方のバインディングでテスト済みです。

  • バインディングパッケージを document & rpc から literal & encoded にリファクタリングしました。

  • 以下に示す 完全な 名前空間サポートの完成が含まれています:

    • wsdl で定義された型を参照する属性値から、名前空間プレフィックスがもはや取り除かれません。
    • を使用してインポートされたスキーマは、必要に応じて名前空間とプレフィックスの マッピングおよび再マッピングを適切に処理する必要があります。
    • すべての型は、完全修飾 (名前空間付き) ルックアップを使用して解決されます。
    • Schema.get_type() は ns プレフィックスの有無にかかわらずパスをサポートします。プレフィックスが指定されていない場合、 型はスキーマの targetNamespace を使用して照合されます。
  • Property は、属性名 (キー) を追加された順序で維持します。これは、get_item() と get_names() が順序付けられた値を返すことも意味します。 ( ただし、順序付けは実際には wsdl/schema で指定された順序を使用してマーシャラーで行う必要があると私は考えています )

schema.py の大規模なリファクタリング。主な目的は、名前空間によって完全修飾された型ルックアップの準備です。完了すると、属性値のプレフィックスはもはや取り除かれません (パージされません)。 変更の概要: 1) SchemaProperty オーバーレイクラスがオンデマンドではなく init で作成されます。 2) スキーマインポートは Schema ではなく新しい Import クラスによって実行されます。 3) Schema はファクトリを使用してトップレベルのプロパティをロードします。 4) すべての SchemaProperty /children/ リストは、SchemaProperty 派生クラスの cmp によってソートされます。 これにより、同じ名前の型が (Import, Complex, Simple, Element) の順序で解決されます。 5) すべての /children/ SchemaProperty リストはオンデマンドではなく init で構築されます。 6) SchemaGroup が作成され、WSDL クラスが更新されました。これは、wsdl が ノードを集約するよりも優れており、名前空間プレフィックスマッピングを持つ wsdl 親要素へのリンクを切断しません。 7) 要素は、インポートされたスキーマの targetNamespace と関連するプレフィックスマッピングの両方について、名前空間の再マッピングとプレフィックスの再マッピングが実行されるように適切に処理します。 例: SCHMEA-A はプレフィックス (tns) が xmlns:tns=http://nsA としてマップされ、targetNamespace=http://nsA を持ちます。 SCHEMA-B はスキーマ A をインポートしており、プレフィックス (abc) が xmlns:abc=http://nsABC としてマップされています。 SCHEMA-B は A を <import namespace=http://nsB xxx schemaLocation=http://nsA/schema-a.xsd> としてインポートします。 したがって、SCHEMA-B が abc:something などのプレフィックス (abc) を持つ SCHEMA-A の要素を参照するため、SCHEMA-A の targetNamespace は http://nsABC に更新され、type=tns:something を持つすべての要素が解決できるように type=abc:something に更新される必要があります。

  • ノードが (text, value) としてプロパティに追加されるアンマーシャリングの問題を修正しました。これはバインディングがリファクタリングされたときに導入されました。

  • さまざまな Property の print の問題を修正しました。

注記:

root@kitploit:~
Coniuro の Jesper Noehr に、rpc/literal バインディングの大部分と #suds での多くのコラボレーションに感謝します。

version-0.1.6 (03-06-08):

  • schema セクションに xsd スキーマインポート: <import namespace="" schemaLocation=""?> を含む wsdl の適切な処理を提供します。 schemaLocation が指定されている場合、参照されたスキーマがインポートされます。
  • まだ処理されていない http ステータスコードに対して例外を発生させます。

version-0.1.5( 02-21-08 ):

  • 階層名でロガーを取得するモジュールでより良いロギングを提供します。
  • 他のバインディングを真にサポートするために必要に応じてリファクタリングしました。
  • ElementTree を置き換える sax モジュールを追加します。これはより速く、よりシンプルで、 名前空間 (プレフィックス) を適切に処理します。

version-0.1.4 (12-21-07):

  • サービスメソッドのパラメータを None にできるようにします。
  • property オブジェクトのリストであるメソッドパラメータの適切な処理を追加します。

version-0.1.3 (12-19-07):

  • コレクション (maxOccurs > 1) としてマークされたノードが、DocumentReader によって < 2 の値で マップされたときに value=[] のプロパティオブジェクトを作成しない問題を修正しました。原因は、 bindings.Document.ReplyHint.stripns() (DocumentReader.stripns() を使用) が、 0.1.2 以降タプル (ns,tag) を返す DocumentReader.stripn() への変換を失っていたことです。

version-0.1.2 (12-18-07):

このリリースには、property の追加に関するアップデートが含まれています: * メタデータサポート * オーバーライド: getitem, setitem, contans * XML ドキュメントの名前空間を処理するために property(reader|writer) が property.metadata を 使用するように変更 * setup.py の requires を修正。

version-0.1.1 (12-17-07):

このリリースは、fedora hosted での最初のリリースとなります。

ツールをダウンロード
  • バインディングから未使用の kwargs を削除しました。wsdl にバインディングをキャッシュしました。レガシー ServiceProxy を新しい {new} Client API に委譲するように改造しました。スキーマ内の の 'nillable' 属性による自然な処理を優先して、キーワード nil_supported を削除しました。

  • の属性フラグ(nillable と form)のサポートを追加しました。

  • Proxy(第2世代 API)クラスを追加しました。

  • ユーザーが x 属性にアクセスする必要がないように、アクセサ/変換関数を追加しました。また、辞書への簡単な変換と反復のために todict() と get_items() を追加しました。

  • より深く探す前に、トップレベルの要素で @ref を検索します。

  • SchemaObject に derived() を追加しました。これは、以前の suds リリースで行っていたようにすべてのカスタム型に xsi:type を指定することなく、すべての派生型(wsdl クラス)が xsi:type によって修飾されることを保証するために必要です。リテラルマーシャラーを更新し、型を指定する必要がある場合にのみ xsi:type を追加するようにしました。

  • 親がプレフィックスを持っているときに ns が親に昇格しないように、sax の ns 昇格を変更しました。

  • バインディングの returned_type() が(未解決の)Element を返すように変更しました。

  • 新しい機能をサポートし、報告されたバグを修正するために、Suds の入出力変換を提供するコンポーネントをリファクタリングし、うまくいけば進化させているところです:

    • Builder (変換: XSD オブジェクト => python オブジェクト)
    • Marshaller (変換: python オブジェクト => XML/SOAP)
    • Unmarshaller (変換: SOAP/XML => python オブジェクト)

    この進化により、以下のようにこれらのコンポーネント間の対称性が向上します:

    Builder と Unmarshaller は、次のような python (sudsobject.Object のサブクラス) オブジェクトを生成します:

    • metadata.type = XSD 型 (SchemaObject)
    • サブクラス名 ( class.name ) = スキーマ型名。

    および

    Marshaller は、Builder または Unmarshaller によって生成された python オブジェクトを消費しながら、この標準情報を活用して適切な出力 ( XML/SOAP ) を生成します。

    0.2.1 のコードは ほぼ このように動作しますが、完全ではありません。 また、実装にはいくつかの冗長性があります。

    これを行うにあたり、Builder、Marshaller、Unmarshaller クラスで使用される共通のスキーマ型 "lookup" 機能を、"Resolver" クラスの階層に切り出すのが理にかなっていました。 これにより、Builder、Marshaller、Unmarshaller クラスの複雑さと冗長性が軽減され、モジュール性が向上します。 このリファクタリングが完了すると、literal/encoded Marshaller の違いは非常に小さくなりました。 bindings.literal パッケージと bindings.encoded パッケージのコード量は少なく(そしてさらに少なくなっており)、Suds のコードベースをコンパクトに保つという観点から、すべてのマーシャリングクラスを bindings.marshaller モジュールに移動しました。 bindings.XX のすべてのサブパッケージは削除されます。

    正味の効果:

    Suds の主要なコンポーネントはすべて:

    • クライアント (旧: サービスプロキシ)
    • wsdl
      • スキーマ (xsd パッケージ)
      • リゾルバ
    • 出力 (マーシャリング)
    • ビルダー
    • 入力 (アンマーシャリング)

    次の点が改善されました:

    • モジュール性
    • Object メタデータに関する対称性。
    • コード再利用 (< 1% コード重複 --- 願っています)
    • 疎結合

    ... そして、以下の機能/バグ修正をより適切に提供します:

    • (修正) 属性に基づく適切なレベルの XML 要素修飾。 これにより、elementFormDefault="qualified" の場合、Suds は literal と encoded の両方のバインディングで ルート要素に適切な名前空間を含めることが保証されます。 これを正しく機能させるには、 literal マーシャラーは(encoded マーシャラーと同様に)スキーマ型を認識する必要がありました。 上記のリファクタリングの代わりに encoded マーシャラーと同じスキーマ型ルックアップを追加していたら、 2つのクラスはほぼ完全に重複していたでしょう :-(
  • ビルダーとアンマーシャラーは、スキーマ型を解決するために schema.Schema.find() を使用していました。 適切なコンテキストで型を解決するために、"person.name.first" のようなパスを構築していました。 Schema.find() はステートレスだったため、呼び出しのたびに中間パス要素を解決していました。 新しいリゾルバクラスはステートフルで、子型を はるかに 効率的に解決します。

  • sudsobject.Object 内の items() メソッドのような名前の衝突を防ぎます。 すべてのメソッド(クラスメソッドを含む)を、Object クラスにクラス属性 ( factory ) として含まれる Factory クラスに移動しました。 これで すべての 属性が python 組み込みの命名規則を持つようになったため、名前の衝突はもう発生しないはずです。 もちろん、これは wsdl/schema のエンティティ名が python 組み込みの命名規則を持つ名前を持たないことを前提としていますが、どこかで線を引かなければなりません :-)