Co je to vícenásobný element?

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. Element-path pro hodnotu 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 element-path g:product_detail { @@POSITION = 1 } | g:attribute_name { @@POSITION = 1 }.
Pro hodnotu Objem je 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.

1 Like