Web servisleri xsd wsdl
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Web servisleri xsd wsdl
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.
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.
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.
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>
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.
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.
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
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.
http://www.drbob42.net/examines/examin76.htm
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.