Separate complexType shall be created (for nested tags also) with the name: {tag}
Details (expected as implementation plan)
As one can see, at the 1st line of ChangeDocGenerator all the defined changes can be retrieved by calling ChangeFactory.getInstance().getRegistry();
For each Change the required meta information can be retrieved with a call of
ChangeMetaData meta = ChangeFactory.getInstance().getChangeMetaData(changeName); // changeName = change.getSerializedObjectName()
liquibase.change.ChangeMetaData contains the {name} (== change.getSerializedObjectName()) and {description} required for the <complexType ...> tag
For each <attribute ...> the meta.parameters property can be used that contains all the change parameters in liquibase.change.ChangeParameterMetaData objects: parameterName, description, dataType
To get the {children} nested element list a wrapper class like ChangeDocGenerator.ChangeParamMetaData could be used. returns inisContainer` if a parameter is a nested element.
Overview
Modify the doc generator to expect a FreeMarker template as default parameter.
Instead of creating multiple md files the template should be populated with the metadata collected from the liquibase jar.
change
:Information required for each property:
description
The primary template shall be able to generate an XSD with the structure:
Separate
complexType
shall be created (for nested tags also) with the name:{tag}
Details (expected as implementation plan)
As one can see, at the 1st line of
ChangeDocGenerator
all the defined changes can be retrieved by callingChangeFactory.getInstance().getRegistry();
For each
Change
the required meta information can be retrieved with a call ofliquibase.change.ChangeMetaData
contains the {name} (==change.getSerializedObjectName()
) and {description} required for the<complexType ...>
tagFor each
<attribute ...>
themeta.parameters
property can be used that contains all the change parameters inliquibase.change.ChangeParameterMetaData
objects: parameterName, description, dataTypeTo get the {children} nested element list a wrapper class like
ChangeDocGenerator.ChangeParamMetaData
could be used.returns in
isContainer` if a parameter is a nested element.