– doplněna validační metoda “xdType”, která zkontroluje, zda příslušná hodnota je validní specifikace některého z předdeklarovaných typů X-definic. Jako výsledek je uložen do parsovaného výsledku objekt, odpovídajicí příslušnému parseru.
– do cz.syntea.xdef.XDFactory jsou doplněny statické metody: XDBuilder getXDBuilder(Properties props, ReportWriter reporter)(tedy je možné k builderu připojit reporter).
XDPool compileXD(ReportWriter reporter, Properties props, Object… params) Opět je možné přidat reporter a v tomto případě překlad při chybách nekončí výjimkou, ale vráti reporter s chybami. Tedy např.:
ArrayReporter ar = new ArrayReporter();
Properties props = new Properties();
XDPool xp = XDFactory(ar, props, xdefs) // jsou source data X-definic
if (ar.errorWarnings()) {
// chyby v X-definicích …
}
– Rozšířen zápis typu “uniqueSet” o možnost deklarace proměnných připojených ke klíči (viz BNF pravidlo “UniqueSetVar”):
UniqueSetDeclaration ::= “uniqueSet” S Identifier S? UniqueSetDeclarationBody
UniqueSetDeclarationBody ::=
(“{” UniqueSetItem (S?”;” UniqueSetItem)* (S?”;”S?)? S? “}”) | Method
/* The method must be a parser. */
UniqueSetItem ::= S? (UniqueSetVar | UniqueSetKey)
UniqueSetKey ::= S? Identifier (S?”:”S? ((“?” | “optional”) S? )? Method )?
/* The method must be a parser. */
UniqueSetVar ::= S? “var” S TypeIdentifier S Identifier
(S? “,” S? TypeIdentifier S Identifier)*
Příklad:
<xd:declaration> uniqueSet u {a: string(); var Parser x} </xd:declaration>
…
<def Name=’u.a.ID();’ Type=’xdType(); onTrue u.x=getParsedValue();’ />
…
<Param Name=’u.a.CHKID();’ Value=’u.x; ‘/>
– v X-komponentách se nyní generuje hodnota typu “int” místo původního Java typu “Long” jako “Integer”.
– byla přidána utilita cz.syntea.xdef.util.GUIEditor, která umožňuje editovata debugovat projekty s X-definicemi.
– atributy se zpracovávají podle pořadi jak jsou deklarovány v X-definici.
– do třídy cz.syntea.xdef.sys.BFFGrammar přidána metoda trace(PrintStream out) je-li parametr out ruzny od null, trace informace se tiskne, je-li null trace informace se negeneruje. Metoda usnadnuje ladeni BNF gramatiky.
– do skriptu přidána metoda “getTextContent()”, která vrátí spojený string z textových uzlů aktuálniho elementu a všech potomků.