Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
suds — Clone di suds 0.4 + suds-0.4-CVE-2013-2217.patch | Kitploit
Strumenti/GitHubGitHub/osirium/suds
Analisi delle VulnerabilitàScripting e AutomazioneTest di Sicurezza delle APISicurezza WebUtilità e FrameworkSicurezza delle API
GitHubosirium/suds

suds

Clone di suds 0.4 + suds-0.4-CVE-2013-2217.patch

Vedi Repository
888 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

PANORAMICA

Il client di servizi web "Suds" è un client leggero basato su SOAP per Python, con licenza LGPL.

Per dettagli, visita:

  • Sito del progetto: https://fedorahosted.org/suds/
  • Documentazione: https://fedorahosted.org/suds/wiki/Documentation
  • Epydocs: http://jortel.fedorapeople.org/suds/doc/

NOTE DI RILASCIO:

versione 0.3.6 (04-31-09):

  • Modifica hard coded /tmp/suds in tempfile.gettempdir() e crea suds/ su richiesta.
  • Correggi tipo restituito per Any.get_attribute().
  • Aggiorna caching HTTP per ignorare gli URL file://.
  • Migliore logging dei messaggi quando viene iniettata solo la risposta.
  • Correggi tipi XInteger e XFloat per tradurre correttamente gli array restituiti.
  • Correggi schema xs:import con stesso namespace.
  • Aggiorna parser per non caricare riferimenti esterni e aggiungi Import.bind() per la posizione di XMLSchema.xsd.
  • Aggiungi schema doctor - utilizzato per correggere XSD a runtime. (Vedi Option.doctor)
  • Correggi avvisi di deprecazione in Python 2.6.
  • Aggiungi comportamento per @default definito su .
  • Cambia valore di @xsi:type in modo che sia sempre qualificato per doc/literal. (annulla la modifica della 0.3.5).
  • Aggiungi opzione Option.xstq per controllare quando @xsi:type è qualificato.
  • Ticket risolti: #64, #129, #205, #206, #217, #221, #222, #224, #225, #228, #229, #230

versione 0.3.5 (04-16-09):

  • Aggiunge caching HTTP. Predefinito è (1) giorno. Non si applica all'invocazione di metodi. Vedi: documentazione per dettagli.
  • Rimossa verifica versione fedora nello spec poiché non si compila più per < fc9.
  • Aggiornato makefile per creare tarball con tar.sh.
  • Spostata determinazione bare/wrapped nel wsdl per document/literal.
  • Refactoring di Transport in un pacchetto (fornisce miglior logging degli header HTTP).
  • Ticket risolti: #207, #209, #210, #212, #214, #215

versione 0.3.4 (02-24-09):

  • Static (automatico) Import.bind('http://schemas.xmlsoap.org/soap/encoding/'), gli utenti non devono più farlo.
