SORU
21 NİSAN 2009, Salı


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
21 NİSAN 2009, Salı


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:

  1. Öğ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.
  2. 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.
  3. 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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • The Verge

    The Verge

    8 AĞUSTOS 2006
  • FF Radioo

    FF Radioo

    14 ŞUBAT 2007