Web servisleri xsd wsdl

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
cenkay
Üye
Mesajlar: 5
Kayıt: 04 Nis 2006 10:51

Web servisleri xsd wsdl

Mesaj gönderen cenkay »

Arakadaşlar kolay gelsin benim sorum kısa olacak. Bir web service için client yazıyorum. Her zaman ki gibi wsdl dosyasını import ediyorum. Fakat bu sefer elimdeki wsdl dosyası xsd ile desteklenmiş. Merak ettiğim acaba wsdl import edilince xsd de import ediliyormu? sanki bana yapmadı gibi geldi. Aynı şekilde işlemi javada yapınca çünkü başka değişken ve fonklarda göründü. Şimdiden sağolun Selametle.
drersoy
Üye
Mesajlar: 11
Kayıt: 11 Şub 2005 02:02
Konum: Isparta

Mesaj gönderen drersoy »

Aynı soruyu bende soracaktım.

http://www.saglik.gov.tr/AHBS/dosyagost ... isleri.zip bu adresdeki test servisinde wsdl dosyalarını wsdl importer la import ediyorum fakat wsdl lerin yanında gelen xsd dosyalarını kullanamıyorum. XML Data Binding i denedim fakat olmadı. Bu konuda yardım rica edecektim.
drersoy
Üye
Mesajlar: 11
Kayıt: 11 Şub 2005 02:02
Konum: Isparta

Mesaj gönderen drersoy »

Daha basitce söyleleyim aşağıdaki xsd dosyasını xml data bindingle delphiye import edemiyorum. type="import:KOD" satırımda hata veriyor.

Kod: Tümünü seç

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Mesaj" targetNamespace="http://schemas.saglik.gov.tr/MVS/1.0.0.0/Mesaj.xsd" elementFormDefault="qualified" xmlns="http://schemas.saglik.gov.tr/MVS/1.0.0.0/Mesaj.xsd" xmlns:mstns="http://schemas.saglik.gov.tr/MVS/1.0.0.0/Mesaj.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:import="http://schemas.saglik.gov.tr/MVS/1.0.0.0/Veri.xsd" version="1.0.0.0">
  <xs:import id="Veri" namespace="http://schemas.saglik.gov.tr/MVS/1.0.0.0/Veri.xsd" schemaLocation="Veri.xsd" />
  <xs:element name="KonsultasyonKaydetIstek">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="KOD" type="import:KOD" minOccurs="1" maxOccurs="1" />
        <xs:element name="ACIKLAMA" type="xs:string" minOccurs="0" maxOccurs="1" />
        <xs:element name="ID" type="import:ID" minOccurs="1" maxOccurs="1" />
        <xs:element name="TARIH" type="import:DTE" minOccurs="1" maxOccurs="1" />
        <xs:element name="GIZLILIK_DERECESI" type="import:GIZLILIK" minOccurs="1" maxOccurs="1" />
        <xs:element name="BILESEN" type="import:BILESEN" minOccurs="0" maxOccurs="1" />
        <xs:element name="KULLANICI" type="import:KULLANICI" minOccurs="1" maxOccurs="1" />
        <xs:element name="HASTA" type="import:HASTAREF" minOccurs="1" maxOccurs="1" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  </xs:schema>
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

xsd leri ilgili lokasyonda ulamıyor olabilir çünkü dosyada geçen, http://schemas.saglik.gov.tr/MVS/1.0.0.0/Veri.xsd

url ine bağlantı kurulamıyor. Dosyaya, bunların disk üzerindeki yerlerini yazarak "c:\vsvs\vs.xsd" gibi deneyin.

Bu da olmazsa xsd içindeki veri tiplerini dosyaya doğrudan kendiniz yazın.

<xs:element name="KOD" type="import:KOD" minOccurs="1" maxOccurs="1" />

Bu satırda xsd lerde KOD tipi integer ise integer yazın.
drersoy
Üye
Mesajlar: 11
Kayıt: 11 Şub 2005 02:02
Konum: Isparta

Mesaj gönderen drersoy »

fduman yazdı:xsd leri ilgili lokasyonda ulamıyor olabilir çünkü dosyada geçen, http://schemas.saglik.gov.tr/MVS/1.0.0.0/Veri.xsd

url ine bağlantı kurulamıyor. Dosyaya, bunların disk üzerindeki yerlerini yazarak "c:\vsvs\vs.xsd" gibi deneyin.

Bu da olmazsa xsd içindeki veri tiplerini dosyaya doğrudan kendiniz yazın.

<xs:element name="KOD" type="import:KOD" minOccurs="1" maxOccurs="1" />

Bu satırda xsd lerde KOD tipi integer ise integer yazın.

Heryolu denedim ama yapamadım malesef. Dosyalar bunlar ilgilenen olursa.

http://212.174.135.181/Mvs/Mvs.WSDL
http://212.174.135.181/Mvs/Veri.xsd
http://212.174.135.181/Mvs/Mesaj.xsd

http://212.174.135.181/Mvs/mvs.asmx
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Merhaba,
Ben bunu yapmadım.Ama mantık olarak şöyle düşünürdüm. http://212.174.135.181/Mvs/Mvs.asmx yolunu değil http://212.174.135.181/Mvs/Mvs.WSDL import ederdim. Asmx sayfasında fonksiyonları incelerseniz , fonksiyonlar xsd dosyalarını kullanıyorlar. örneğin HastaKaydet veri.xsd sini kullanıyor.Cevap olarak mesaj.xsd kullanıyor.Siz işlemlerinizi bu dosyalarla yapacaksınız.Fonnksiyonlara yerini bu xsd dosyalarını göstereceksiniz. Mesajlarınız xml olarak cevirip sonrak xsd olarak göndereceksiniz.xsd alıp xml cevirip kullanacaksınız.
Bunu deneyip sonuçlarını bize iletirseniz seviniriz.

Kod: Tümünü seç

 program XML2XSD;
  {$APPTYPE CONSOLE}
  uses
    SysUtils, ActiveX,
    XMLDataToSchema, XMLSchema;
  var
    XML,XSD: String;
  //XMLSchemaDoc: IXMLSchemaDoc;
  begin
    if ParamCount = 0 then
    begin
      writeln('Usage: XML2XSD XML [XSD]')
    end
    else // convert
    try
      CoInitialize(nil);
      XML := ParamStr(1);
      XSD := ParamStr(2);
      if XSD = '' then
        XSD := ChangeFileExt(XML,'.xsd');
      LoadXmlSchema(XML).SaveToFile(XSD)
  //  XMLSchemaDoc := LoadXmlSchema(XML);
  //  XMLSchemaDoc.SaveToFile(XSD);
    finally
  //  CoUninitialize
    end
  end.

Kod: Tümünü seç

  var
    XML, XSDL: Variant;
  begin
    XSDL := CreateOLEObject('MSXML2.XMLSchemaCache.4.0');
    XSDL.validateOnLoad := True;
    XSDL.add('','MySchema.xsd'); // 1st argument is target namespace
    ShowMessage('Schema Loaded');
    XML := CreateOLEObject('MSXML2.DOMDocument.4.0');
    XML.validateOnParse := True;
    XML.resolveExternals := True;
    XML.schemas := XSDL;
    XML.load('file.xml');
    ShowMessage(XML.parseError.reason);
  end.
http://www.drbob42.net/examines/examin76.htm
Cevapla