2009-08-27 15 views
6

Önekler ve varsayılan ad alanı içeren ad alanı kullanan bir kaynak xml belgesine sahip olun. Bir XSLT belgesini kullanarak dönüştürdüğümde, sonuçta çevrilen xml belgesi yanlıştır, başka bir deyişle, kaynak xml belgesindeki öğe verileri eksik.Kaynak xml belgesinin varsayılan ad alanını kullandığı XSLT ile sorun

Kaynak xml belgesindeki "varsayılan ad alanını" kaldırdığımda, dönüşüm beklendiği gibi çalışır.

Soru: Varsayılan ad alanını kaynak xml belgesinden düzenleme gereği duymadan sorunu çözmenin bir yolu var mı? Yani, çözümü XSLT belgesine ekleyin.

XML Belge:

<MyElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
      xmlns="http://www.zolldata.com/UDX"> 

sorun varsayılan ad alanı sizin seçiciler yaparsanız xmlns = "http://www.zolldata.com/UDX"

cevap

4

XSLT belgede aynı varsayılan ad belirtin nerede önek kullanmayın veya XSLT'deki tüm seçiciler için önek kullanın, ancak bunları XML belgenizin varsayılan ad alanına bağlamayı unutmayın.

+1

XSLT belgesine varsayılan ad alanı olan xmlns = "http://www.zolldata.com/UDX" adresini eklerim. Nasıl bağlarım? ne bağlarım? – Larry

+0

İlk önerinizi denedim ve işe yaramadı. XSLT'nin çalışması için varsayılan ad alanının XML'den kaldırılması ZORUNLU (veya düzgün bir şekilde önceden eklenmelidir). Larry gibi ne demek istediğini bilmiyorum "... onları varsayılan ad alanına bağlamayı unutma". Bunun varsayımını, "xmlns: z = ..." ile gerçekten öneklemek anlamına geldiğimi farzediyorum, bu sadece geçerli bir ad alanı kullanan mevcut bir sistemle uğraşmak yerine xml yanıtını değiştirmek üzereyseniz çalışır. – Justin