Catalog · How the catalog works
ProRock
Schema-typed XML for Delphi: generate exact classes from XSD/WSDL, and when the schema changes, regenerate, don’t re-patch. Fast in-place parsing, no DOM.
- ★ 6 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
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.
Proven on real schemas:
- HL7® FHIR® R4 - all 146 resource types from the official schemas: a Bundle of 1,000 Patients read in 0.1 s, narratives written back as they were (sample)
- Excel workbooks - SpreadsheetML from ECMA-376: an invoice read, edited and written back with everything Excel put in it; Excel opens it and recalculates (sample)
- SOAP services - the EU VIES VAT service, WS-Security, client certificates (quick start below)

Two parts:
- ProRock - the runtime library: open source (Apache 2.0), pure Delphi source, no dependencies beyond the RTL
- Basite - the core: plain Delphi objects described once by their metadata (MetaBank) - nested objects created and freed with their parent, presence of every value; independent of any data format, the base for Xmlite and later Jsonite
- Xmlite - XML parsing and serialization to and from plain Delphi objects, namespace- and schema-aware, without a DOM
- Soapite - SOAP 1.1 / 1.2 clients on top of Xmlite, generated from WSDL
- ProRocket Lite - the code generator: XSD/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
Download ProRocket-Lite.zip (Windows 64-bit, always the newest release; SHA-256 in the release notes)
Documentation
The full documentation is at prorock.rocks (searchable):
| Getting started | from a WSDL to a working SOAP call in 5 minutes |
| Xmlite · Soapite | XML through typed classes · SOAP clients, transport, authentication |
| ProRocket Lite | the generator: GUI and command line |
| Samples | nine samples, from an Excel workbook and FHIR resources to WS-Security |
| Design principles | a cockpit, not an engine room: what ProRock is built on - and what it is not |
| XML concepts | namespaces, XSD types, substitution groups - explained for Delphi developers |
Quick start: a SOAP client from a WSDL
- Open ProRocket Lite, add the WSDL (here
checkVatService.wsdl, the EU VIES VAT number service), click Generate - or from the command line:ProRocketCli.exe checkVatService.wsdl. - You get two units: the types (
ProRock.Xmlite.Schema.CheckVatService) and the client (ProRock.Soapite.CheckVatService). - Call the service. Pass the endpoint: the default is the WSDL's
soap:address, and VIES still declareshttp://there.
uses ProRock.Soapite.CheckVatService;
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;The same from an XSD, the project setup, timeouts, authentication and faults: getting started and Soapite.
Installation
ProRock is a pure source library: no installation, no design-time packages, no component registration. Clone or download the
repository, add its Source folder to your project's search path (ProRock 1.4 and earlier: the repository folder itself), use
the units you need.
Delphi 10.3 Rio to 13 Florence, Win64 and Win32; all units compile for Android (Delphi 13), running on a device is not verified yet. The Samples folder has one group project with nine samples - an Excel workbook, FHIR resources, Office document properties, EU VIES, WS-Security, client certificates and more.
Known limitations and notes
Coverage grows through real-world schemas. Reading and writing back are exact for what a schema describes, also for large schemas: FHIR R4 and the OOXML SpreadsheetML/DrawingML schemas generate units that compile and round-trip - Office's own extensions and FHIR's XHTML narratives included.
Not covered yet:
- elements standing in for their substitution group head
xsi:nil- schemas without a target namespace
- facets (patterns, lengths, ranges) are not validated
What comes next: ROADMAP. The full list, with notes on decimals, string types and server error texts: Limitations and notes.
Development
Changes are listed in the CHANGELOG, plans in the ROADMAP. Security issues: see SECURITY.md.
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.
Feedback, real-world schemas that do not work yet, and contributions are welcome - see CONTRIBUTING.md.
If ProRock is useful to you, at least smash the ⭐ Star - 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! 🤟
License
ProRock is licensed under the Apache License 2.0. ProRocket Lite is a free closed-source tool with its own license. The generated metamodels are derived from W3C, IBM and Microsoft schemas; their notices are in THIRD-PARTY-NOTICES.md.
Have fun, and let's ProRock! 🤟

