Špecifikácia XML filtra

Špecifikácia XML filtra

Špecifikácia XML filtra vyhovuje štruktúre XML súboru, pričom:

  • môže obsahovať voliteľnú sekciu <FILTER_OPTIONS> nastavujúcu chovanie filtra

  • musí obsahovať rezervovanú sekciu <CFGRECORDS> nastavujúcu atribúty filtra

  • nesmie obsahovať inú rezervovanú sekciu ako rezervovanú sekciu <CFGRECORDS>

Vlastnosti voliteľnej sekcie <FILTER_OPTIONS>

  • parameter <Operator> má povolenú hodnotu AND alebo OR

  • hodnota AND určuje, že objekt vyhovuje filtru len za predpokladu, že mu vyhovujú všetky zadané atribúty filtra

  • hodnota OR určuje, že objekt vyhovuje filtru za predpokladu, že mu vyhovuje aspoň jeden zadaný atribút filtra

  • výnimkou je atribút pre typ objektu (element <Typ>), ktorý filtruje objekty vždy

  • ak táto voliteľná sekcia nie je súčasťou filtra, alebo neobsahuje parameter <Operator>, default je AND verzia

Vlastnosti rezervovanej sekcie <CFGRECORDS>

  • obsahuje atribúty filtra, pomocou ktorých sa určuje, či objekt vyhovuje alebo nevyhovuje filtru

  • základné atribúty filtra sú uvedené v štruktúre <TObjItemData>

  • atribút pre typ objektu (element <Typ>) určuje, ktoré typy objektov sa filtrujú

  • doplňujúce atribúty filtra, uvedené v príslušnej štruktúre, závisia od typu objektov, ktoré sa filtrujú

  • doplňujúce atribúty filtra z dvoch rôznych typov objektov sa nemôžu kombinovať, vtedy sa všetky objekty automaticky považujú za nevyhovujúce

  • štruktúry nesmú obsahovať atribúty s reťazovými hodnotami typu SDT_EXPRESSION alebo SDT_RAW_DATA

Príklad XML súboru reprezentujúceho XML filter

<?xml version="1.0" encoding="windows-1250"?> <ROOT> <FILTER_OPTIONS> <Operator>AND</Operator> </FILTER_OPTIONS> <CFGRECORDS> <TObjItemData> <Name>A*</Name> <Typ>ARCH_VAL</Typ> <VHL>100</VHL> </TObjItemData> <TArchivData_Full> <TArchivData> <Periode>60</Periode> <Offset>0</Offset> </TArchivData> </TArchivData_Full> </CFGRECORDS> </ROOT>

Filtru vyhovuje objekt typu ARCH_VAL, ktorý spĺňa aspoň jednu z uvedených podmienok: meno vyhovuje maske A*, atribút VHL je rovný 100, atribút Periode je rovný nule alebo atribút Offset je rovný nule. V prípade, že by nebol zadaný operátor OR, alebo by bol zadaný operátor AND, vzťah medzi atribútmi filtra by sa zmenil na vzťah AND.