highsource / highsource/jsonix-schema-compiler

Unable to convert XSD to Open API v3 Json schema

Open
#97 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
138
Forks
37
PR merge metrics
No merged PRs in 30d

Description

I want to convert xsd to open api v3 json schema, as i asked to copilot he suggest jsonix library.
Here is the code suggested, but this code is not found in jar

try {
// Compile XSD to JAXB classes
XJC xjc = Jsonix.generateXJC(new File(xsdFilePath));
SchemaInfo schemaInfo = xjc.generateSchemaInfo();

// Generate JSON schema
JsonSchemaGenerator jsonSchemaGenerator = Jsonix.generateJsonSchemaGenerator(schemaInfo);
JsonSchemaInfo jsonSchemaInfo = jsonSchemaGenerator.generateJsonSchemaInfo();

// Add required fields based on minOccurs
Map requiredFields = getRequiredFieldsFromXsd(schemaInfo);
jsonSchemaInfo = addRequiredFieldsToSchema(jsonSchemaInfo, requiredFields);

// Serialize JSON schema to a file
Jsonix.writeJsonSchemaInfo(jsonSchemaInfo, new File(jsonSchemaFilePath));

System.out.println("Conversion successful! JSON schema saved at: " + jsonSchemaFilePath);
} catch (IOException e) {
e.printStackTrace();
}
private static Map getRequiredFieldsFromXsd(SchemaInfo schemaInfo) {
// Implement logic to extract required fields from schemaInfo
// For each field, map its name to true if minOccurs > 0, otherwise false
// Example: { "uniqueReferenceNumber": true, "recordLocator": true, ... }
// You'll need to adapt this part to your specific XSD
Map requiredFields = new HashMap<>();
// ... populate requiredFields ...
return requiredFields;
}

private static JsonSchemaInfo addRequiredFieldsToSchema(JsonSchemaInfo jsonSchemaInfo,
Map requiredFields) {
// Add required fields to the existing JSON schema
// Modify jsonSchemaInfo to indicate required fields
// Example: Set "required" property for each field based on requiredFields map
// You'll need to adapt this part to your specific JSON schema structure
// ...
return jsonSchemaInfo;
}

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.