ile varolan bir nesneye Marshalling Var olan bir nesneye doğrudan XML atamak mümkün mü ve sadece belirli alanların güncelleştirilmesi mümkün mü?JAXB
Yalnızca istemcinin istediği belirli alanları değiştirmek istiyorum.
İşaretçiler var mı?
ile varolan bir nesneye Marshalling Var olan bir nesneye doğrudan XML atamak mümkün mü ve sadece belirli alanların güncelleştirilmesi mümkün mü?JAXB
Yalnızca istemcinin istediği belirli alanları değiştirmek istiyorum.
İşaretçiler var mı?
Çözüm şu şekildedir: Ek Açıklamalar ve Yansıma. ve hayır aynı kitaplık yok. Bu görevi yaparken çok araştırdım.
Tam olarak istediğiniz şeyi yaptım, bunun için kendi uygulamamı yaptım. Ama bu özeldir, bu yüzden paylaşamam.
Ancak, çözüm konusunda ipucu vermek için: Yeniden yüklenebilen alanları işaretlemek için ek açıklamaları kullandım ve sonra yalnızca yeniden yüklenebilen parçaları yeniden yüklemek için Yansıma'yı kullandım.
Adım 1: yeni unmarshalled nesneden yeni değerlerle eski nesne üzerinde setter yöntemleri Çağrı: Yine yeni bir Nesne
Adım 2 oluşturmak için xml unmarshal.
Bu yardımcı olur umarım.
Ama kaynakların kontrolünüzde olmadığını, yukarıdaki açıklamalardan görüyorum, sonra Yansıma, kamu belirleyici yöntemleri olması koşuluyla burada yardımcı olabilir yeniden yüklemeye çalıştığınız özelliklere. –
Kısa cevap no. Jaxb bağlamaları, genel bir çözüm düşüncesini özelleştirmek için kolay bir yol yoktur. Bkz. JAXB and class instantiation
Başka bir çözüm (belki daha kaba), işlemek ve sonra unshashall'ı yürütmek istediğiniz XML
bölümünü ayıklamak olacaktır. Bkz. Java How to extract a complete XML block
Yansıma ile yapılabilir. Türlerin ne kadar karmaşık olduğuna bağlı olarak, oldukça basit olabilir. Herhangi bir kütüphanenin önerilip önerilmediğini merak etmek. – jahroy
Gömülmemiş olması gereken nesneler benim kontrolümde değil. Diğer kullanıcı tanımlı sınıflar da dahil olmak üzere her türlü üye türünü barındırabilirler. Bu durumda yansıma kullanmak mümkün mü? Introspection kullanmalı mıyım? Aynı örnekler için kullanılabilir mi? –
Yansıma noktası budur: herhangi bir şey bilmeden herhangi bir Nesne kontrol edebilirsiniz. Bugün bir örnek üzerinde çalışamayacağım, ancak bazı kodları bu gece daha sonra gönderebilir miyim (belki 12 saat içinde). – jahroy