Aracılığıyla paylaş


Web Hizmeti Derleyici Aracı

Hizmet modelini desteklemek için wsutil.exe hem istemci hem de hizmet tarafında kullanılacak üst bilgi oluşturur. gerektiğinde istemci tarafı için C proxy dosyası ve hizmet tarafı için C saplama dosyası oluşturur.

serileştirmedesteklemek için derleyici, genel öğe tanımları için öğe açıklamaları için üst bilgiler ve serileştirme altyapısı tarafından kullanılacak ara sunucu dosyasındaki tüm tür tanımı bilgilerini oluşturur.

Kullanım

WsUtil.exe [command-line-switches [switch-options]:]<dosya adı>

komut satırı anahtarları

derleyici seçeneklerini WsUtil.exe belirtir. Anahtarlar herhangi bir sırada görünebilir. Tire ('-') ve eğik çizgi ('/') aynı olarak değerlendirilir.

Komut satırı seçeneklerinin listesi

  • @filename Giriş dosyasının yanıt dosyası olarak ele alınması gerektiğini belirtir. Bu seçenek bağımsız değişken listesindeki herhangi bir yerde birden çok kez kullanılabilir.
  • /wsdl:<dosya adı>:<optional_url> Giriş dosyasının bir wsdl dosyası olarak ele alınması gerektiğini belirtir. Birden çok wsdl girişlerine izin verilir ve belirtilen tüm wsdl dosyaları işlenir. optional_url, meta verilerin alındığı konumu belirtir. optional_url belirtilmezse, Wsutil dahili olarak benzersiz bir URL oluşturur. Ayrıca bkz. İlke Desteği.
  • /xsd:<dosya adı> Giriş dosya adının şema dosyası olarak ele alınması gerektiğini belirtir. Birden çok xsd girişe izin verilir ve belirtilen tüm şema dosyaları işlenir.
  • /wsp:<dosya adı>:<optional_url> Giriş dosya adının ilke meta verileri olarak ele alınması gerektiğini belirtir. Birden çok wsp girişlerine izin verilir ve belirtilen tüm ilke dosyaları işlenir. optional_url, meta verilerin alındığı konumu belirtir. optional_url belirtilmezse, Wsutil dahili olarak benzersiz bir URL oluşturur. /nopolicy bayrağı belirtilirse ilke dosyaları yoksayılır. Ayrıca bkz. İlke Desteği.
  • /nopolicy İlke işlemeyi devre dışı bırakın.
  • /out:<dirname> Çıktı dosyalarının dizin adını belirtir
  • /noclient İstemci tarafı saplama oluşturmayın.
  • /noservice Hizmet tarafı saplama oluşturmayın.
  • /prefix: Belirtilen dizeyi oluşturulan tüm tanımlayıcılara önceden><dize.
  • /fullname Önceden oluşturulmuş tanımlayıcılara normalleştirilmiş dosya adını ekler. Varsayılan olarak, ilgili açıklamaların tanımlayıcılarını oluşturmak için yalnızca "name" özniteliğinde belirtilen ad kullanılır.
  • /string:<WS_STRING>| WCHAR*><Varsayılan olarak, wsutil xsd:string türü için WCHAR* oluşturur. Uygulama bu bayrağı kullanarak bu davranışın üzerine yazabilir ve bunun yerine xsd:type için WS_STRING oluşturur.
  • /help Yardım iletisini görüntüleme
  • /? /help ile aynı
  • /W:x Hata işleme seçenekleri. W:0-W:4 olabilir | WX
  • /nologo Konsol çıkışında derleyiciye özgü bilgiler oluşturmayın.
  • /nostamp Oluşturulan dosyalar üzerinde derleyiciye özgü bilgiler oluşturmayın.

Varsayılan olarak, derleyici WSDL dosyası veya meta veri değişiminden döndürülen WSDL için aşağıdaki dosyaları oluşturur:

  • İstemci proxy'si ({inputfilename}.c)

  • Hizmet Saptama ({inputfilename}.c)

  • Üst bilgi dosyası ({inputfilename}.h)

    Oluşturulan dosya adının kökü giriş dosyası adıdır. Özgün giriş dosyası uzantıları, oluşturulan dosyalar için dosya adı çakışmasını önlemek için korunur. Varsayılan olarak istemci ve hizmet saptamaları, proxy kodundan sonra oluşturulan hizmet saptama koduyla aynı dosyada oluşturulur.

    Varsayılan olarak, derleyici meta veri değişiminden döndürülen şema için XSD dosyası için aşağıdaki dosyaları oluşturur:

  • serileştirme açıklamaları ({inputfilename}.c)

  • Üst bilgi dosyası ({inputfilename}.h)

    Dosya adının kökü hizmet adıdır.

Wsutil.exe, oluşturulan tüm dosyaların başında derleyici seçeneğini, araç sürümünü, uygun komut satırı seçeneğini vb. belirten bir "damga" bölümü oluşturur. Bu bölüm, oluşturulan dosyaların karşılaştırılmasıyla kirliliklerden kaçınmak için /nostamp seçeneği kullanılarak kapatılabilir.

Wsutil meta verilerin indirilmesini desteklemiyor

Wsutil derleyicisi yalnızca yerel meta veri dosyasından çalışır. Araç, web hizmetlerini çalıştıran meta verilerin indirilmesini desteklemez. Geliştiriciler meta verileri yerel makineye indirmek, kaydedilen dosyaları incelemek ve bu dosyaları derleme için wsutil.exe geçirmek için svcutil gibi desteklenen diğer web hizmeti araçlarını kullanabilir.

Birden çok giriş/çıkış dosyası desteği

