[Pas2js] Pas2JS: compiler extension to validate XML/XSLT files
Ondrej Pokorny
lazarus at kluug.net
Fri Dec 30 16:32:13 CET 2022
Hello!
A short background:
I've learned how to use Pas2JS to write web client applications. I
developed for it a simple but very powerful method:
1.) The server sends JSON objects as responses.
2.) The client converts these JSON objects to XML and uses XSLT
templates to generate XHTML for the browser.
XSLT is for Pas2JS project something like LFM for the LCL project (DFM
for VCL). But even more powerful because all the captions, texts and
values get automatically replaced with XSLT. That allows me to fill
pages, forms and tables with data with just 2 calls simple calls
(JSON2XML+XSLT).
I add these XSLT files directly into the LPI project and add them to
resources with:
{$R *.xslt}
{$R uFormContainerActions.xslt}
etc.
Now I have a lot of XSLT files in the project that I edit within Lazarus
itself and it works well! (I don't need any external editor.)
This brings me to my problem:
I want to validate these XSLT files on compile - I want to write an
extension for it.
What I want: when the XSLT is not valid (unclosed tag, invalid
character, ... whatsoever), the compilation should be aborted and
Lazarus should jump to the error position in XSLT.
Where should I start? I see 2 possible routes:
1.) Pas2JS compiler extension: hook into handling {$R *.xslt} and abort
compilation with an error in case of invalid xslt file.
2.) Lazarus extension: create a package that hooks into the Compile
command and checks all XSLT/XML files in the project before the project
is compiled with Pas2JS.
I would prefer (1) because it the XSLT don't have to be registered in
the LPI project.
Is it possible to extend the Pas2JS compiler with a DLL that hooks into
the {$R} handler? Or if not, is it possible to create some system to
write own Pas2JS compiler extensions? Or do you have any other
recommendations how to solve this?
Thanks
Ondrej
More information about the Pas2js
mailing list