mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 09:21:46 +00:00
380675e214
escape_xml escaped the five XML metacharacters but passed control characters (0x00 to 0x1F other than tab, newline and carriage return) through unchanged. Those bytes are illegal in XML 1.0 and cannot be represented even as numeric character references, so any IFC string containing them produced non-well-formed XML and SVG output. Strip those illegal control characters before escaping. Bytes belonging to a valid UTF-8 multibyte sequence are always >= 0x80, so filtering on the low control range leaves real text intact. This is the shared helper used by the SVG serializer text and attribute sites (audited: all route through it) and by the XML/Collada paths, so both reports are resolved at one place. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>