Nasıl doğru ActionScript 3 SOAP web servisine dize "Boş" (bir çalışanın'in uygun soyadı) geçtim mi?...
Nasıl doğru ActionScript 3 SOAP web servisine dize "Boş" (bir çalışanın'in uygun soyadı) geçtim mi?
Boş olan bir çalışanımız var. Çalışan arama uygulaması son ismi arama terimi olarak kullanıldıĞında öldürdü oldukça sık olur. Hata (teşekkürler Fiddler!) aldı :
Parametre türü string.
Hata ColdFusion sayfasındaki bir nesne olarak Java eklentisi ararken oluşmaz unutmayın.
İlk başta bu null "null" zorla almak olduğu zorlama bir hata olduğunu düşündüm ve "null" == null bir test geçiyordu. Değil.Yakın, ama çok yanılmışım. Pardon, özür dilerim!
Beri fiddling on wonderfl.net mx.rpc.xml.* kod ile izleme yaptım. Satırında XMLEncoder (3.5 kaynağı), setValue XMLEncoding tüm bu 1795 aşağı kaynar
temelde aynı olan:
Bu kod, orijinal kemanımı göre, boş bir XML öğesi döndürür. Ama neden?
Hata raporu yorumcu Justin Mclean FLEX-33664 aşağıdakileri göre suçlu (bunu doğrulamak ** 20 benim son iki testleri bakınız):
currentChild.appendChild "null" dize geçirildiğinde ilk metin* *17, null değişmez karşı unsur bu testler ile XML kök öğesi dönüştürür. Bu zayıf bir eşitlik testi, ya da XML içeren null zorla boş türü veya null türü zorlanmış bir kök xml öğesi içeren bir dize "null", ve Testi geçer nerede muhtemelen gerekir başarısız. Bir düzeltme her zaman "nullness." XML " (ya da bir şey, gerçekten) kontrol ederken strict equality testleri kullanmak olabilir
Aklıma gelen tek mantıklı çözüm yöntemine giden her lanet sürümünde bu hata sabitleme kısa, "boş" ve . alanlar için test etmektir ^strong>CDATA values olarak kaçmalarına.
CDATA değerler yoksa kodlama/kod çözme sorunlara neden olabilecek bütün bir metin değeri değişmek için en uygun yoldur.Hex kodlama, örneğin, tek tek karakterler içindir. CDATA değerleri bir elementin tüm metin kaçan olduğunda tercih edilir. Bunun en büyük nedeni insan okunabilirlik sağlar.
Form tabanlı kimlik ...