Aký je rozdiel medzi existujúcou a novou verziou Mergada
Mergado prechádza z tabuľkovej štruktúry na stromovú štruktúru. Naša pôvodná verzia prístupu k práci s XML nás v niekoľkých smeroch limitovala. Či už v ukladaní dát, práci so zanorenými a viacnásobnými elementmi, spracovávaní atribútov či načítaní formátov.
Toto všetko nás viedlo k myšlienke opustiť tento spôsob spracovania a využiť nástroje, ktoré boli vytvorené priamo na prácu s XML.
Na čo majú zmeny vplyv
Zmena spracovania má vplyv na celý proces pregenerovania:
- import
- aplikovanie pravidiel
- export
Čo sa zmení
1. Elementy
- pre každý element môže byť ľubovoľné množstvo hodnôt (aktuálne iba jedna hodnota)
- rozlišujeme veľkosti v názvoch elementu (aktuálna verzia to nevie)
- ukladáme hodnoty “prázdnych” elementov
- rozlišujeme hodnoty elementov rodič -> potomok (aktuálna verzia to nevie)
- nahráme produkt s ľubovoľnou štruktúrou
- umožňujeme novo pracovať s atribútmi (<CATEGORY lang=“sk”>; lang je atribút)
- možnosť zoradiť elementy podľa vlastných potrieb alebo požiadaviek formátu
Práca s elementmi
Pre jednoduché elementy sa nič nemení. Na prácu so zložitejšími elementmi sme vyvinuli vlastný jazyk, ktorému hovoríme cesta k elementu (Element-Path).
Príklady na konkrétnom produkte:
Rôzne cesty k elementu (element-path):
NAME: vrátí hodnotu z řádku ‘2.‘
@id: vrátí hodnotu z řádku ‘1.‘
IMAGE: vrátí hodnoty z řádků ‘3.‘, ‘4.‘, ‘5.‘
IMAGE { @@POSITION = 2 }: vrátí hodnotu z řádku ‘4.‘
IMAGE { @@POSITION = 4 }: nevrátí nic
DESCRIPTION { @lang = “cz” }: vrátí hodnotu z řádku ‘8.‘
DESCRIPTION | @lang: vrátí hodnoty z řádků ‘7.‘, ‘10.‘
PARAM { NAME = “Barva” } | VAL: vrátí hodnotu z řádku ‘15.‘
PARAM { @@POSITION = 2 or NAME = “Barva” } | VAL: vrátí hodnoty z řádků ‘15.‘, ‘19.‘
PARAM { VAL = “100% bavlna” } | VAL: vrátí hodnotu z řádku ‘19.‘
PARAM | NAME: vrátí hodnoty z řádků ‘14.‘, ‘18.‘
PARAM | NAME { @@POSITION = 1 }: vrátí hodnoty z řádků ‘14.‘, ‘18.‘
PARAM | NAME { @@POSITION = 2 }: nevrátí nic