ProRock#
Schema-typed XML for Delphi. Generate exact Delphi classes from XSD and WSDL, parse and write XML through them, call SOAP services with them.
When the schema changes, regenerate, don't re-patch.
A schema changes: a new e-invoicing version, an ISO 20022 release, a service adding fields. Hand-written or hand-patched mappings then have to be found and fixed one by one. With ProRock you regenerate the units, and the compiler shows exactly what changed.
Get started in 5 minutes
Download ProRocket Lite
Two parts#
ProRock - the runtime library. Open source (Apache 2.0), pure Delphi source, no dependencies beyond the RTL, no packages to install.
- Xmlite: XML parsing and serialization to and from plain Delphi objects, namespace- and schema-aware. Parsing works in place on the text, without building a DOM
- Soapite: SOAP 1.1 / 1.2 clients on top of Xmlite, generated from WSDL, with typed requests, responses and faults
ProRocket Lite - the code generator: XSD and WSDL in, Delphi units out, in a GUI and from the command line - friendly to scripts and AI coding assistants. Free for any use, including commercial; the generated code is yours.
What it looks like#
uses ProRock.Soapite.CheckVatService; // generated from the EU VIES WSDL
var service := TCheckVatService.Create('https://ec.europa.eu/taxation_customs/vies/services/checkVatService');
try
var request := TCheckVatE.Create;
try
request.CountryCode := 'IE';
request.VatNumber := '6388047V';
var response: TCheckVatResponseE;
var error: TSoapiteError;
if service.TryCheckVat(request, response, error) then // never raises for service or network failures
try
Writeln(response.Name, ' - valid: ', response.Valid);
finally
response.Free;
end
else
Writeln('failed [', error.Code, ']: ', error.Message);
finally
request.Free;
end;
finally
service.Free;
end;
Platforms#
Delphi 10.3 Rio to 13 Florence, Win64 and Win32. All units compile for Android 32/64-bit (Delphi 13); running on a device is not verified yet. Details: Limitations and notes.
Feedback#
Feedback, real-world schemas that do not work yet, and contributions are welcome: open an issue or see CONTRIBUTING.md.
If ProRock is useful to you, at least smash the ⭐ Star on GitHub - it costs nothing and helps other Delphi developers find it. And if you'd like to do more, you can support the project. Thank you! 🤟
Since October 2026, development is assisted by Claude Code (Anthropic): it helps with implementation, tests and generator fixes. Design, decisions and verification remain the author's.