Release Notes / Version 13.2512.0
Table Of Contents
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.XmlAttributeEscapingWriterhox.text.xml.XmlAttributeWriterhox.text.xml.XmlUnparser
All of them now offer configuration options to:
filter invalid XML values (disabled by default)
encode control characters
0x0009,0x000A,0x000Dto 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
nameand the path-arcs offolder(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)