WSDL ve XML şeması, diğer konum/dosyalarda belirtilen diğer ad alanlarından tanımların dahil edilmesini/içeri aktarılmasını sağlar. Wsutil birden çok şema/wsdl/ilke girişini destekler ve her giriş dosyası için bir saplama/üst bilgi kümesi oluşturur. Wsutil, include ve import deyimlerini izlemez. Bunun yerine uygulama, aracın derleme sırasında tüm bağımlılıkları çözümleyebileceği şekilde gerekli tüm ad alanlarını içeren dosyaları wsutil'e geçirmelidir.

WsUtil.exe /xsd:stockquote.xsd /wsdl:stockquote.wsdl /wsdl:stockquoteservice.wsdl

wsutil üç çıkış dosyası kümesi oluşturur:

  • stockquote.xsd.c stockquote.xsd.h
  • stockquote.wsdl.c stockquote.wsdl.h
  • stockquoteservice.wsdl.h stockquoteservices.wsdl.c

Çıkış dosyası biçimi

Her çıkış dosyası için, wsutil üst bilgi dosyasında harici olarak kullanılabilir tanımlar oluşturur. C yapısı tanımları ve saplama işlevi prototipleri dışında, diğer tüm web hizmetleriyle ilgili tanımlar normalleştirilmiş dosya adıyla adlı genel bir yapıda kapsüllenir.

typedef struct _stockquote_wsdl {
  struct {
  ... // list of WS_STRUCT_DESCRIPTION for all global complex types.
  } globalTypes;
  struct {
  ... // WS_ELEMENT_DESCRIPTION for all global elements.
  } globalElements;
  struct {
  ...
  } messages;
  struct {
  ...
  } contracts;
} _stockquote_wsdl;

EXTERN_C _stockquote_wsdl stockquote_wsdl;

Genel yapı için tüm alanların oluşturulmadığını görebilirsiniz. En üst düzey alan yalnızca giriş dosyasında ilgili tanımlar belirtildiğinde oluşturulur. Örneğin, xsd dosyaları için hiçbir ileti, işlem ve sözleşme alanı oluşturulmaz.

Uyarı Düzeyleri ve hata düzeyi

C derleyicisine benzer şekilde, WsUtil.exe dört uyarı düzeyini ve bir hata düzeyini destekler:

  • WsUtil.exe, geçersiz wsdl dosyası, geçersiz derleyici seçenekleri vb. gibi kurtarılamayan hatalarla hata oluşturur.
  • WsUtil, ciddi kurtarılabilir sorunlarla W1 uyarıları oluşturur. Derleyici devam edebilir, ancak kullanıcı sorunun farkında olmalıdır. Örneğin, wsdl'de kod oluşturmayı etkilemeyen bazı WSDL modelleri gibi desteklenmeyen öznitelikler varsa bir W1 uyarısı oluşturulur.
  • WsUtil daha az ciddi sorunlarla W2 uyarıları oluşturur. İşlev kaybı yoktur, ancak uygulama geliştiricisi bunu bilmek isteyebilir. Diğer platformlardan farklı olabilecek davranışlar gibi.
  • WsUtil, oluşturulan kod üzerinde en az etkiye sahip W3 uyarıları oluşturur. Örneğin, wsutil.exe normalleştirilmiş dize özgün dizeden farklı olduğunda bir W3 uyarısı oluşturur.
  • W4 uyarısı daha çok "bilgilendiren" uyarılara benzer ve WSDL'de belge özniteliğini yoksayma gibi durumlarda WsUtil sorunu W4'dür.
  • WX, derleyicinin uyarıyı hata olarak değerlendirdiğini gösterir. Örneğin, /W:1 /WX belirtilirse wsutil tüm W1 uyarıları için hata oluşturur.

/W:{N} hangi uyarı iletisi düzeyinin oluşturulacağını belirtin. /W:1, uyarı düzeyi 1 uyarılarının oluşturulması ve uyarı düzeyi 2 ve altındaki uyarıların maskelenmesi ve araç tarafından oluşturulmaması gerektiği anlamına gelir.

/fullname

Bu seçenek, WsUtil.exe olası ad çakışmasını önlemek için tanımlayıcılar için tam ad oluşturduğunu gösterir. Örneğin, example.xsd dosyasında:

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://Example.org" 
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" targetNamespace="http://Example.org" 
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
 <wsdl:types>
  <xs:element name="SimpleStruct">
   <xs:complexType>
    <xs:sequence>
     <xs:element name="a" type="xs:int" />
     <xs:element name="b" type="xs:int" />
    </xs:sequence>
   </xs:complexType>
  </xs:element>
 </wsdl:types>
</wsdl:definitions>

Varsayılan olarak WsUtil.exe oluşturur:

typedef struct SimpleStruct {
  int a;
  int b;
};

Ancak /fullname komut satırı seçeneği belirtilirse WsUtil.exe bunun yerine aşağıdaki yapı tanımını oluşturur:

typedef struct exmaple_xsd_SimpleStruct {
  int a;
  int b;
};

Küreselleşme

Araç dilden bağımsızdır ve farklı dillerde yerelleştirilebilir. Tüm hata iletileri /konsol çıkışı yerelleştirilebilir. Ancak komut satırı seçenekleri İngilizce olarak kalır.

Ortam Değişkeni

WsUtil.exe hiçbir ortam değişkeni kullanmaz.

Platformdan bağımsız

WsUtil.exe çıkış dosyaları platformdan bağımsızdır. Saptamada mimariye bağımlı kod oluşturulmaz; C derleyicisi, mimariye özgü herhangi bir işlemle ilgilenecektir. Saplama, desteklediğimiz tüm platformlarda kullanılabilir.

wsutil.exe çıkışının açıklaması WSDL destek ve Şema desteği bölümünde bulunabilir.