renderXml

View as MarkdownOpen in Claude

Render all top-level sections as a single XML document wrapped in a <prompt> root element. Each section becomes a nested XML element with its title as the tag text or attribute, and bullets/numbered lists rendered as child elements.

The markdown variant — renderMarkdown() — is the default render format. Use renderXml() only for prompts where the downstream LLM or template expects XML-structured input.

Returns

string — XML document starting with <?xml version="1.0" encoding="UTF-8"?> and wrapping all sections in a <prompt> root.

Example

import { PomBuilder } from '@signalwire/sdk';
const pom = new PomBuilder();
pom.addSection('Intro', { body: 'Welcome.' });
pom.addSection('Rules', { bullets: ['Be nice.', 'Stay on topic.'] });
console.log(pom.renderXml());
// <?xml version="1.0" encoding="UTF-8"?>
// <prompt>
// <section title="Intro">
// <body>Welcome.</body>
// </section>
// ...
// </prompt>