Unerwartete Transformation bei `upsert`/`create`

Hallo

Wenn ich versuche, einen XML string mittels EntityRepositoryInterface::upsert/EntityRepositoryInterface::create als Wert eines Datenbankfeldes zu setzen, wird bloss der textContent gespeichert. Die Tags werden entfernt. Beispiel:

// Just for demonstration we try to store some
// XML in the `customer_address.title` field.
// Other fields behave the same way.
$this->addressRepository->upsert(array(array(
	'id' => $address->getId(),
	'title' => 'ABC'
)), Context::createDefaultContext());

In diesem Beispiel wird nur ‘ABC’ gespeichert, die restliche Information ist verloren.

  • Gibt es noch weitere solche Transformationen?
  • Sind sie irgendwo spezifiziert?
  • Wie kann ich vorhersagen, was tatsächlich gespeichert wird?
  • Wie kann ich vorhersagen, ob nicht-well-formed XML/JSON/… einen Fehler verursacht?
  • Wie können Benutzereingaben behandelt werden, damit sie 1:1 wieder hergesetellt werden können?

Als Notlösung beim Ratespiel wird base64_encode vermutlich/meistens funktionieren.