<esystem version'''0.3'> <click> <session> <record> <field> <name>mezőnév</name> <value>érték</value> </field> <field> <name>mezőnév</name> <value>érték</value> </field> </record> </session> <data> <record> <field> <name>mezőnév</name> <value>érték</value> </field> <field> <name>numfield</name> <value>0</value> </field> </record> </data> </click> </esystem>
<esystem version'''0.3'> <frame> <framename>main</framename> <choice> <choicename>form</choicename> <click> <session> <record> <field> <name>mezőnév</name> <value>érték</value> </field> <field> <name>mezőnév</name> <value>érték</value> </field> </record> </session> <data> <record> <field> <name>mezőnév</name> <value>érték</value> </field> <field> <name>numfield</name> <value>0</value> <metadata> <type>text</type> <check> <regexp>^\d+$</regexp> <regexpmsg>Érvénytelen numerikus adat</regexpmsg> <req/> </check> <human> <label>Szám</label> <help>Numerikus mennyiség, kötelező</help> </human> </metadata> </field> </record> </data> </click> </choice> <info_message> <msg> informacios uzenetek <msg> </info_message> <result> <resultname>list</resultname> result specific content/elements... </result> </frame> </esystem>
Ez a gyökér element.
esystem |
click |
esystem |
frame |
Ebben egy virtuális kattintás szerepel.
click |
session |
Egy virtuális kattintás eredményeképpen (vissza)kapott adatok
frame | ||||
framename | info_message | result | choice | choice… |
A frame neve.
Egyúttal jelzi a korábban, ilyen nevű; frame-ben érkező válaszok esetleges lejártságát.
<framename>main</framename>
<info_message> <msg> <level>Info</level> <time>2009.10.29 15:24:02</time> <message>test xml</message> </msg> </info_message>
Az eredményoldal neve.
Ez egy lehetséges választás frame-ben.
choice | |
choicename | click |
Ebben az elementben vannak azok a paraméterek amik a kommunikációs session-re vonatkoznak (CGI session)
Ezeket az adatokat változtatás nélkül kell visszaküldeni az esystemnek, amennyiben az őt tartalmazó choice választása mellett dönt a kliens.
session |
record |
Ebben az elementben vannak azok a paraméterek, amik a konkrét sessionhöz tartozó adatokat írják le.
Ezeket az adatokat a metadata szerinti szabályok szerint módosítva lehet visszaküldeni az esystemnek
data |
record |
Ilyen elementben vannak az adatok összegyüjtve mezőnként
record |
field |
record | |
field | field… |
Ilyen elementben vannak a mezők leírva.
A mező neve. /^[a-zA-Z0-9_]+$/ regexpre kell illeszkednie
Azsession elementben szereplő mezőnevek nem egyezhetnek meg sem másiksession elemenetbeli sem bármely data elementbeli mezőnévvel
Adata elementben szereplő mezőnevek nem egyezhetnek meg ugyanabban adata elemenetben levő másik mezőnévvel és semmilyen mezőnévvel a session elementen belül
<name>beosztas</name>
A mező értéke.
Általánosan itt bármilyen string szerepelhet, további megkötésekkel kapcsolatban ametadata element ad információt
<value>titkárnő segédje</value>
A metadata tartalmazza az API-t felhasználó program (illetve programot kezelő ember) felé azokat az információkat, ami segíthetik a mezők értékének kitöltését.
Ez adja meg a mező tipusát. Néhány tipus a teljesség igénye nélkül
<type>text</type>
A metadata ezen részében gépileg is feldolgozható adatok vannak, amik segítik a gépi interface-t abban, hogy szintaktikusan helyes adatokat rakjanak a mezők értékébe.
Reguláris kifejezéssel történő adat megszorítás. A regexpet a perl regexpjének kell tekinteni.
Ha ez az element létezik, akkor a mező kitöltése kötelező, nem lehet üres
Ha ez az element létezik, akkor a mező értéke nem változtatható, azt módosítás nélkül kell visszaküldeni
Ha a regexp nem illeszkedik, akkor ez az üzenet a mérvadó
Emberi olvasatra szánt segédinformációk
Ebben a mező neve olvasható.
Ebben a mezőről egy rövid segítség olvasható
Kliens alkalmazások a szerver felé a az első Kliens üzenete a szerver felé
üzenetet küldenek
Válaszul a második féle Szerver üzenete a kliens felé
üzenetet kapnak.
szerver-szerver kommunikáció esetén előfordulhat hogy a két szerver egymás között az első
Kliens üzenete a szerver felé
módon küld egymásnak adatot, és a választ is ugyanebben
a formában várják. De a rendszer ekkor is felkészült a hibakezelésre.
Hibás esetben a rendszer automatikusan a második fajta Szerver üzenete a kliens felé
üzenetet küld.
Az evir_test.xsd segítségével lehetett validálni az eVIR-nek küldendő csomagot.
<?xml version="1.0" encoding="utf-8" ?> <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="esystem"> <xs:annotation> <xs:documentation> This is the root element of the communications between Esystem, and external programs. </xs:documentation> </xs:annotation> <xs:complexType> <xs:choice> <xs:element name="frame" type="frameType" /> <xs:element name="click" type="clickType" /> </xs:choice> </xs:complexType> </xs:element> <xs:complexType name="frameType"> <xs:sequence> <xs:element name="framename" type="xs:string" /> <xs:element name="choice" minOccurs="0" maxOccurs="unbounded" type="choiceType" /> <xs:element name="info_message" type="info_messageType" minOccurs="0" maxOccurs="1" /> <xs:element name="result" type="resultType" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:complexType> <xs:complexType name="choiceType"> <xs:sequence> <xs:element name="choicename" type="xs:string" /> <xs:element name="click" type="clickType" /> </xs:sequence> </xs:complexType> <xs:complexType name="clickType"> <xs:sequence> <xs:element name="session" type="sessionType" minOccurs="0" maxOccurs="1" /> <xs:element name="data" type="dataType" minOccurs="0" maxOccurs="1" /> <xs:element name="header" type="lineType" minOccurs="0" maxOccurs="1" /> <xs:element name="line" type="lineType" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="sessionType"> <xs:sequence> <xs:element name="record" type="recordType" /> </xs:sequence> </xs:complexType> <xs:complexType name="dataType"> <xs:sequence> <xs:element name="record" type="recordType" /> </xs:sequence> </xs:complexType> <xs:complexType name="lineType"> <xs:sequence> <xs:element name="record" type="recordType" /> </xs:sequence> </xs:complexType> <xs:complexType name="recordType"> <xs:sequence> <xs:element name="field" type="fieldType" minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="fieldType"> <xs:sequence> <xs:element name="name" type="xs:string" /> <xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="unbounded" /> <xs:element name="metadata" type="metadataType" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:complexType> <xs:complexType name="metadataType"> <xs:sequence> <xs:any processContents='skip' minOccurs="0" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <xs:complexType name="info_messageType"> <xs:sequence> <xs:element name="msg" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="level" type="xs:string" /> <xs:element name="time" type="xs:string" /> <xs:element name="message" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType name="resultType"> <xs:sequence> <xs:element name="resultname" type="xs:string" /> <xs:element name="msg"> <xs:complexType> <xs:sequence> <xs:element name="info" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:schema>