Boş XML öğeleri temsil etmek için doğru yolu nedir?
null
elementler çeşitli şekillerde temsil gördüm:
Öğe xsi:nil="true"
ile mevcuttur:
<book> <title>Beowulf</title> <author xsi:nil="true"/> </book>
Öğe var, ama boş bir öğe olarak gösterilirberi yanlış olduğunu düşündüğüm ('boş' ve null
anlamsal farklıdır):
<book> <title>Beowulf</title> <author/> </book> <!-- or: --> <book> <title>Beowulf</title> <author></author> </book>
Eleman şu anda tüm iade biçimlendirme değildir:
<book> <title>Beowulf</title> </book>
Öğe <null/>
alt öğe vardır(13 ** aşağıda):
<book> <title>Beowulf</title> <author><null/></author> </book>
Doğru ya da kurallı bir şekilde null
böyle bir değeri temsil etmek için var mı? Yukarıdaki örnekler daha ek bir yolu var mı?
Örnekler için XML yukarıda yapmacık, o yüzden çok kurcalama. :)
CEVAP
xsi:nil değeri gibi temsil etmek için doğru yoldur: DOM Seviye 2 çağrı getElementValue zaman verilir, NULL değeri döndürülür. xsi:nil de eğer bu elementler içerik türü normalde boş öğeler izin değilse bile içerik ile geçerli bir öğe belirtmek için kullanılır.
Eğer boş bir etiket kullanılır, getElementValue() boş bir dize döndürür ("") Eğer etiketi belirtilmezse, o zaman hiçbir yazar etiketi var olsa bile. Bu anlamsal olarak ayarlamak daha farklı olabilir '(Ex.' nil Ayar" nil için bu kitabı atlama dizi o dizi geçerli öğe için uygulanamaz bir unsurdur demek varken hiç bir dizi aittir.) olabilir "Serisi
Kimden: The W3C
XML Şema: bir Yapıları tanıtır bu sinyal mekanizması elemanı ·geçerli·olarak kabul edilmeli. bir rağmen hiçbir içerik varsa, gerektirmeyen türü ya da içeriği hatta mutlaka boş içeriğe izin ver. Bir öğe ·geçerli· olmadan olabilir eğer içerik özniteliği vardır xsi:değeri true olan nil. Bir eleman çok etiketli boş, ama olmalı eğer müsaade ederseniz nitelikler taşıyabilir ilgili karmaşık tür.
Bir açıklama:
- Öğe tamamen - Bu seri bu kitap için geçerli olmadığını belirtmek için istediğiniz zaman yapılabilir kaldırma ya da bu kitap bir serinin parçası değil. Xsl dönüşümleri bu dava (veya başka bir olay tabanlı işlemciler) bu kitap ile eşleşen bir şablon var:dizi hiç aramadı. Eğer xsl tablo satırı içine kitap elemanı (xhtml:tr) döner örneğin, tablo hücreleri sayısı yanlış (xhtml:td) bu yöntemi kullanarak alabilirsiniz.
- Eleman - Bu serinin bulunduğunu gösteriyor olabilir boş bırakarak "", ya da bilinmeyen, ya da bu kitap bir serinin parçası değil. Herhangi bir kitap eşleşen dönüşüm (veya diğer evernt tabanlı ayrıştırıcı) xsl:dizi adı verilecek. Akım değeri() olacaktır". Xhtml aynı sayıda alırsınız:td etiketleri sonraki gibi, bu yöntemi kullanarak bir tarif.
- Xsi kullanarak:="" - Bu kitap anlamına gelir:dizi unsur değil, sadece boş BOŞ. gerçek nil Senin xsl şablonu eşleşen bir kitap:serisi olan dönüşüm (veya olay tabanlı diğer ayrıştırıcı) denir. Akım değeri (boş) (boş dize). Bu yöntemi ve (2) arasındaki temel fark, kitap, şema türü:dizi boş dize izin gerekmez ("") geçerli bir değer olarak. Bu gerçek anlamda bir dizi unsur, ama bir dil öğesi olarak tanımlanır numaralandırılmış türdeki şemada, xsi:nil="true" verir elemanı için veri yok. Başka bir örnek, bir tür ondalık unsurları olacaktır. Eğer onları sadece "" ve bir ondalık veya nillable. bir ondalık kullanım sağlayan numaralandırılmış bir dize Birliği edebilirsiniz boş olmasını istiyorsanız
Objective-C boş bir dize kontrol etmek...
(-1)^n elde etmek için doğru yolu nedi...
Tek örnek bir uygulama oluşturmak için...
Bir ağaca doğru düz bir masa ayrıştırm...
Bir std başlatmak için en kolay yolu n...