Scarica lo strumento
  • Sicurezza ws di base con {{{UsernameToken}}} e solo password in chiaro.
  • Aggiungi supporto per header SOAP ''sparse'' tramite passaggio di dizionario.
  • Aggiungi supporto per header SOAP arbitrari definiti dall'utente.
  • Correggi operazioni di servizio con multiple voci di header SOAP.
  • Miglioramenti all'algoritmo di caricamento e dereferenziazione degli schemi.
  • Correzione multiref SOAP annidati.
  • Supporto migliore (vero) per elementFormDefault="unqualified" fornisce un namespacing più accurato.
  • I tipi parte WSDL non predefiniscono più al targetNamespace WSDL.
  • Ticket risolti: #4, #6, #21, #32, #62, #66, #71, #72, #114, #155, #201.
  • versione 0.3.3 (11-31-08):

    • Non installa più il pacchetto (tests).
    • Implementa proposta API-3 ( https://fedorahosted.org/suds/wiki/Api3Proposal )
      • Trasporto collegabile
      • Argomenti di metodo con keyword
      • Autenticazione HTTP base nel trasporto predefinito
    • Aggiungi normalizzazione del prefisso namespace nel messaggio SOAP.
    • Migliore potatura dei nodi vuoti nel messaggio SOAP.
    • Ticket risolti: #51 - #60

    versione 0.3.2 (11-7-08):

    • SOAP {{{MultiRef}}} support ''(primo passaggio aggiunto in r300)''
    • Aggiungi supporto per nuovi tag schema:
      • xs:include/
      • xs:simpleContent/
      • xs:group/
      • xs:attributeGroup/
    • Aggiunto supporto per nuove conversioni di tipo xs <--> python:
      • xs:int
      • xs:long
      • xs:float
      • xs:double
    • Rivedi marshaller e binding per affinare ulteriormente il namespacing dei nodi prodotti.
    • Corretta ricorsione infinita nel pacchetto ''xsd'' dereference() durante il caricamento dello schema.
    • Aggiungi supporto per wsdl:import/ di file schema nella radice del wsdl.
    • Corretto doppio encoding di (&)
    • Aggiungi API Client:
      • setheaders() - come keyword ma funziona per tutte le invocazioni.
      • addprefix() - mappatura dei prefissi namespace.
      • setlocation() - Sovrascrive la posizione nel wsdl; come keyword tranne per tutte le chiamate.
      • setproxy() - come proxy keyword ma per tutte le invocazioni.
    • Aggiungi prefisso namespace appropriato per gli header SOAP.
    • Ticket risolti: #5, #12, #34, #37, #40, #44, #45, #46, #48, #49, #50, #51

    versione 0.3.1 (10-1-08):

    • Seguito rapido al rilascio 0.3 che rendeva le definizioni di servizio multi-porta più difficili del necessario. Dopo averci pensato (e una buona notte di sonno), è sembrato ovvio che alcuni cambiamenti avrebbero reso tutto molto più semplice: 1) filtrare i binding non-SOAP - erano la vera causa del problema; 2) dato che la maggior parte dei server è soddisfatta con qualsiasi binding SOAP (SOAP 1.1 e 1.2), i riferimenti ambigui ai metodi quando invocati senza la qualifica di porta funzioneranno correttamente in quasi tutti i casi. Quindi, perché non permettere a suds di selezionare la porta? Non costringiamo l'utente a farlo quando non è necessario. Nella maggior parte dei casi, gli utenti di 0.2.9 e precedenti non dovranno aggiornare il loro codice quando passano a 0.3.1, come avrebbero potuto fare in 0.3.

    versione 0.3 (9-30-08):

    • Estende il supporto per servizi multi-porta introdotto in 0.2.9. Questa aggiunta permette a più servizi di definire lo stesso metodo e suds lo gestirà correttamente. Vedi sezione 'SERVIZI CON PORTE MULTIPLE:'

    • Aggiungi supporto per lo stile di binding SOAP document/literal multi-documento. Vedi sezione 'MULTI-DOCUMENTO Document/Literal:'

    • Aggiungi supporto per tag (xs:group, xs:attributeGroup).

    • Aggiungi Client.last_sent() e Client.last_received().

    versione 0.2.9 (9-09-08):

    • Supporto per porte multiple all'interno di un servizio.
    • Riferimenti ad attributi <xs:attribute ref=""/>
    • Reso collegabile il codificatore di caratteri speciali XML nel pacchetto sax.

    versione 0.2.8 (8-28-08):

    • Aggiorna binding document/literal per inviare sempre la radice del documento referenziata da . Dopo un'ulteriore revisione dello spazio e dell'input utente, sembra che l'elemento referenziato sia SEMPRE la radice del documento.

    • Aggiungi supporto per il binding di schemaLocations a namespace-uri. Questo è per gli import che non specificano uno schemaLocation e si aspettano comunque che lo schema venga scaricato. Es: Axis fa riferimento a 'http://schemas.xmlsoap.org/soap/encoding/' senza uno schemaLocation. Quindi, facendo:

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

      Lo schema viene associato a uno schemaLocation e viene scaricato.

    • Il demarshaller base non ha bisogno di un /schema/. Doveva essere rimosso durante il refactoring ma è stato perso.

    • Aggiorna client per passare kwargs a send() e aggiungi kwarg /location/ per sovrascrivere la posizione del servizio nel wsdl.

    • Aggiorna marshaller per NON emettere XML per attributi di oggetti che rappresentano elementi e/o attributi che sono entrambi opzionali e value=None. * Aggiorna factory (builder) per includere tutti gli attributi. * Aggiungi metodo optional() a SchemaObject.

    • Aggiorna wsdl per sovrascrivere il namespace nell'operazione se specificato.

    • Correggi problema di caricamento schema - costruisci tutti gli schemi prima di processare gli import.

    • Aggiorna packaging in preparazione dell'invio a fedora.

    versione 0.2.7 (8-11-08):

    • Aggiungi rilevamento/supporto per document/literal - wrapped e unwrapped.
    • Aggiorna document/literal {wrapped} per impostare la radice del documento (sotto ) come elemento wrapper (con namespace appropriato).
    • Aggiungi supporto per , e con maxOccurs e che faccia sì che il demarshaller imposti i valori per gli elementi contenuti in una collezione senza limiti come lista.
    • Aggiorna client.factory (builder) per omettere i figli di poiché l'utente deve decidere quali figli includere.
    • Aggiorna algoritmo di flattening per prevenire un re-flattening di tipi da schemi importati.
    • Regolazioni agli algoritmi di flattening/merging.

    versione 0.2.6 (8-5-08):

    • Correggi ENUM rotti durante la revisione del pacchetto xsd.
    • Correggi tipo come definito nel ticket #24.
    • Correggi nomi di parametri duplicati nelle firme dei metodi come riportato nel ticket #30.
    • Suds con licenza LGPL.
    • Rimuovi configurazione del logging in suds.init() come suggerito dalla patch nel ticket #31. Gli utenti dovranno ora configurare il logger.
    • Aggiungi supporto per Client.Factory.create() sintassi alternativa: per qualificare completamente il tipo da costruire come: {namespace}nome. Es: client.factory.create('{http://blabla.com/ns}Person')

    versione 0.2.5 (8-01-08):

    • Revisionato il pacchetto (XSD). Questo nuovo approccio (di merging) è più semplice e dovrebbe essere più affidabile e manutenibile. Dovrebbe anche fornire migliori prestazioni poiché lo schema unito esegue lookup tramite dizionario.

      Questa revisione dovrebbe risolvere i problemi correnti di TypeNotFound e xs:extension/, spero :-).

    • Corretto bug di stampa di dateTime.

    • Aggiunta prevenzione di ricorsione infinita in builder.Builder per tipi xsd che contengono se stessi.

    versione 0.2.4 (7-28-08):

    • Aggiunto supporto per import WSDL: wsdl:import/
    • Aggiunto supporto per conversioni di tipo xsd<->python (grazie: Nathan Van Gheem) per:
      • xs:date
      • xs:time
      • xs:dateTime
    • Corretto:
      • Bug: Schema con schemaLocation specificato.
      • Bug: Namespace specificati nella descrizione del servizio non validi fino a quando client/proxy non viene stampato.

    versione 0.2.3 (7-23-08):

    • Ottimizzazioni.

    versione 0.2.2 (7-8-08):

    • Aggiorna eccezioni per essere più /standard/ Python usando Exception.init() per impostare Exception.message come suggerito dal Ticket #14; aggiorna binding per sollevare WebFault passando (p).

    • Aggiungi capacità nei binding di gestire più nodi radice nei valori restituiti; restituiti come oggetto composito, a differenza di quando vengono restituite liste.

    • Correggi soapAction per essere racchiuso tra virgolette.

    • Aggiungi supporto per xs:all/

    • Correggi metodo unbounded() in SchemaObject.

    • Refactoring dello schema in un nuovo pacchetto (xsd). I file diventavano troppo grandi. Aggiunto execute() a Query e modificato suds per eseguire() query invece di usare Schema.find() direttamente. Inoltre, sposta i metodi start() improvvisati da schema, così come l'incremento delle query.

    • Aggiungi keyword inject usata per iniettare messaggi SOAP in uscita e/o messaggi di risposta in entrata. Refactoring di SoapClient e

      1. rinomina send() in invoke()
      2. separa l'invio del messaggio da invoke() e mettilo in send() Aggiungi TestClient che permette ai kwargs di invocazione di avere inject={'msg=, reply='} per l'iniezione di messaggi e risposte.
    • Aggiungi classe Namespace a sax per una migliore gestione del comportamento dei namespace; modifica suds per importare e usare Namespace.

    • Cambia il namespace predefinito usato per risolvere i tipi referenziati (con attributi @base="", @type="") in modo che quando non viene specificato un prefisso: usi il namespace XML (nodo) invece del targetNamespace.

    • Applica la correzione come definita da [email protected] nel ticket #13.

    • Aggiorna la definizione del servizio per stampare a display i metodi del servizio come ' my_method(xs:int arg0, Person arg1) ' invece di ' my_method(arg0{xs:int}, arg1{Person}) ' che è più simile a firme di metodo tradizionali.

    • Aggiungi conversione di tipo xsd/python al demarshaller (solo XBoolean); refactoring del demarshaller per usare Content che rende le API più pulite, aggiunge simmetria tra marshaller e demarshaller, fornisce un buon meccanismo per conversioni di tipo basate su proprietà dello schema.

    • Refactoring del marshaller con Appenders; aggiungi flag nobuiltin a resolve() per supportare la correzione per returned_type() e returned_collection() nei binding.

    • Aggiungi supporto per codici http (202, 204).

    • Aggiungi XBoolean e mappature; aggiungi findattr() a TreeResolver in preparazione per le conversioni di tipo.

    • Aggiornato caricamento dello schema e delle proprietà dello schema (ricorsione profonda interrotta); Modificati schemi importati in modo che non copino più gli schemi importati, piuttosto l'import proxy trova le richieste; Aggiungi classe ServiceDefinition che fornisce una migliore ispezione del servizio; fornisce anche mappatura dei namespace e mostra i tipi; API delle proprietà dello schema semplificate; aggiunto supporto per xs:any e xs:anyType; Risolti alcuni problemi di lookup dello schema; Classi Binding leggermente rifattorizzate; Aggiunto molto logging di debug (potrebbe essere necessario commentare alcuni per prestazioni - alcuni degli argomenti sono costosi).

    • Aggiungi sudsobject.Property; una proprietà è un oggetto speciale che contiene un attributo (value) e viene restituito dal Builder (factory) per tipi di schema senza figli come: e ; Builder, Marshallers e Resolvers aggiornati per gestire le Proprietà; Resolver, Schema aggiornati anche per gestire lookup di attributi (mancava).

    • Aggiungi basi per header SOAP definiti dall'utente.

    • Correggi elementFormDefault per il ticket #7.

    • Rimuovi kwargs inutilizzati dai binding; cache dei binding in wsdl; modifica legacy ServiceProxy per delegare alla {nuova} API Client; rimuovi keyword nil_supported a favore della gestione naturale tramite attributo 'nillable' su negli schemi.

    • Aggiungi supporto per flag di attributo di (nillable e form).

    • Aggiungi la classe Proxy (API di seconda generazione).

    • Aggiungi funzioni di accesso/conversione in modo che l'utente non debba accedere agli attributi x. Aggiungi anche todict() e get_items() per una facile conversione in dizionario e iterazione.

    • Cerca elementi di primo livello per @ref prima di guardare più in profondità.

    • Aggiungi derived() a SchemaObject. È necessario per assicurare che tutti i tipi derivati (classi wsdl) siano qualificati da xsi:type senza specificare xsi:type per tutti i tipi personalizzati come fatto in versioni precedenti di suds. Aggiorna il marshaller letterale per aggiungere xsi:type solo quando il tipo deve essere specificato.

    • Cambia promozione ns in sax per prevenire che ns venga promosso al genitore quando il genitore ha il prefisso.

    • Cambiato returned_type() del binding per restituire l'Element (non risolto).

    • Per supportare le nuove funzionalità e correggere i bug riportati, sto rifattorizzando e, si spera, evolvendo i componenti di Suds che forniscono le traduzioni input/output:

      • Builder (traduce: oggetti XSD => oggetti Python )
      • Marshaller (traduce: oggetti Python => XML/SOAP )
      • Demarshaller (traduce: soap/xml => oggetti Python )

      Questa evoluzione fornirà una migliore simmetria tra questi componenti come segue:

      Il Builder e il Demarshaller produrranno oggetti Python (sottoclasse di sudsobject.Object) con:

      • metadata.type = tipo XSD (SchemaObject)
      • nome sottoclasse ( class.name ) = nome del tipo di schema.

      e

      I Marshaller, consumando oggetti Python prodotti dal Builder o Demarshaller, sfrutteranno queste informazioni standard per produrre l'output appropriato ( XML/SOAP ).

      Il codice 0.2.1 si comporta per lo più in questo modo ma ... non del tutto. Inoltre, le implementazioni hanno alcune ridondanze.

      Mentre facevo questo, è sembrato opportuno estrarre la funzionalità comune di "lookup" del tipo di schema utilizzata dalle classi Builder, Marshallers e Demarshaller in una gerarchia di classi "Resolver". Questo riduce la complessità e la ridondanza delle classi Builder, Marshallers e Demarshaller e permette una migliore modularità. Una volta completato questo refactoring, la differenza tra i Marshaller letterali/codificati è diventata molto piccola. Dato che la quantità di codice nei pacchetti bindings.literal e bindings.encoded era piccola (e diventava sempre più piccola) e nell'interesse di mantenere la base di codice di Suds compatta, ho spostato tutte le classi di marshalling nel modulo bindings.marshaller. Tutti i sottopacchetti bindings.XX verranno rimossi.

      L'effetto netto:

      Tutti i componenti principali di Suds:

      • client (vecchio: proxy di servizio)
      • wsdl
        • schema (pacchetto xsd)
        • resolver
      • output (marshalling)
      • builder
      • input (demarshalling)

      Ora hanno migliore:

      • modularità
      • simmetria riguardo ai metadati degli oggetti.
      • riutilizzo del codice (< 1% di duplicazione di codice, spero)
      • accoppiamento più lento

      ... e forniscono meglio le seguenti funzionalità/correzioni di bug:

      • (fix) Livello appropriato di qualificazione degli elementi XML basato su l'attributo . Ciò garantirà che quando elementFormDefault="qualified", Suds includerà il namespace appropriato sugli elementi radice sia per binding letterali che codificati. Affinché funzioni correttamente, il marshaller letterale (come il marshaller codificato) necessitava di essere consapevole del tipo di schema. Se avessi aggiunto lo stesso lookup del tipo di schema del marshaller codificato invece del refactoring descritto sopra, le due classi sarebbero state quasi un duplicato completo l'una dell'altra :-(
    • Il builder e il demarshaller usavano schema.Schema.find() per risolvere i tipi di schema. Costruivano un percorso come "person.name.first" per risolvere i tipi nel contesto appropriato. Poiché Schema.find() era senza stato, risolveva gli elementi di percorso intermedi ogni volta che veniva chiamato. I nuovi resolver hanno stato e risolvono i tipi figli in modo molto più efficiente.

    • Prevenisci collisioni di nomi in sudsobject.Object come il metodo items(). Ho spostato tutti i metodi (inclusi metodi di classe) in una classe Factory inclusa nella classe Object come attributo di classe ( factory ). Ora che tutti gli attributi hanno la denominazione built-in di Python, non dovremmo avere più collisioni di nomi. Questo ovviamente presuppone che nessun nome di entità wsdl/schema abbia un nome con la convenzione di denominazione built-in di Python, ma devo tracciare un limite da qualche parte :-)

    versione 0.2.1 (5-8-08):

    • Aggiorna la sequenza di caricamento di SchemaProperty in schema.py in modo che lo schema venga caricato in 3 passaggi: 1) costruisci l'albero grezzo. 2) risolvi dipendenze come @ref e @base.
      3) promuovi i nipoti come necessario per appiattire (denormalizzare) l'albero.

      Il wsdl è stato modificato anche per caricare lo schema una sola volta e memorizzarlo. La raccolta di schemi è stata modificata per caricare gli schemi in 2 passaggi: 1) crea tutti gli oggetti schema grezzi. 2) carica schemi.

      Questo garantisce che gli schemi locali possano essere trovati quando referenziati fuori ordine.
      L'interfaccia Element di sax.py è cambiata: attribute() è stato sostituito da get() e set().
      Inoltre, getitem e setitem possono essere usati per accedere ai valori degli attributi.
      Epydocs aggiornati per sax.py. E ... finalmente ora supportato correttamente.

    • Correggi logging: NON impostandolo a info in suds.init.logger(); imposta handler solo sul logger radice; spostato logger (log) dalle classi ai moduli e usa name per il nome del logger. NOTA: Questo significa che per abilitare il logging dei messaggi SOAP: > > logger('suds.serviceproxy').setLevel(logging.DEBUG) > -- invece di -- > > logger('serviceproxy').setLevel(logging.DEBUG) >

    • Aggiungi supporto per nodi dello schema (xsd) che principalmente influenzano gli oggetti restituiti dal Builder.

    • Aggiorna serviceproxy.py:set_proxies() per loggare DEBUG invece di INFO.

    • Migliora schema str per mostrare sia l'xml grezzo che il modello (principalmente per debug).

    versione 0.2 (04-28-08):

    • Contiene la prima versione dello stile soap rpc/encoded.

    • Sostituita la classe Property con suds.sudsobject.Object. La classe Property è stata sviluppata molto tempo fa con uno scopo leggermente diverso. L'oggetto suds è un approccio più semplice (più diretto) che richiede meno codice e funziona meglio nel debugger.

    • Il Binding (e la codifica) viene selezionato per ogni singolo metodo, il che è più coerente con il wsdl. In versioni <=0.1.7, il binding veniva selezionato quando il ServiceProxy veniva costruito e usato per tutti i metodi del servizio. Il binding era memorizzato come self.binding. Poiché il WSDL prevede uno stile di binding e una codifica separati per ogni operazione, Suds doveva essere modificato per funzionare allo stesso modo.* I flag (nil_supported) e (faults) passati al service proxy tramite **kwargs. Oltre a questi flag, è stato aggiunto il flag (http_proxy) e viene passato all'oggetto urllib2.Request. Sono supportati i seguenti argomenti:

      • faults = Solleva eccezioni generate dal server (default:True), altrimenti restituisce una tupla dall'invocazione del metodo del servizio come (codice http, oggetto).
      • nil_supported = I binding impostano xsi:nil="true" sui nodi che hanno un valore=None quando questo flag è True (default:True). Altrimenti viene inviato un nodo vuoto <x/>.
      • proxy = Un proxy http da specificare nelle richieste (default:{}). Il proxy è definito come {protocollo:proxy,}.
    • Supporto per proxy http (vedi sopra).

    • ServiceProxy rifattorizzato per delegare a un SoapClient. Poiché il service proxy espone i web service tramite getattr(), qualsiasi attributo (inclusi i metodi) fornito dalla classe ServiceProxy nasconde le operazioni WS definite dal wsdl. Quindi, spostando tutto in SoapClient, le operazioni wsdl non sono più nascoste senza dover usare nomi hoky per attributi e metodi nel service proxy. Invece, il service proxy ha gli attributi __client__ e __factory__ (che in realtà dovrebbero essere a basso rischio di collisione di nomi). Per ora i metodi get_instance() e get_enum() non sono stati spostati per preservare la retrocompatibilità. Tuttavia, la modifica API preferita sarebbe quella di sostituire:

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

      ... con qualcosa come ...

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

      Dopo alcuni rilasci che diano agli utenti il tempo di passare alla nuova API, i metodi get_instance() e get_enum() potrebbero essere rimossi con un avviso in caratteri grandi.

    • Risolto il problema per cui un wsdl non definisce una sezione <schema/> e Suds non riesce a risolvere i prefissi per il namespace http://www.w3.org/2001/XMLSchema per rilevare i tipi builtin come (xs:string).

    versione-0.1.7 (04-08-08):

    • Aggiunto Binding.nil_supported per controllare come vengono elaborati i valori delle proprietà (out) = None e tag vuoti (in).

      • service.binding.nil_supported = True – significa che i valori delle proprietà = None vengono serializzati (out) come <x xsi:nil=true/> e <x/> viene de-serializzato come '' e <x xsi:nil/> viene de-serializzato come None.
      • service.binding.nil_supported = False – significa che i valori delle proprietà = None vengono serializzati (out) come <x/> e <x/> e <x xsi:nil=true/> viene de-serializzato come None. Il xsi:nil viene effettivamente ignorato.
      • IL DEFAULT È (TRUE)
    • Sax handler aggiornato per gestire più callback character() quando il parser sax "frammenta" il testo. Quando node.text è None, node.text viene impostato ai caratteri. Altrimenti, i caratteri vengono aggiunti. Grazie - [email protected]

    • Sostituito l'attributo speciale (text) con __text__ per consentire elementi naturali denominati "text"

    • Aggiunto supporto unicode mediante:

      • Aggiunto __unicode__ a tutte le classi con __str__
      • Sostituite tutte le chiamate str() con unicode().
      • __str__() restituisce il risultato di __unicode__ codificato in UTF-8.
    • Output XML codificato in UTF-8 che corrisponde all'intestazione HTTP e supporta unicode.

    • SchemaCollection modificato per fornire i metodi builtin() e custom(). Per supportare ciò, findPrefixes() è stato aggiunto all'Element in sax.py. Questo è comunque un approccio migliore poiché il wsdl e gli schemi possono avere molti prefissi per http://www.w3.org/2001/XMLSchema. Testato con binding doc/lit e rpc/lit

    • Rifattorizzati i pacchetti di binding da document & rpc a literal & encoded

    • Contiene il completamento del supporto completo dei namespace come segue:

      • I prefissi dei namespace non vengono più rimossi dai valori degli attributi che fanno riferimento a tipi definiti nel wsdl.
      • Gli schemi importati usando <import/> dovrebbero gestire correttamente il mapping dei namespace e dei prefissi e il re-mapping come necessario.
      • Tutti i tipi vengono risolti utilizzando ricerche completamente qualificate (con namespace).
      • Schema.get_type() supporta percorsi con e senza prefissi ns. Quando non viene specificato alcun prefisso, il tipo viene abbinato utilizzando il target namespace dello schema.
    • Property mantiene i nomi degli attributi (chiavi) nell'ordine in cui sono stati aggiunti. Ciò significa anche che get_item() e get_names() restituiscono valori ordinati. (Anche se sospetto che l'ordinamento debba essere fatto nel marshaller usando l'ordine specificato nel wsdl/schema)

    Importante rifattorizzazione di schema.py. L'obiettivo principale è la preparazione per ricerche di tipi completamente qualificate per namespace. Una volta completato, i prefissi sui valori degli attributi non verranno più rimossi (purged). Riepilogo delle modifiche: 1) Le classi di overlay SchemaProperty create in __init__ invece che on-demand. 2) Le importazioni dello schema eseguite dalla nuova classe Import invece che da Schema. 3) Schema carica le proprietà di primo livello usando una factory. 4) Tutte le liste /children/ di SchemaProperty sono ordinate per __cmp__ nelle classi derivate da SchemaProperty. Ciò garantisce che i tipi con lo stesso nome vengano risolti nel seguente ordine (Import, Complex, Simple, Element). 5) Tutte le liste /children/ di SchemaProperty sono costruite in __init__ invece che on-demand. 6) Creato SchemaGroup e aggiornata la classe WSDL. Questo funziona meglio che far aggregare al wsdl i nodi <schema/> che interrompono il collegamento con l'elemento genitore wsdl che ha il mapping dei prefissi dei namespace. 7) L'elemento <import/> viene gestito correttamente in quanto vengono eseguiti sia il re-mapping del namespace che il re-mapping del prefisso del targetNamespace dello schema importato e del relativo mapping dei prefissi. Es: SCHEMA-A ha prefisso (tns) mappato come xmlns:tns=http://nsA e ha targetNamespace=http://nsA. SCHEMA-B importa lo schema A e ha prefisso (abc) mappato come xmlns:abc=http://nsABC. SCHEMA-B importa A come <import namespace=http://nsB xxx schemaLocation=http://nsA/schema-a.xsd>. Quindi, poiché SCHEMA-B farà riferimento agli elementi di SCHEMA-A con prefisso (abc) come abc:something, il targetNamespace di SCHEMA-A deve essere aggiornato a http://nsABC e tutti gli elementi con type=tns:something devono essere aggiornati a type=abc:something in modo che possano essere risolti.

    • Risolto il problema di de-serializzazione per cui i nodi venivano aggiunti alla proprietà come (text, value). Questo è stato introdotto quando i binding sono stati rifattorizzati.

    • Risolti vari problemi di stampa di Property.

    Note:

    root@kitploit:~
    Grazie a Jesper Noehr di Coniuro per la maggior parte del binding rpc/literal e per molta collaborazione su #suds.
    
    

    versione-0.1.6 (03-06-08):

    • Fornisce la gestione corretta dei wsdl che contengono sezioni schema con import di schema xsd: <import namespace="" schemaLocation=""?>. Gli schemi referenziati vengono importati quando viene specificato uno schemaLocation.
    • Solleva eccezioni per codici di stato http non già gestiti.

    versione-0.1.5 (21-02-08):

    • Fornisce una migliore registrazione nei moduli ottenendo logger con nomi gerarchici.
    • Rifattorizzato come necessario per supportare veramente altri binding.
    • Aggiunto modulo sax che sostituisce ElementTree. Questo è più veloce, più semplice e gestisce correttamente i namespace (prefissi).

    versione-0.1.4 (21-12-07):

    • Permette che i parametri dei metodi del servizio siano None.
    • Aggiunge la gestione corretta dei parametri dei metodi che sono liste di oggetti property.

    versione-0.1.3 (19-12-07):

    • Risolve il problema per cui i nodi contrassegnati come collezione (maxOccurs > 1) non creavano oggetti property con valore=[] quando mappati con < 2 valori da DocumentReader. Causato dalla mancata conversione di bindings.Document.ReplyHint.stripns() (che usa DocumentReader.stripns()) in DocumentReader.stripn() che ora restituisce una tupla (ns,tag) come della 0.1.2.

    versione-0.1.2 (18-12-07):

    Questa release contiene un aggiornamento a property che aggiunge: * supporto per metadata * override: __getitem__, __setitem__, __contans__ * cambia property(reader|writer) per usare property.metadata per gestire i namespace nei documenti XML. * risolve i requires in setup.py.

    versione-0.1.1 (17-12-07):

    Questa release segna la prima release ospitata su fedora.