{"id":"xml-exc-c14n-canonicalize","version":"1.0.0","description":"Exclusive XML Canonicalization 1.0 of a whole document, with an optional inclusive prefix list.","supported_operations":["exclusive xml canonicalization of a whole document","xml exc c14n 1.0 serialize document","canonicalize entire xml without ancestor context","w3c exclusive canonical xml octets","exc-c14n with inclusive namespace prefix list","canonical form for xml signature transforms","omit unused xmlns in exclusive c14n","exclusive canonicalization with comments option"],"unsupported_operations":["inclusive canonical xml 1.0 or 1.1","xml signature generation or verification","arbitrary xpath node sets","dtd and custom entity expansion","xml 1.1 documents","prefix rewriting"],"semantics":["Implements the W3C Exclusive XML Canonicalization 1.0 subset for one XML 1.0 document: UTF-8, no DTD, no custom entities, no XML 1.1, no XPath.","Omitted with_comments means false. Omitted inclusive_prefixes means an empty list. Prefix-list order does not matter; a repeated prefix is invalid_input.","Namespace declarations that are not visibly used are omitted unless the prefix or #default is in the inclusive list. Ancestor xml:lang, xml:space, and xml:base are not copied. The xml prefix is prebound and is never emitted.","Attributes are serialized with one space and double quotes: namespace declarations by prefix (the default prefix first), then other attributes by namespace URI then local name, in Unicode code-point order. Empty elements become start and end tags. Character data escapes &, <, >, and CR. Attribute values escape &, <, \", tab, LF, and CR. No Unicode normalization is applied.","A comment whose content contains \"--\" or ends with \"-\" is malformed and throws invalid_input, whether or not comments are emitted. Document-level comments and processing instructions are separated from the root by one LF. The XML declaration and prolog whitespace are omitted.","utf8_bytes is the exact UTF-8 length of canonical_xml. Duplicate attributes and unbound prefixes throw invalid_input. A document that exceeds a declared byte, depth, node, attribute, name, or prefix limit throws limit_exceeded before or during the parse.","Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity."],"limits":{"max_input_bytes":8192,"max_canonical_bytes":8192,"max_output_bytes":49152,"max_depth":32,"max_nodes":1024,"max_attributes_per_element":32,"max_inclusive_prefixes":16,"max_name_bytes":128},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["xml"],"properties":{"xml":{"type":"string","minLength":1,"maxLength":8192},"with_comments":{"type":"boolean"},"inclusive_prefixes":{"type":"array","maxItems":16,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":128,"pattern":"^(#default|[A-Za-z_][A-Za-z0-9._-]*)$"}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["canonical_xml","utf8_bytes"],"properties":{"canonical_xml":{"type":"string","minLength":1,"maxLength":8192},"utf8_bytes":{"type":"integer","minimum":7,"maximum":8192}}},"examples":[{"input":{"xml":"<n1:elem1 xmlns:n1=\"http://b.example\">\n    content\n</n1:elem1>"},"output":{"canonical_xml":"<n1:elem1 xmlns:n1=\"http://b.example\">\n    content\n</n1:elem1>","utf8_bytes":62}},{"input":{"xml":"<n1:elem2 xmlns:n1=\"http://example.net\" xml:lang=\"en\">\n    <n3:stuff xmlns:n3=\"ftp://example.org\"></n3:stuff>\n</n1:elem2>"},"output":{"canonical_xml":"<n1:elem2 xmlns:n1=\"http://example.net\" xml:lang=\"en\">\n    <n3:stuff xmlns:n3=\"ftp://example.org\"></n3:stuff>\n</n1:elem2>","utf8_bytes":121}},{"input":{"xml":"<a></a>"},"output":{"canonical_xml":"<a></a>","utf8_bytes":7}}],"execute_url":"/v1/tools/xml-exc-c14n-canonicalize/versions/1.0.0/execute"}