Generates Enonic XP content type XML schema definitions from natural-language descriptions. Covers structured content modeling including input types, form layout, option sets, item sets, mixins, x-data, and content-type inheritance. Use when creating, scaffolding, or generating Enonic XP content type definitions, adding fields or sets to existing content types, or querying Enonic XP input types and super-types. Do not use for non-Enonic CMS content modeling, GraphQL queries, JavaScript/TypeScript controllers, or generic XML editing unrelated to Enonic schemas.
Step 1: Detect Enonic XP Project
node scripts/find-enonic-targets.mjs [workspaceRoot] to locate Enonic XP project roots.Step 2: Gather Requirements
blog-post).Blog Post).base:structured unless the request specifies a folder (base:folder) or another built-in type.references/content-type-reference.md to map natural-language field descriptions to the correct Enonic XP input type and configuration.Step 3: Generate the Content Type XML
assets/content-type.template.xml to obtain the starter template.DISPLAY_NAME with the display name from Step 2.DESCRIPTION with a short description or remove the element if none was provided.<super-type> element to the value determined in Step 2.<form> element with the identified inputs, item sets, option sets, field sets, and mixin references.name attribute using camelCase.type attribute to the exact Enonic XP input type name (case-sensitive).<label>, <occurrences>, <help-text>, <default>, and <config> as required.<config>.<config> with allowContentType, allowPath, treeMode, and hideToggleIcon as specified.<config> with max-length, show-counter, or regexp if validation constraints are requested.<config> with min and max if range constraints are requested.<config> with <timezone>true</timezone> if timezone-aware storage is requested.references/examples.md.Step 4: Write the File
[projectRoot]/src/main/resources/site/content-types/[name]/[name].xml[projectRoot]/src/main/resources/site/mixins/[name]/[name].xml[projectRoot]/src/main/resources/site/x-data/[name]/[name].xmlStep 5: Validate Output
<input> has a valid type attribute by cross-referencing references/content-type-reference.md.name attributes are unique within their nesting level.<occurrences> values are logically consistent (minimum <= maximum, or maximum = 0 for unlimited).references/content-type-reference.md without creating files.scripts/find-enonic-targets.mjs exits with a non-zero code, report the stderr message and ask for the project root path manually.references/content-type-reference.md and suggest the closest match. Do not invent input type names.references/troubleshooting.md to diagnose and correct the error, then regenerate the file.