ixmldomschemacollection add edilecek xsd

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aegean
Üye
Mesajlar: 41
Kayıt: 24 Tem 2019 09:32

ixmldomschemacollection add edilecek xsd

Mesaj gönderen aegean »

Tüm arkadaş ve Ustalarıma merhaba.
Yine ilginc bir sorun ile karsı karsıyayım ve cözüm bulamadım
xmldomschemacollection da collection a add edilecek xsd dosyasının disk üzerinde kayıtlı bir dosya olarak veriyordum. örnek olarak

XmlDoc := codomdocument60.create;
Xmldoc.async := False;
Xmldoc.loadXML(xmlfilestring);

Schemadoc := codomdocument60.create;
Schemadoc.async := False;
Schemadoc.loadXML(xsdfilestring);

SchemaCache := coxmlschemacache60.create;
Schemacache.add(fxsdnamespace,'c:\temp\xsddosyası.xsd');

Xmldoc.schemas := SchemaCache;

Error2 := xmldoc.parseError;
Error := xmldoc.validate;

seklinde calısıyor.

ama ben xsd dosyasını exe ile tasımak istemedigim için tüm xsd yi bir widestring içine yazarak programa gömdüm
yukarıda da goruldugu gibi Schemadoc.loadXML(xsdfilestring) seklinde bu değişkeni doc a girebilmeme ragmen

Ama is Schemacache.add(fxsdnamespace,'c:\temp\xsddosyası.xsd') içinde dosyanın yerine widestring olarak hafızadaki
xsd yi gostermeye kalkınca kabul etmiyor hata veriyor.
Normal sartlarda orada olevariant olması gerek, ama ben widestring bir değişkeni olevariant a cevirmeyi basaramadım.
Yapmak istediğim gelen xml dosyalarını diskte keyıtlı xsd dosyası yerine exe içine gomecegim xsd ile validate etmek. Bunu yapmanın yolu varmı?
Tüm arkadaşlarıma İyi günler iyi calışmalar dilerim.
ertank
Kıdemli Üye
Mesajlar: 1657
Kayıt: 12 Eyl 2015 12:45

Re: ixmldomschemacollection add edilecek xsd

Mesaj gönderen ertank »

Merhaba,

codomcodument60.Add overload olarak string üzerinden okuma desteklemiyor olabilir.

Elinizdeki widestring veriyi geçici dosya içine yazıp oradan okuyarak kullanabilirsiniz. İşiniz bittiğinde de geçici dosyayı silebilirsiniz.
aegean
Üye
Mesajlar: 41
Kayıt: 24 Tem 2019 09:32

Re: ixmldomschemacollection add edilecek xsd

Mesaj gönderen aegean »

Oneriniz için cok tesekkur ederim hocam,
ilginc yanı denedim aslinda, temp içine yazıp sonra dosya yol ve ismini değişken ile verdim. Kontrol için yazılan dosya ile orjinal dosyayı karsılastırdım, hic bir hata yok. Ama olevariant error devam ediyor. Bana önce anlamsız gibi gelmişti, fakat bunu o nesneyi create ederken değisken olarak dosya yol ve ismini verirsem calışıyor. Fakat class içinde dosyaya yazıp sonra dosya yol ve ismini string değişkene atayıp onu verirsem calısmıyor, hatta string değikeni yazdıgım gibi olevariant a donusturmeyi dahi denedim olmadı. Sanırım ole değişkenin özellikleri ile ilgili bir olay. Bu olay da bana bu denizde daha ögrenmem gereken cooook sey oldugunu anlatıyor. Sizin değerli zamanınızı çalmak istemem ama eğer zamanınız uygun olursa konu hakkındaki fikriniz benim için çok değerli olur.
Saygılarımla iyi günler iyi calışmalar dilerim.
Cevapla