2014-07-10 38 views
12

ABAP'ta XSD kullanarak XML belgesinin doğrulanmasını yapmak için standart bir yol var mı? Bildiğim kadarıyla, XI/PI yeteneklerini kullanan bir yaklaşım var, fakat bunlar bizim sistemimizde mevcut değil.XML'yi XSD'ye karşı salt ABAP içinde doğrulayın

Ayrıca bir geçici çözüm de kullanabiliriz: tek başına Java RFC veya bir web hizmetini başka bir dilde yapın, bu da XML ve XSD'yi SAP'den alır, doğrulama ve geri dönüşü SAP'ye geri döndürür; Ancak bu daha karmaşık ve daha az güvenilir bir çözüm olabilir.

Benzer bir görevle tanıştınız ve nasıl çözdünüz? Herhangi bir öneri, yorum ve açıklama açıklamaları çok takdir edilir!

+4

Bildiğim kadarıyla SAP standardında teslim edilen bir sınıfın işlev modülü/yöntemi yoktur. Ayrıca bir süre önce aradım ve hiçbir şey bulamadım. Bunu yapmak için harici bir servis çağırma fikrine sıkışmışsınız sanırım. Xerces kullanmak ve/veya DTD XSD dönüştürmek için uygulama sunucusu üzerinde java kullanarak – Jagger

+0

Olası bir "çözüm": http://scn.sap.com/thread/3535431 – hotzen

cevap

0

Örtmek herkes bir XSD şeması karşı bir XML belgesi doğrulamak için ABAP hiçbir yerli yolu yoktur, Bildiğim kadarıyla bugüne kadar internet etrafında ararken bulmak mümkün oldum olarak ... tarafından

gelir. Sahip olduğunuz en iyi seçenek bir DTD'dir.

Kod örneklerim tamamlanmadı, bu nedenle kopyalama ve yapıştırma çalışmaz, ancak yaptığım şey, XSD şemasını uygulama sunucusunda ve XML dosyasında geçici dizinde kaydetmekti. Ben java programını çağırıp XML ve XSD dosyasını argüman olarak iletiyorum. İşte

enter image description here

ABAP itibaren java kodu

Java XSD Validator

, sen bu komutu arayıp OPEN DATASET ile kaydettiğiniz dosyayı geçebilir. İşte bir kod örneği olduğunu: Çalışır

ABAP Validator and OS Command

ama oldukça yavaş. Canlı bir sunucuya kıyasla oldukça mütevazı bir donanıma sahip bir bilgisayardayım, ancak küçük bir XSD ve küçük XML ile kontrol başına yaklaşık 350 ms sürüyor.

Hizmet olarak çalıştığından emin değilim veya RFC performansı artıracağından emin değilsiniz, ancak isterseniz buna değer.

0

Bu raporu ABAP'ta XSD ile ilgili doğrulama için kullanın: RPCXMLK0_VALIDATE
Programatik olarak da başlatılabilir.

+0

Bu temel yürütmek için SAP-GUI kullanır Bir Windows İstemcisinde, kaynaktan alabildiğim kadarıyla doğrulama. Bir Windows Server'da değilse bir arka plan işi için bir çözüm olmaz. – nxthor

+0

OP sadece arka planda veya GUI olmadan doğrulama çalışan hiçbir açık şartını vardı, bu yüzden bu da geçerli bir seçenektir. – Suncatcher

İlgili konular