diff --git a/core/modules/serialization/serialization.info.yml b/core/modules/serialization/serialization.info.yml
index 7c4eb52..9e59558 100644
--- a/core/modules/serialization/serialization.info.yml
+++ b/core/modules/serialization/serialization.info.yml
@@ -1,6 +1,6 @@
 name: Serialization
 type: module
-description: Provides a service for (de)serializing data to/from formats such as JSON and XML
+description: Provides a service for (de)serializing data to/from formats such as JSON
 package: Web services
 version: VERSION
 core: 8.x
diff --git a/core/modules/serialization/serialization.module b/core/modules/serialization/serialization.module
index 39c5fbf..b593ee9 100644
--- a/core/modules/serialization/serialization.module
+++ b/core/modules/serialization/serialization.module
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Provides a service for (de)serializing data to/from formats such as JSON and XML.
+ * Provides a service for (de)serializing data to/from formats such as JSON.
  */
 
 use Drupal\Core\Routing\RouteMatchInterface;
@@ -15,7 +15,7 @@ function serialization_help($route_name, RouteMatchInterface $route_match) {
     case 'help.page.serialization':
       $output = '';
       $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Serialization module provides a service for serializing and deserializing data to and from formats such as JSON and XML.') . '</p>';
+      $output .= '<p>' . t('The Serialization module provides a service for serializing and deserializing data to and from formats such as JSON.') . '</p>';
       $output .= '<p>' . t('Serialization is the process of converting data structures like arrays and objects into a string. This allows the data to be represented in a way that is easy to exchange and store (for example, for transmission over the Internet or for storage in a local file system). These representations can then be deserialized to get back to the original data structures.') . '</p>';
       $output .= '<p>' . t('The serializer splits this process into two parts. Normalization converts an object to a normalized array structure. Encoding takes that array and converts it to a string.') . '</p>';
       $output .= '<p>' . t('This module does not have a user interface. It is used by other modules which need to serialize data, such as <a href=":rest">REST</a>.', array(':rest' => (\Drupal::moduleHandler()->moduleExists('rest')) ? \Drupal::url('help.page', array('name' => 'rest')) : '#')) . '</p>';
diff --git a/core/modules/serialization/serialization.services.yml b/core/modules/serialization/serialization.services.yml
index 8b570c0..7436a50 100644
--- a/core/modules/serialization/serialization.services.yml
+++ b/core/modules/serialization/serialization.services.yml
@@ -49,10 +49,6 @@ services:
     class: Drupal\serialization\Encoder\JsonEncoder
     tags:
       - { name: encoder, format: json }
-  serializer.encoder.xml:
-    class: Drupal\serialization\Encoder\XmlEncoder
-    tags:
-      - { name: encoder, format: xml }
   serializer.entity_resolver:
     class: Drupal\serialization\EntityResolver\ChainEntityResolver
   serializer.entity_resolver.uuid:
diff --git a/core/modules/serialization/src/Encoder/XmlEncoder.php b/core/modules/serialization/src/Encoder/XmlEncoder.php
deleted file mode 100644
index abd7896..0000000
--- a/core/modules/serialization/src/Encoder/XmlEncoder.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-namespace Drupal\serialization\Encoder;
-
-use Symfony\Component\Serializer\Encoder\EncoderInterface;
-use Symfony\Component\Serializer\Encoder\DecoderInterface;
-use Symfony\Component\Serializer\Encoder\XmlEncoder as BaseXmlEncoder;
-
-/**
- * Adds XML support for serializer.
- *
- * This acts as a wrapper class for Symfony's XmlEncoder so that it is not
- * implementing NormalizationAwareInterface, and can be normalized externally.
- */
-class XmlEncoder implements EncoderInterface, DecoderInterface {
-
-  /**
-   * The formats that this Encoder supports.
-   *
-   * @var array
-   */
-  static protected $format = array('xml');
-
-  /**
-   * An instance of the Symfony XmlEncoder to perform the actual encoding.
-   *
-   * @var \Symfony\Component\Serializer\Encoder\XmlEncoder
-   */
-  protected $baseEncoder;
-
-  /**
-   * Gets the base encoder instance.
-   *
-   * @return \Symfony\Component\Serializer\Encoder\XmlEncoder
-   *   The base encoder.
-   */
-  public function getBaseEncoder() {
-    if (!isset($this->baseEncoder)) {
-      $this->baseEncoder = new BaseXmlEncoder();
-    }
-
-    return $this->baseEncoder;
-  }
-
-  /**
-   * Sets the base encoder instance.
-   *
-   * @param \Symfony\Component\Serializer\Encoder\XmlEncoder $encoder
-   */
-  public function setBaseEncoder($encoder) {
-    $this->baseEncoder = $encoder;
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function encode($data, $format, array $context = array()){
-    return $this->getBaseEncoder()->encode($data, $format, $context);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function supportsEncoding($format) {
-    return in_array($format, static::$format);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function decode($data, $format, array $context = array()){
-    return $this->getBaseEncoder()->decode($data, $format, $context);
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function supportsDecoding($format) {
-    return in_array($format, static::$format);
-  }
-
-}
diff --git a/core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php b/core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php
index 0f84d3d..15f0937 100644
--- a/core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php
+++ b/core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php
@@ -178,34 +178,6 @@ public function testSerialize() {
     $this->assertIdentical($actual, $expected, 'Entity serializes to JSON when "ajax" is requested.');
     $actual = $this->serializer->serialize($normalized, 'ajax');
     $this->assertIdentical($actual, $expected, 'A normalized array serializes to JSON when "ajax" is requested');
-
-    // Generate the expected xml in a way that allows changes to entity property
-    // order.
-    $expected = array(
-      'id' => '<id><value>' . $this->entity->id() . '</value></id>',
-      'uuid' => '<uuid><value>' . $this->entity->uuid() . '</value></uuid>',
-      'langcode' => '<langcode><value>en</value></langcode>',
-      'name' => '<name><value>' . $this->values['name'] . '</value></name>',
-      'type' => '<type><value>entity_test_mulrev</value></type>',
-      'created' => '<created><value>' . $this->entity->created->value . '</value></created>',
-      'user_id' => '<user_id><target_id>' . $this->user->id() . '</target_id><target_type>' . $this->user->getEntityTypeId() . '</target_type><target_uuid>' . $this->user->uuid() . '</target_uuid><url>' . $this->user->url() . '</url></user_id>',
-      'revision_id' => '<revision_id><value>' . $this->entity->getRevisionId() . '</value></revision_id>',
-      'default_langcode' => '<default_langcode><value>1</value></default_langcode>',
-      'non_rev_field' => '<non_rev_field/>',
-      'field_test_text' => '<field_test_text><value>' . $this->values['field_test_text']['value'] . '</value><format>' . $this->values['field_test_text']['format'] . '</format></field_test_text>',
-    );
-    // Sort it in the same order as normalised.
-    $expected = array_merge($normalized, $expected);
-    // Add header and footer.
-    array_unshift($expected, '<?xml version="1.0"?>' . PHP_EOL . '<response>');
-    $expected[] = '</response>' . PHP_EOL;
-    // Reduced the array to a string.
-    $expected = implode('', $expected);
-    // Test 'xml'. The output should match that of Symfony's XmlEncoder.
-    $actual = $this->serializer->serialize($this->entity, 'xml');
-    $this->assertIdentical($actual, $expected);
-    $actual = $this->serializer->serialize($normalized, 'xml');
-    $this->assertIdentical($actual, $expected);
   }
 
   /**
@@ -214,7 +186,7 @@ public function testSerialize() {
   public function testDenormalize() {
     $normalized = $this->serializer->normalize($this->entity);
 
-    foreach (array('json', 'xml') as $type) {
+    foreach (array('json') as $type) {
       $denormalized = $this->serializer->denormalize($normalized, $this->entityClass, $type, array('entity_type' => 'entity_test_mulrev'));
       $this->assertTrue($denormalized instanceof $this->entityClass, SafeMarkup::format('Denormalized entity is an instance of @class', array('@class' => $this->entityClass)));
       $this->assertIdentical($denormalized->getEntityTypeId(), $this->entity->getEntityTypeId(), 'Expected entity type found.');
diff --git a/core/modules/serialization/tests/src/Unit/Encoder/XmlEncoderTest.php b/core/modules/serialization/tests/src/Unit/Encoder/XmlEncoderTest.php
deleted file mode 100644
index ea38aa9..0000000
--- a/core/modules/serialization/tests/src/Unit/Encoder/XmlEncoderTest.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace Drupal\Tests\serialization\Unit\Encoder;
-
-use Drupal\serialization\Encoder\XmlEncoder;
-use Drupal\Tests\UnitTestCase;
-
-/**
- * @coversDefaultClass \Drupal\serialization\Encoder\XmlEncoder
- * @group serialization
- */
-class XmlEncoderTest extends UnitTestCase {
-
-  /**
-   * The XmlEncoder instance.
-   *
-   * @var \Drupal\serialization\Encoder\XmlEncoder
-   */
-  protected $encoder;
-
-  /**
-   * @var \Symfony\Component\Serializer\Encoder\XmlEncoder|\PHPUnit_Framework_MockObject_MockObject
-   */
-  protected $baseEncoder;
-
-  /**
-   * An array of test data.
-   *
-   * @var array
-   */
-  protected $testArray = array('test' => 'test');
-
-  protected function setUp() {
-    $this->baseEncoder = $this->getMock('Symfony\Component\Serializer\Encoder\XmlEncoder');
-    $this->encoder = new XmlEncoder();
-    $this->encoder->setBaseEncoder($this->baseEncoder);
-  }
-
-  /**
-   * Tests the supportsEncoding() method.
-   */
-  public function testSupportsEncoding() {
-    $this->assertTrue($this->encoder->supportsEncoding('xml'));
-    $this->assertFalse($this->encoder->supportsEncoding('json'));
-  }
-
-  /**
-   * Tests the supportsDecoding() method.
-   */
-  public function testSupportsDecoding() {
-    $this->assertTrue($this->encoder->supportsDecoding('xml'));
-    $this->assertFalse($this->encoder->supportsDecoding('json'));
-  }
-
-  /**
-   * Tests the encode() method.
-   */
-  public function testEncode() {
-    $this->baseEncoder->expects($this->once())
-      ->method('encode')
-      ->with($this->testArray, 'test', array())
-      ->will($this->returnValue('test'));
-
-    $this->assertEquals('test', $this->encoder->encode($this->testArray, 'test'));
-  }
-
-  /**
-   * Tests the decode() method.
-   */
-  public function testDecode() {
-    $this->baseEncoder->expects($this->once())
-      ->method('decode')
-      ->with('test', 'test', array())
-      ->will($this->returnValue($this->testArray));
-
-    $this->assertEquals($this->testArray, $this->encoder->decode('test', 'test'));
-  }
-
-}
