Co je to vícenásobný element?
Nejkratší definice vícenásobného elementu je:
Element u kterého existuje hodnota s pozicí > 1.
Delší definice vícenásobného elementu je:
Element, který má u jednoho produktu více než jednu hodnotu a alespoň 2 z těchto hodnot sdílejí stejnou hodnotu obalovacího elementu v případě, že se jedná o zanořený element.
To se ovšem dost těžko představuje, pojďme si to tedy vysvětlit na příkladech.
Příklad 1
<IMAGE1>url1</IMAGE1>
<IMAGE2>url2</IMAGE2>
Toto není vícenásobný element. Oba elementy mají právě jednu hodnotu, obě s pozicí 1. Cesta k hodnotě url1
je IMAGE1 { @@POSITION = 1 }
, pro hodnotu url2
je IMAGE2 { @@POSITION = 1 }
.
Příklad 2
<IMAGES>
<IMAGE>url1</IMAGE>
<IMAGE>url2</IMAGE>
</IMAGES>
V tomto případě IMAGES
není vícenásobný element, ale IMAGE
je vícenásobný element. Protože platí, že u elementu IMAGE
existuje hodnota s pozicí > 1 (IMAGES | IMAGE { @@POSITION = 2}
), resp. element IMAGE
má u jednoho produktu více než jednu hodnotu (url1
, url2
) a obě dvě hodnoty sdílejí stejnou hodnotu obalovacího elementu (IMAGES
).
Příklad 3
<g:product_detail>
<g:attribute_name>Materiál</g:attribute_name>
<g:attribute_value>Porcelán</g:attribute_value>
</g:product_detail>
<g:product_detail>
<g:attribute_name>Objem</g:attribute_name>
<g:attribute_value>460 ml</g:attribute_value>
</g:product_detail>
<g:product_detail>
<g:attribute_name>Barva</g:attribute_name>
<g:attribute_value>Černá</g:attribute_value>
</g:product_detail>
V tomto příkladu z Google formátu je g:product_detail
vícenásobný element, ale g:attribute_name
ani g:attribute_value
nejsou vícenásobný element. Proč?
Pro g:product_detail
platí, že existuje hodnota s pozicí 1, 2 a 3. (např. g:product_detail { @@POSITION = 2 }
). Hodnotou jsou sice zanořené elementy, ale to je v pořádku.
Pro g:attribute_name
ani g:attribute_value
podmínky z definice neplatí.
Pro hodnotu Materiál
je cesta (element-path) g:product_detail { @@POSITION = 1 } | g:attribute_name { @@POSITION = 1 }
.
Pro hodnotu Objem
je cesta (element-path) g:product_detail { @@POSITION = 2 } | g:attribute_name { @@POSITION =1}
.
Příklad 4
<RELATED_FILE>
<TEXT>...</TEXT>
</RELATED_FILE>
<RELATED_FILE>
<TEXT>...</TEXT>
</RELATED_FILE>
Je to podobný příklad jako předchozí. Element RELATED_FILE
je vícenásobný element, element TEXT
není vícenásobný element.