close

Filter

loading table of contents...

Release Notes / Version 13.2512.0

Table Of Contents

Hardened Server- and XLIFF-Export for Invalid XML Control Characters

The output of cm serverexport as well as the resulting XLIFF from XLIFF-Export have been hardened to not output invalid XML control characters. If these characters made it into the XML/XLIFF-files parsers fail reading them afterward.

Invalid control characters range from 0x0000 (NUL) to 0x001F (Information Separator One (US - Unit Separator)) except for 0x0009 (Horizontal Tab), 0x000A (Line Feed) and 0x000D (Carriage Return). On export, these control characters are now removed, so that they don’t block subsequent import.

One exception to this rule: For attributes name and folder of a given exported content item, URL-encoding is applied to them now, just as it is already done for internal representation (in link lists as well as in links in Rich Text and Structs).

Specification Level 1: With this change we introduce a “specification level” explicitly noted in files created by serverexport such as:

<CMChannel
  specification="1"
  folder="/Sites/Chef%20Corp%2E/United%20States/English/Navigation"
  name="Chef%20Corp%2E%20USA%20Home%20Page"
  xmlns:cmexport="http://www.coremedia.com/2012/cmexport">
  <!-- ... -->
</CMChannel>

Upgrade Information

In short, no upgrade steps are required. You may still want to check your contents for “illegal character use” in properties. Regarding the new Specification Level 1 for files generated by cm serverexport, cm serverimport can transparently handle any files created with tool versions before that.

Illegal Character Handling: You may want to check if your existing server export or XLIFF-export files contain any of these illegal characters. To align with the new behavior, you can just strip them from the corresponding files.

As part of this change this API has been extended:

  • hox.text.xml.XmlAttributeEscapingWriter

  • hox.text.xml.XmlAttributeWriter

  • hox.text.xml.XmlUnparser

All of them now offer configuration options to:

  • filter invalid XML values (disabled by default)

  • encode control characters 0x0009, 0x000A, 0x000D to their numeric entities (disabled by default).

The XmlAttributeWriter also got three extra write(...) methods that may now be used to prevent applying substituting characters for ignorable space text nodes. They are used, for example, by the XmlUnparser.

Regarding Specification Level 1: cm serverimport can import any files generated with a tool version prior to CMCC v13.2512.0.0. It will auto-detect the missing specification level and assume artificial “specification level 0” where no URL-decoding is applied to attributes name and folder. Thus, also here, any upgrade steps are optional.

If you require to import the XML data of serverexport with a serverimport version prior to CMCC v13.2512.0.0, you can set serverexport to output the corresponding format via --specification 0 command line option.

Content Adaptations: Content export files that ship with CoreMedia Blueprint got upgraded to specification level 1. They must not be imported with any cm serverimport tool prior to CMCC v13.2512.0.0. Starting with CMCC v13.2512.0.0 serverimport tools will be aware of export files created with a newer version of serverexport and will deny importing those newer files.

Contents in VCS: If you have stored your project contents in VCS, you may want to re-export these files are apply these changes via Shell scripts:

  • Add specification="1" to the root-element.

  • URL-encode attributes name and the path-arcs of folder (including URL-encoding dots to %2E).

Tip: Despite handling URL-encoding of dots, you can use jq --raw-input --raw-output @uri:

echo "Chef Corp. USA Home Page" | jq --raw-input --raw-output @uri

(CMS-27456)

Search Results

Table Of Contents
warning

Your Internet Explorer is no longer supported.

Please use Mozilla Firefox, Google Chrome, or Microsoft Edge.