Rekordkeresési lekérdezés formátuma
A PeerGroupSearchRecords függvény hívásához egy XML-lekérdezési sztringparaméter szükséges, amely a keresés alapfeltételeinek meghatározására szolgál. XML-sztringet a következő sémával alakíthat ki:
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="https://www.w3.org/2001/XMLSchema">
<xs:simpleType name="alphanumType">
<xs:restriction base="xs:string">
<xs:pattern value="\c+"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="operatorType">
<xs:choice maxOccurs="unbounded">
<xs:element ref="and" />
<xs:element ref="or" />
<xs:element ref="clause" />
</xs:choice>
</xs:complexType>
<xs:element name="and" type="operatorType"/>
<xs:element name="or" type="operatorType"/>
<xs:element name="clause">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="attrib" type="alphanumType" />
<xs:attribute name="type">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="string"/>
<xs:enumeration value="date"/>
<xs:enumeration value="int"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="compare" default="equal">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="equal"/>
<xs:enumeration value="greater"/>
<xs:enumeration value="less"/>
<xs:enumeration value="notequal"/>
<xs:enumeration value="greaterorequal"/>
<xs:enumeration value="lessorequal"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="peersearch">
<xs:complexType>
<xs:choice>
<xs:element ref="clause" />
<xs:element ref="and" />
<xs:element ref="or" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
Rekordkereséshez használandó elemek
A rekordkeresés elsődleges eleme társkeresési, amely a társított séma egységes erőforrás-azonosítóját (URI) tartalmazza az xmlns attribútumban. Ha társkereső használ gyermekelemként, használhatja és, záradékot, és vagy gyermekelemként.
és – A és elem logikai AND műveletet hajt végre a nyitó és a záró címkék között található egy vagy több záradékon. Más , és vagy címkék lehetnek gyermekek, és a gyermek záradékok rekurzív eredményei szerepelnek a műveletben.
Ha például olyan rekordot szeretne beszerezni, amely James Peters nevével egyenlő nevet tartalmaz, és egy 2003.02.28-nál nagyobb utolsó frissítést, vagy egy 2003.01.31-nél kisebb létrehozási dátumot, használja a következő XML-lekérdezési sztringet:
<?xml version="1.0" encoding="utf-8" ?> <peersearch xmlns:xs="https://www.w3.org/2001/XMLSchema"> <and> <clause attrib="peercreatorid" type="string" compare="equal">James Peters</clause> <or> <clause attrib="peerlastmodificationtime" type="date" compare="greater">2003-01-31</clause> <clause attrib="peercreationtime" type="date" compare="less">2003-02-328</clause> </or> </and> </peersearch>
záradék – A záradék elem egy alapvető összehasonlító szabályt határoz meg, amely egy adott rekordattribútum értékét hasonlítja össze a nyitó és a záró címkék között található értékkel. A típus és összehasonlítani attribútumokat kell megadni, összehasonlítani az összehasonlító műveletet kell végrehajtani. Az XML-lekérdezési sztringben például egy olyan egyszerű keresésnek kell lennie, amely azt jelzi, hogy az összes egyező rekordnak társkonfigurált-értékkel kell rendelkeznie, amely james peters-sel egyenlő:
<?xml version="1.0" encoding="utf-8" ?> <peersearch xmlns:xs="https://www.w3.org/2001/XMLSchema"> <clause attrib="peercreatorid" type="string" compare="equal">James Peters</clause> </peersearch>
Az általános típusú attribútumok közé tartozik int, sztringés dátum. A dátum attribútum lehet az https://www.w3.org/TR/NOTE-datetime.
Az összehasonlítása attribútum értéke egyenlő, jegyzetelt, kisebb, nagyobb, alacsonyabb, és magasabb.
- vagy – A vagy elem logikai VAGY műveletet hajt végre a nyitó és a záró címkék között található egy vagy több záradékon. Más vagy és és elemek lehetnek gyermekek, és a gyermek záradékok rekurzív eredményei szerepelnek a műveletben. Ha például olyan rekordot szeretne beszerezni, amely James Peters nevével megegyező nevet tartalmaz, vagy egy utolsó frissítést, amely 2003.01.31. és 2003.02.28. között van, használja a következő XML-lekérdezési sztringet:
<?xml version="1.0" encoding="utf-8" ?>
<peersearch xmlns:xs="https://www.w3.org/2001/XMLSchema">
<or>
<clause attrib="peercreatorid" type="string" compare="equal">James Peters</clause>
<and>
<clause attrib="peerlastmodificationtime" type="date" compare="greater">2003-01-31</clause>
<clause attrib="peerlastmodificationtime" type="date" compare="less">2003-02-28</clause>
</and>
</or>
</peersearch>
További információ a rekordkeresésről
Az társviszony-létesítés utáni csomópontok első szintje csak egy elemet tartalmazhat. Ennek az elemnek a későbbi gyermekei azonban számos elemet tartalmazhatnak ugyanazon a szinten.
A következő keresési lekérdezés helytelen:
<?xml version="1.0" encoding="utf-8" ?>
<peersearch xmlns:xs="https://www.w3.org/2001/XMLSchema">
<clause attrib="peercreatorid" type="string" compare="equal">James Peters</clause>
<and>
<clause attrib="peerlastmodificationtime" type="date" compare="greater">2003-01-31</clause>
<clause attrib="peerlastmodificationtime" type="date" compare="less">2003-02-28</clause>
</and>
</peersearch>
A lekérdezés meghiúsul, mert a rendszer két értéket ad vissza az egyezéshez anélkül, hogy egy igaz/hamis értékre oldódjon fel, ami azt jelenti, hogy az egyik záradék a James Petersnek megfelelő rekord nevének lekérdezése, az AND művelet pedig a két összetevő záradékának felel meg. Az eredmény két egymásnak ellentmondó logikai igaz/hamis érték.
A James Peters nevével megegyező nevet tartalmazó összes rekord, valamint a 2003.01.31. és 2003.02.28. közötti utolsó frissítés beszerzéséhez helyezze a záradékot, és címkéket, amelyek azonos szinten vannak a és a címkék megnyitása és bezárása között. Az alábbi példa a sikeres lekérdezést mutatja be:
<?xml version="1.0" encoding="utf-8" ?>
<peersearch xmlns:xs="https://www.w3.org/2001/XMLSchema">
<and>
<clause attrib="peercreatorid" type="string" compare="equal">James Peters</clause>
<and>
<clause attrib="peerlastmodificationtime" type="date" compare="greater">2003-01-31</clause>
<clause attrib="peerlastmodificationtime" type="date" compare="less">2003-02-28</clause>
</and>
</and>
</peersearch>
Az alábbi lista a sikeres lekérdezés írásához szükséges egyéb konkrét információkat azonosítja:
- A , és vagy címkék nem helyezhetők el a nyitó és záró záradék címkék között, mert ebben a konfigurációban azokat az érték részeként értelmezi, amely hibát vagy sikertelen egyezést eredményez.
- Minden egyes - és- és - vagy nyitó- és zárócímkének tartalmaznia kell legalább egy vagy több gyermekcsomópontot.
- Ebben a sémában nem engedélyezett nulla elemkészlet.
Rekordattribútumok
A Rekordattribútum sémahasználatával a felhasználó olyan rekordattrib-attribútumokat hozhat létre, amelyeket az attrib XML-attribútum egy záradékelemben megad. Az új rekord attribútumai a pszAttributesPEER_RECORD tagját egy XML-sztringre állítva a sémában megadott formátummal.
A társinfrastruktúra a következő attribútumneveket foglalja le:
- peerlastmodifiedby
- társkonfigurálható
- peerlastmodificationtime
- peerrecordid
- peerrecordtype
- peercreationtime
- peerlastmodificationtime
Speciális karakterek
Bizonyos karakterek használhatók az egyező minták kifejezésére, vagy más speciális karakterek kivédésére. Ezeket a karaktereket az alábbi táblázat ismerteti.
Karakterminta | Leírás |
---|---|
* | A helyettesítő karakter. Ha ez a karakter egy záradékértékben jelenik meg, az bármilyen érték 0-n karakterével egyezik meg, beleértve a szóközt és a nonalphanumerikus karaktereket is. Például: "<záradék attrib="peercreatorid" type="string" compare="equal">James P*</clause>" Ez a záradék az összes társkonfigurálással létrehozott értéket egy "James" utónévvel és egy "P" kezdetű vezetéknévvel egyezik meg. |
\* | Egy szökött csillag. Ez a sorozat egy csillag karakterrel egyezik. |
? | Az egy karakterből álló helyettesítő karakter. Ha ez a karakter egy záradékértékben jelenik meg, az egyetlen karakternek felel meg, beleértve a szóközt és a nemnalfanumerikus karaktereket is. Például: "<záradék attrib="filename" type="string" compare="equal">data-0?.xml</záradék>" Ez a záradék megegyezik fájlnév olyan értékekkel, mint a "data-01.xml" és a "data-0B.xml". |
\? | Egy szökött kérdőjel. Ez a sorozat egy kérdőjel karakterrel egyezik. |
\\ | Egy szökött fordított perjel. Ez a sorozat egyetlen fordított perjel karakterrel egyezik. |
Ha a karaktersorozat érvénytelen, a PeerGroupSearchRecords függvény a E_INVALIDARGhibát adja vissza. Érvénytelen sorozat minden olyan sorozat, amely "\" (fordított perjel) karaktert tartalmaz, és nem követi azonnal a "*" (csillag) karaktert, a "?" karaktert. (kérdőjel) vagy egy másik "\" (fordított perjel) karakter.