XML Folio / Notebook
The field map is part of the product.
A clear omission is more useful than a quiet assumption.
Supported shapes
| Profile | Record container | Reading values |
|---|---|---|
| RSS 2.0 | One unnamespaced channel; direct item children | title, link, guid, pubDate, description |
| Atom | feed / entry in the Atom namespace | title, id, updated or published, summary or inline content, alternate link |
| Sitemap | urlset / url in the Sitemap namespace | loc, lastmod, changefreq, priority |
| Sitemap index | sitemapindex / sitemap in the Sitemap namespace | loc, lastmod |
The RSS channel title and description, or the Atom feed title and subtitle, supply the reading-page heading and introduction. You can override the page title. Other feed-level values remain visible in the omission manifest rather than being silently presented as copied.
Namespaces and repeated fields
Element matching uses the namespace URI and local name, not whichever prefix appears in the file. A prefixed Atom feed is therefore supported. An unnamespaced file that happens to use Atom-looking names is not. Matching uses direct children at the expected level, so a nested extension is not accidentally treated as the principal title or link.
When a field expected by this profile occurs more than once, the first value is used and a review note is added. The remaining elements appear among omissions. Atom alternate-link selection prefers an HTML-compatible candidate, then the first alternate candidate. Self, enclosure, related and additional alternate links are not silently turned into article links.
What the omission count means
The audit lists namespace-qualified paths and their occurrence counts. It includes unrepresented elements and attributes. An omitted extension parent and its child can both appear; the total does not measure semantic loss, lost records or conversion quality. Even a zero count is not proof that the old stylesheet’s calculations or layout were reproduced.
Mapped text fields are flattened to text. Nested markup inside such a field does not retain its structure. Unused attributes, including content-type annotations, can still appear in the audit. Namespace declarations and xml:base are interpreted as structural context, rather than shown as display fields.
Link and text handling
Only HTTP(S) links without username/password credentials become anchors. Relative feed links resolve against the supplied XML URL and inherited xml:base. Sitemap loc values must already be absolute for this reader. Invalid links remain visible as text, and missing links receive their own count. This is a rendering policy, not a comprehensive URI or feed validity test.
Source strings are escaped before insertion into the preview or exported HTML. Descriptions containing markup are shown literally. Source stylesheets are recorded but never fetched or executed. The tool does not follow entries, load enclosures, include remote images or perform XSLT document() calls.
Limits that fail explicitly
Input must be well-formed UTF-8 XML, no larger than 1 MiB, with at most 1,000 mapped records, 25,000 nodes and 48 levels of nesting. DOCTYPE and ENTITY declarations are refused before parsing. Non-UTF-8 declarations, unsupported roots and malformed XML stop export. The tool does not silently return a truncated first page of an oversized collection.
The manifest records a SHA-256 hash of the decoded input text. When a file is uploaded, it separately records the original file bytes’ hash. These can differ because decoding removes a byte-order mark. A pasted string has no original-file byte hash. Neither hash proves the source came from its claimed URL; that URL is user-supplied and is not fetched.
See the test fixtures for observed behavior and the privacy notes for what the downloads contain.
A relative link has a history.
Use this original two-entry Atom fixture with the fictional source URL https://journal.example/feeds/main.xml. The URL supplies context only; XML Folio does not fetch it. The first entry deliberately changes the base twice before its link is resolved.
- Document context: the supplied source URL is in
/feeds/. - Feed context:
xml:base="../articles/"resolves tohttps://journal.example/articles/. - Entry context:
xml:base="2026/"resolves beneath that tohttps://journal.example/articles/2026/. - Entry link:
href="../october.html"resolves tohttps://journal.example/articles/october.html.
The second entry has href="/about". Its leading slash starts at the same origin’s root, giving https://journal.example/about. It does not become /articles/about. The base inheritance rule is described in W3C XML Base; these paths are original teaching examples.
Two easy ways to publish the wrong destination.
If you paste this XML and supply https://archive.example/export/main.xml as its original URL, the same relative text resolves under archive.example. The file bytes did not change; the external context did. A content hash therefore does not identify the full link-resolution environment.
If you move only the resulting HTML to another directory, its generated absolute links should still point to the reviewed article destinations. Replacing them with the raw relative strings during a later template rewrite would reintroduce dependence on the HTML file’s location. Review an exported link’s actual destination, not just its visible title.
Keep one provenance note with the reading copy.
Record the XML source URL you supplied, whether the document includes inherited bases, the final resolved destination of a representative entry and which file you exported. If the source was a local file whose original location is unknown, leave that context unknown until you establish it. Inventing a plausible domain makes a clickable link, not a trustworthy link.
In the workbench, load the fixture, enter the fictional source URL and build the reading copy. Inspect the two entry anchors and the field audit. No entry is fetched, and the absence of a warning is not a claim that either fictional destination exists. This exercise tests interpretation of the supplied XML and base context, not network availability or the source’s authenticity.