Š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.

Napíšte komentár