How tnaldoza/jx-schema-generator works
JXSchemaGenerator is a .NET CLI that compiles Jack Henry jXchange TPG XSDs into one format-2 JSON mapping per Master, plus a JSON Schema. The documented workflow runs from CLI arguments through folder-level generation, schema loading, Master building, and JSON emission; SOAP clients consume the resulting mappings. The graph preserves schema resolution, operation discovery, request/response trees, type tables, and output naming as distinct capabilities. Some build-stage links rely on README descriptions rather than sampled implementation, so those links are dashed and unverified.
Main entry points: MasterBuilder.cs Master builder · GenerateRunner.cs Folder runner · MasterJsonWriter.cs JSON writer · SchemaLoader.cs Schema loader
Components 19
CLI and orchestration
- Generate CLI
src/JXSchemaGenerator.Cli/Program.cs - Folder runner
src/JXSchemaGenerator.Core/Build/GenerateRunner.cs
Schema processing
- Schema loader
src/JXSchemaGenerator.Core/Schema/SchemaLoader.cs - Local resolver
src/JXSchemaGenerator.Core/Schema/LocalFolderXmlResolver.cs - Schema index
src/JXSchemaGenerator.Core/Schema/SchemaIndex.cs
Master construction
- Master builder
src/JXSchemaGenerator.Core/Build/MasterBuilder.cs - Operation discovery
src/JXSchemaGenerator.Core/Build/OperationDiscovery.cs - Annotation reader
src/JXSchemaGenerator.Core/Build/AnnotationReader.cs - Element trees
src/JXSchemaGenerator.Core/Build/ElementTreeBuilder.cs - Type table
src/JXSchemaGenerator.Core/Build/TypeTableBuilder.cs - Operation helpers
src/JXSchemaGenerator.Core/Build/OperationHelpers.cs - Master document model
src/JXSchemaGenerator.Core/Model
JSON output
- JSON writer
src/JXSchemaGenerator.Core/Emit/MasterJsonWriter.cs - Output naming
src/JXSchemaGenerator.Core/Emit/OutputFileNames.cs - Format JSON Schema
src/JXSchemaGenerator.Core/Emit/jxchange-schemas.schema.json
Other components
- CLI user
- TPG XSD folder
- Generated JSON mappings
- SOAP client libraries
Connections 22
- CLI user → Generate CLI: runs
README.md - Generate CLI → Folder runner: invokes
src/JXSchemaGenerator.Cli/Program.cs - Folder runner → Schema loader: loads schemas
- Schema loader → Local resolver: resolves locally
src/JXSchemaGenerator.Core/Schema/SchemaLoader.cs - TPG XSD folder → Schema loader: provides schemas
README.md - Schema loader → Schema index: indexes types
- Folder runner → Master builder: builds Masters
- Master builder → Operation discovery: discovers operations
- Master builder → Annotation reader: reads annotations
- Master builder → Element trees: builds element trees
- Master builder → Type table: builds type table
- Master builder → Operation helpers: derives helpers
- Master builder → Schema index: uses schema index
- Master builder → Master document model: produces document
- Folder runner → JSON writer: emits JSON
- Folder runner → Output naming: names files
- JSON writer → Master document model: serializes
src/JXSchemaGenerator.Core/Emit/MasterJsonWriter.cs - JSON writer → Format JSON Schema: ships schema
src/JXSchemaGenerator.Core/Emit/MasterJsonWriter.cs - JSON writer → Generated JSON mappings: writes mappings
README.md - Output naming → Generated JSON mappings: names files
- Format JSON Schema → Generated JSON mappings: documents format
README.md - Generated JSON mappings → SOAP client libraries: consumed by
README.md