2009-03-20 4 views

Antwort

13

soapUI hat einen WSDL-Content-Viewer, wie die Website

Die Interface-Viewer beschreibt ermöglicht relativ einfache Navigation und Inspektion des gesamten Vertrages für eine importierte WSDL, einschließlich aller eingeführt werden und WSDL und XSD-Dateien und deren enthaltenen Typen , Definitionen usw.

http://www.soapui.org/userguide/interfaces/interfaceeditor.html

+12

SoapUI hat auch die Möglichkeit, eine WSDL in eine lokale Datei zu exportieren. Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie "Definition exportieren". –

1

Das Altova SchemaAgent Tool herunterladen können, visualisieren und eine WSDL und mehrere Schemas zu modellieren. Es ist sehr schön, wenn es kompliziert wird.

2

Das folgende Perl-Skript wird tun, was Sie wollen:

#!/usr/bin/perl 
# 


use strict; 
use warnings; 

use LWP::Simple; 


sub downloadfile { 
     my ($url, $file) = @_; 
     getstore($url, $file); 
} 

sub getLinesMatching { 
     my ($file, $pattern) = @_; 
     open my $fh,'<',$file or die "Could not open $file: $!"; 
     my @matching = grep /schemaLocation/,<$fh>; 
     my $size = @matching; 
     close $fh; 
     @matching; 
} 

sub processFile { 
     my ($url, $file) = @_; 

     downloadfile $url, $file; 

     my @lines = getLinesMatching $file,'schemaLocation'; 
     if (@lines > 0) { 
       foreach my $line (@lines) { 
         $line =~ /schemaLocation=\"([^\"]*)/; 
         my ($url2) = $1; 
         print "$url2\n\n"; 
         $url2 =~ /.*\/([^\/]*)/; 
         my ($file2) = $1; 
         print "$file2\n\n"; 
         processFile ($url2, $file2); 
       } 
     } 
} 


my ($url) = @ARGV; 
$url =~ /.*\/([^\/]*)/; 
my ($base) = $1; 
$base =~ s/\?/./; 

print "Processing [$base] for [$url]\n\n"; 

processFile $url, $base; 

Zusammengefasst sind es die in Parameter als eine URL übergeben als die erste Datei abzurufen. Anschließend durchsucht es diese Datei nach schemaLocation-Attributen und lädt jede dieser Dateien rekursiv herunter, bis alle Schemas gefunden oder nicht gefunden wurden.

das Skript aufzurufen:

perl thisscript.perl WSDLURL

Es wird versucht, rekursiv durch jede importierte XSD aus der WSDL-Datei zu arbeiten und alle Dateien im aktuellen Verzeichnis erstellen.