diff --git a/core/modules/comment/tests/src/Functional/Rest/CommentResourceTestBase.php b/core/modules/comment/tests/src/Functional/Rest/CommentResourceTestBase.php
index 60b13b236169d905b30cdc3045d063a847c86723..7185164749b24bb1cfe13c363b8cc49b8608fc29 100644
--- a/core/modules/comment/tests/src/Functional/Rest/CommentResourceTestBase.php
+++ b/core/modules/comment/tests/src/Functional/Rest/CommentResourceTestBase.php
@@ -50,6 +50,17 @@ abstract class CommentResourceTestBase extends EntityResourceTestBase {
    */
   protected $entity;
 
+  /**
+   * Marks some tests as skipped because XML cannot be deserialized.
+   *
+   * @before
+   */
+  public function commentResourceTestBaseSkipTests(): void {
+    if (static::$format === 'xml' && in_array($this->name(), ['testPostDxWithoutCriticalBaseFields', 'testPostSkipCommentApproval'], TRUE)) {
+      $this->markTestSkipped('Deserialization of the XML format is not supported.');
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/comment/tests/src/Functional/Rest/CommentXmlAnonTest.php b/core/modules/comment/tests/src/Functional/Rest/CommentXmlAnonTest.php
index 6404656dfe99d9a3f54184953268b023de5c94bb..b0eab80dda0ed6d3c3430bf2e125b295885d2175 100644
--- a/core/modules/comment/tests/src/Functional/Rest/CommentXmlAnonTest.php
+++ b/core/modules/comment/tests/src/Functional/Rest/CommentXmlAnonTest.php
@@ -52,20 +52,4 @@ class CommentXmlAnonTest extends CommentResourceTestBase {
     'field_name',
   ];
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPostDxWithoutCriticalBaseFields(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testPostSkipCommentApproval(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/comment/tests/src/Functional/Rest/CommentXmlBasicAuthTest.php b/core/modules/comment/tests/src/Functional/Rest/CommentXmlBasicAuthTest.php
index 05fec0c0a77186bc95df38f8977b533656503716..ed8f3ee70d3d7ca599b53933643d2f2b73e87326 100644
--- a/core/modules/comment/tests/src/Functional/Rest/CommentXmlBasicAuthTest.php
+++ b/core/modules/comment/tests/src/Functional/Rest/CommentXmlBasicAuthTest.php
@@ -41,20 +41,4 @@ class CommentXmlBasicAuthTest extends CommentResourceTestBase {
    */
   protected static $auth = 'basic_auth';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPostDxWithoutCriticalBaseFields(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testPostSkipCommentApproval(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/comment/tests/src/Functional/Rest/CommentXmlCookieTest.php b/core/modules/comment/tests/src/Functional/Rest/CommentXmlCookieTest.php
index 44028b9db8948f556eec0803d694fbea53ce200f..a382a8bd4c5ab17f1d32f4c3c455b6a09ff4ccca 100644
--- a/core/modules/comment/tests/src/Functional/Rest/CommentXmlCookieTest.php
+++ b/core/modules/comment/tests/src/Functional/Rest/CommentXmlCookieTest.php
@@ -36,20 +36,4 @@ class CommentXmlCookieTest extends CommentResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPostDxWithoutCriticalBaseFields(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testPostSkipCommentApproval(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/file/tests/src/Functional/Rest/FileResourceTestBase.php b/core/modules/file/tests/src/Functional/Rest/FileResourceTestBase.php
index b8f448d1654944d14be448a8f72b483b52ac48fd..1de8bdb305b30e33de2948e004af709f4ef65521 100644
--- a/core/modules/file/tests/src/Functional/Rest/FileResourceTestBase.php
+++ b/core/modules/file/tests/src/Functional/Rest/FileResourceTestBase.php
@@ -41,6 +41,23 @@ abstract class FileResourceTestBase extends EntityResourceTestBase {
    */
   protected $author;
 
+  /**
+   * Marks some tests as skipped because XML cannot be deserialized.
+   *
+   * @before
+   */
+  public function fileResourceTestBaseSkipTests(): void {
+    if ($this->name() === 'testPost') {
+      // Drupal does not allow creating file entities independently. It allows
+      // you to create file entities that are referenced from another entity
+      // (e.g. an image for a node's image field).
+      // For that purpose, there is the "file_upload" REST resource plugin.
+      // @see \Drupal\file\FileAccessControlHandler::checkCreateAccess()
+      // @see \Drupal\file\Plugin\rest\resource\FileUploadResource
+      $this->markTestSkipped('Drupal does not allow creating file entities independently.');
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
@@ -197,19 +214,6 @@ protected function getExpectedCacheContexts() {
     ];
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPost(): void {
-    // Drupal does not allow creating file entities independently. It allows you
-    // to create file entities that are referenced from another entity (e.g. an
-    // image for a node's image field).
-    // For that purpose, there is the "file_upload" REST resource plugin.
-    // @see \Drupal\file\FileAccessControlHandler::checkCreateAccess()
-    // @see \Drupal\file\Plugin\rest\resource\FileUploadResource
-    $this->markTestSkipped();
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/image/tests/src/Functional/Rest/ImageStyleResourceTestBase.php b/core/modules/image/tests/src/Functional/Rest/ImageStyleResourceTestBase.php
index 262ceea3a78777dab6eef11f13226ba7d4cb48e2..82c15600f339f355afeb659c406debb6ba8013fa 100644
--- a/core/modules/image/tests/src/Functional/Rest/ImageStyleResourceTestBase.php
+++ b/core/modules/image/tests/src/Functional/Rest/ImageStyleResourceTestBase.php
@@ -36,6 +36,18 @@ abstract class ImageStyleResourceTestBase extends ConfigEntityResourceTestBase {
    */
   protected $effectUuid;
 
+  /**
+   * Marks some tests as skipped because XML cannot be deserialized.
+   *
+   * @before
+   */
+  public function imageStyleResourceTestBaseSkipTests(): void {
+    if ($this->name() === 'testGet' && static::$format === 'xml') {
+      // @todo Remove this method override in https://www.drupal.org/node/2905655
+      $this->markTestSkipped('XML encoder does not support UUIDs as keys: makes ImageStyle config entity XML serialization crash');
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlAnonTest.php b/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlAnonTest.php
index d7e43ab03a1f8f1d9f7723118c51090e7d5ce86b..ebdd61ad5a39a24191a7116019f479a5e2e25d63 100644
--- a/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlAnonTest.php
+++ b/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlAnonTest.php
@@ -30,12 +30,4 @@ class ImageStyleXmlAnonTest extends ImageStyleResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testGet(): void {
-    // @todo Remove this method override in https://www.drupal.org/node/2905655
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlBasicAuthTest.php b/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlBasicAuthTest.php
index 269b32aafa8cb5b4df74683dd5b8fd0493671cbd..50ed72ece1ae9db546bd71f3d6eb11b8c251eaff 100644
--- a/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlBasicAuthTest.php
+++ b/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlBasicAuthTest.php
@@ -40,12 +40,4 @@ class ImageStyleXmlBasicAuthTest extends ImageStyleResourceTestBase {
    */
   protected static $auth = 'basic_auth';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testGet(): void {
-    // @todo Remove this method override in https://www.drupal.org/node/2905655
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlCookieTest.php b/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlCookieTest.php
index b3e9c820e8810429ffaf34948903cda03e7ce886..ba02374404034b8320c6c8b64b78e6431c42f4f8 100644
--- a/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlCookieTest.php
+++ b/core/modules/image/tests/src/Functional/Rest/ImageStyleXmlCookieTest.php
@@ -35,12 +35,4 @@ class ImageStyleXmlCookieTest extends ImageStyleResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testGet(): void {
-    // @todo Remove this method override in https://www.drupal.org/node/2905655
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/jsonapi/tests/src/Functional/FileUploadTest.php b/core/modules/jsonapi/tests/src/Functional/FileUploadTest.php
index 16e2de4a2fa402139b3c404d3c5a29e7bbae9bcc..36f972ebc1204291bc5584d66e8fd7c06b7bdeab 100644
--- a/core/modules/jsonapi/tests/src/Functional/FileUploadTest.php
+++ b/core/modules/jsonapi/tests/src/Functional/FileUploadTest.php
@@ -108,10 +108,21 @@ class FileUploadTest extends ResourceTestBase {
    */
   protected $fileStorage;
 
+  /**
+   * A list of test methods to skip.
+   *
+   * @var array
+   */
+  const SKIP_METHODS = ['testGetIndividual', 'testPostIndividual', 'testPatchIndividual', 'testDeleteIndividual', 'testCollection', 'testRelationships'];
+
   /**
    * {@inheritdoc}
    */
   protected function setUp(): void {
+    if (in_array($this->name(), static::SKIP_METHODS, TRUE)) {
+      $this->markTestSkipped('Irrelevant for this test');
+    }
+
     parent::setUp();
 
     $this->fileStorage = $this->container->get('entity_type.manager')
@@ -147,48 +158,6 @@ protected function setUp(): void {
     $this->entity = $this->entityStorage->loadUnchanged($this->entity->id());
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testGetIndividual(): void {
-    $this->markTestSkipped('Irrelevant for this test');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testPostIndividual(): void {
-    $this->markTestSkipped('Irrelevant for this test');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchIndividual(): void {
-    $this->markTestSkipped('Irrelevant for this test');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testDeleteIndividual(): void {
-    $this->markTestSkipped('Irrelevant for this test');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testCollection(): void {
-    $this->markTestSkipped('Irrelevant for this test');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testRelationships(): void {
-    $this->markTestSkipped('Irrelevant for this test');
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/node/tests/src/Functional/Rest/NodeResourceTestBase.php b/core/modules/node/tests/src/Functional/Rest/NodeResourceTestBase.php
index d8c663bb03c0d3e022b5e638e180c7e93f09b39f..f1defe8e1fc798423cd4b2fd14b0321f9ac502a5 100644
--- a/core/modules/node/tests/src/Functional/Rest/NodeResourceTestBase.php
+++ b/core/modules/node/tests/src/Functional/Rest/NodeResourceTestBase.php
@@ -40,6 +40,17 @@ abstract class NodeResourceTestBase extends EntityResourceTestBase {
    */
   protected $entity;
 
+  /**
+   * Marks some tests as skipped because XML cannot be deserialized.
+   *
+   * @before
+   */
+  public function nodeResourceTestBaseSkipTests(): void {
+    if (static::$format === 'xml' && $this->name() === 'testPatchPath') {
+      $this->markTestSkipped('Deserialization of the XML format is not supported.');
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/node/tests/src/Functional/Rest/NodeXmlAnonTest.php b/core/modules/node/tests/src/Functional/Rest/NodeXmlAnonTest.php
index 68faeeb20d1501024c10d834ba6135ba1e9efea7..96c2e40b9c11232b478daa6c6ee74655de5ca6c3 100644
--- a/core/modules/node/tests/src/Functional/Rest/NodeXmlAnonTest.php
+++ b/core/modules/node/tests/src/Functional/Rest/NodeXmlAnonTest.php
@@ -30,12 +30,4 @@ class NodeXmlAnonTest extends NodeResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/node/tests/src/Functional/Rest/NodeXmlBasicAuthTest.php b/core/modules/node/tests/src/Functional/Rest/NodeXmlBasicAuthTest.php
index b12d2969f24edccc0bf6ffff42ef76019ea0bdca..2f67b86eccbceb65c2c21d3569468c8056f2a469 100644
--- a/core/modules/node/tests/src/Functional/Rest/NodeXmlBasicAuthTest.php
+++ b/core/modules/node/tests/src/Functional/Rest/NodeXmlBasicAuthTest.php
@@ -40,12 +40,4 @@ class NodeXmlBasicAuthTest extends NodeResourceTestBase {
    */
   protected static $auth = 'basic_auth';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/node/tests/src/Functional/Rest/NodeXmlCookieTest.php b/core/modules/node/tests/src/Functional/Rest/NodeXmlCookieTest.php
index 53785df4e6c887b128a78d0b27d00f7291c6b134..117e219b537dabf2e519e03c09a5ed6473a85bbb 100644
--- a/core/modules/node/tests/src/Functional/Rest/NodeXmlCookieTest.php
+++ b/core/modules/node/tests/src/Functional/Rest/NodeXmlCookieTest.php
@@ -35,12 +35,4 @@ class NodeXmlCookieTest extends NodeResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlAnonTest.php b/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlAnonTest.php
index 71a2db986d98419e814ce17aa326ddee700d0253..b093726f6824e34a34a5f31fd01c15bfb1364ef2 100644
--- a/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlAnonTest.php
+++ b/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlAnonTest.php
@@ -30,12 +30,4 @@ class ModeratedNodeXmlAnonTest extends ModeratedNodeResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlBasicAuthTest.php b/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlBasicAuthTest.php
index 823bf23ad17778a49017d845c155400a2ed761b6..b0e462ea189917603a4214160ac1c1f13b66d61d 100644
--- a/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlBasicAuthTest.php
+++ b/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlBasicAuthTest.php
@@ -40,12 +40,4 @@ class ModeratedNodeXmlBasicAuthTest extends ModeratedNodeResourceTestBase {
    */
   protected static $auth = 'basic_auth';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlCookieTest.php b/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlCookieTest.php
index b8f0db39ac02caa249eb4e4580b8f79dde6170e0..05650cef177143ace5222f998d7e3be3c4ce6998 100644
--- a/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlCookieTest.php
+++ b/core/modules/rest/tests/src/Functional/EntityResource/ModeratedNode/ModeratedNodeXmlCookieTest.php
@@ -35,12 +35,4 @@ class ModeratedNodeXmlCookieTest extends ModeratedNodeResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/rest/tests/src/Functional/EntityResource/XmlEntityNormalizationQuirksTrait.php b/core/modules/rest/tests/src/Functional/EntityResource/XmlEntityNormalizationQuirksTrait.php
index 9698e5d1c1e67d6785739b52d22edcf2e00fc19f..8b74b107883a3b6aaf36e1a81664a3da22df0783 100644
--- a/core/modules/rest/tests/src/Functional/EntityResource/XmlEntityNormalizationQuirksTrait.php
+++ b/core/modules/rest/tests/src/Functional/EntityResource/XmlEntityNormalizationQuirksTrait.php
@@ -25,6 +25,17 @@ trait XmlEntityNormalizationQuirksTrait {
 
   use XmlNormalizationQuirksTrait;
 
+  /**
+   * Marks some tests as skipped because XML cannot be deserialized.
+   *
+   * @before
+   */
+  public function xmlEntityNormalizationQuirksTraitSkipTests(): void {
+    if (in_array($this->name(), ['testPatch', 'testPost'], TRUE)) {
+      $this->markTestSkipped('Deserialization of the XML format is not supported.');
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
@@ -148,20 +159,4 @@ protected function applyXmlConfigEntityDecodingQuirks(array $normalization) {
     return $normalization;
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPost(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatch(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/taxonomy/tests/src/Functional/Rest/TermResourceTestBase.php b/core/modules/taxonomy/tests/src/Functional/Rest/TermResourceTestBase.php
index cdd3d8fbb9d68e841b94e72778c347f0f3b3f7dd..ac887b31f1585567159575ee6456a710ee0cacbf 100644
--- a/core/modules/taxonomy/tests/src/Functional/Rest/TermResourceTestBase.php
+++ b/core/modules/taxonomy/tests/src/Functional/Rest/TermResourceTestBase.php
@@ -34,6 +34,17 @@ abstract class TermResourceTestBase extends EntityResourceTestBase {
    */
   protected $entity;
 
+  /**
+   * Marks some tests as skipped because XML cannot be deserialized.
+   *
+   * @before
+   */
+  public function termResourceTestBaseSkipTests(): void {
+    if (static::$format === 'xml' && $this->name() === 'testPatchPath') {
+      $this->markTestSkipped('Deserialization of the XML format is not supported.');
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
diff --git a/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlAnonTest.php b/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlAnonTest.php
index f5c7a2bc562d86b9e5f1a35ec1df254d470a483a..ca30a562fd3df5eb8fd9673b845fae7c0550e8e0 100644
--- a/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlAnonTest.php
+++ b/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlAnonTest.php
@@ -31,12 +31,4 @@ class TermXmlAnonTest extends TermResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlBasicAuthTest.php b/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlBasicAuthTest.php
index caa6e5e05564fb1f5f773f50057e340e312aead6..a2ecbaae21aa6404410ff5df48cd0edee4992582 100644
--- a/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlBasicAuthTest.php
+++ b/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlBasicAuthTest.php
@@ -41,12 +41,4 @@ class TermXmlBasicAuthTest extends TermResourceTestBase {
    */
   protected static $auth = 'basic_auth';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlCookieTest.php b/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlCookieTest.php
index 7eba87162c1f05381f7c62d77c3356162120c28a..9dd431715062e92128de8d2070edd3df4e060d66 100644
--- a/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlCookieTest.php
+++ b/core/modules/taxonomy/tests/src/Functional/Rest/TermXmlCookieTest.php
@@ -36,12 +36,4 @@ class TermXmlCookieTest extends TermResourceTestBase {
    */
   protected static $auth = 'cookie';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/user/tests/src/Functional/Rest/UserResourceTestBase.php b/core/modules/user/tests/src/Functional/Rest/UserResourceTestBase.php
index d3c03ff5b8c171252639d722a9a8cdd5c3a868d6..c423c06d5fed9edb7e0f8e7320f2d32221409e49 100644
--- a/core/modules/user/tests/src/Functional/Rest/UserResourceTestBase.php
+++ b/core/modules/user/tests/src/Functional/Rest/UserResourceTestBase.php
@@ -48,6 +48,23 @@ abstract class UserResourceTestBase extends EntityResourceTestBase {
    */
   protected static $secondCreatedEntityId = 5;
 
+  /**
+   * Marks some tests as skipped because XML cannot be deserialized.
+   *
+   * @before
+   */
+  public function userResourceTestBaseSkipTests(): void {
+    if (in_array($this->name(), ['testPatchDxForSecuritySensitiveBaseFields', 'testPatchSecurityOtherUser'], TRUE)) {
+      if (static::$format === 'xml') {
+        $this->markTestSkipped('Deserialization of the XML format is not supported.');
+      }
+
+      if (static::$auth === FALSE) {
+        $this->markTestSkipped('The anonymous user is never allowed to modify itself.');
+      }
+    }
+  }
+
   /**
    * {@inheritdoc}
    */
@@ -148,11 +165,6 @@ protected function getNormalizedPostEntity() {
    * Tests PATCHing security-sensitive base fields of the logged in account.
    */
   public function testPatchDxForSecuritySensitiveBaseFields(): void {
-    // The anonymous user is never allowed to modify itself.
-    if (!static::$auth) {
-      $this->markTestSkipped();
-    }
-
     $this->initAuthentication();
     $this->provisionEntityResource();
 
@@ -264,11 +276,6 @@ protected function assertRpcLogin($username, $password) {
    * Tests PATCHing security-sensitive base fields to change other users.
    */
   public function testPatchSecurityOtherUser(): void {
-    // The anonymous user is never allowed to modify other users.
-    if (!static::$auth) {
-      $this->markTestSkipped();
-    }
-
     $this->initAuthentication();
     $this->provisionEntityResource();
 
diff --git a/core/modules/user/tests/src/Functional/Rest/UserXmlAnonTest.php b/core/modules/user/tests/src/Functional/Rest/UserXmlAnonTest.php
index 9b25e90217b3e30b3356241ddfde25633782b2dc..436ad727eaf952b8eb1f48a53fc32a7e5f47cc7a 100644
--- a/core/modules/user/tests/src/Functional/Rest/UserXmlAnonTest.php
+++ b/core/modules/user/tests/src/Functional/Rest/UserXmlAnonTest.php
@@ -31,12 +31,4 @@ class UserXmlAnonTest extends UserResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchDxForSecuritySensitiveBaseFields(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/user/tests/src/Functional/Rest/UserXmlBasicAuthTest.php b/core/modules/user/tests/src/Functional/Rest/UserXmlBasicAuthTest.php
index 04384ea35c07927bc31a0b5d5a3c6d5dd07dde90..9ffe31296118f3eb1d4898b13f7edac569b83912 100644
--- a/core/modules/user/tests/src/Functional/Rest/UserXmlBasicAuthTest.php
+++ b/core/modules/user/tests/src/Functional/Rest/UserXmlBasicAuthTest.php
@@ -41,20 +41,4 @@ class UserXmlBasicAuthTest extends UserResourceTestBase {
    */
   protected static $auth = 'basic_auth';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchDxForSecuritySensitiveBaseFields(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchSecurityOtherUser(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/user/tests/src/Functional/Rest/UserXmlCookieTest.php b/core/modules/user/tests/src/Functional/Rest/UserXmlCookieTest.php
index f4257b75f72471c624edbeac81ea24d5d7266ad1..cf63ccbff179fa6281484b947346debe22256f8b 100644
--- a/core/modules/user/tests/src/Functional/Rest/UserXmlCookieTest.php
+++ b/core/modules/user/tests/src/Functional/Rest/UserXmlCookieTest.php
@@ -36,20 +36,4 @@ class UserXmlCookieTest extends UserResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchDxForSecuritySensitiveBaseFields(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchSecurityOtherUser(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlAnonTest.php b/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlAnonTest.php
index 2e3dd785b6948f9f16b6d7c07d96f3f5fe048adf..1b1ac04224dd1b68137e161c094ea20d12bc4b25 100644
--- a/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlAnonTest.php
+++ b/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlAnonTest.php
@@ -32,12 +32,4 @@ class WorkspaceXmlAnonTest extends WorkspaceResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlBasicAuthTest.php b/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlBasicAuthTest.php
index cbecdd36d2c7e3518a4e2bb063b3e6b9fa53211e..ce8a2502732bbbc1fd9b9fc27e691925265e7efc 100644
--- a/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlBasicAuthTest.php
+++ b/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlBasicAuthTest.php
@@ -42,12 +42,4 @@ class WorkspaceXmlBasicAuthTest extends WorkspaceResourceTestBase {
    */
   protected static $auth = 'basic_auth';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }
diff --git a/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlCookieTest.php b/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlCookieTest.php
index 9065e0714a19efddd13deeb81d1e261c190febe5..c29c539f062db2a3ae6d943b593b81e6d1c8bc04 100644
--- a/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlCookieTest.php
+++ b/core/modules/workspaces/tests/src/Functional/Rest/WorkspaceXmlCookieTest.php
@@ -37,12 +37,4 @@ class WorkspaceXmlCookieTest extends WorkspaceResourceTestBase {
    */
   protected $defaultTheme = 'stark';
 
-  /**
-   * {@inheritdoc}
-   */
-  public function testPatchPath(): void {
-    // Deserialization of the XML format is not supported.
-    $this->markTestSkipped();
-  }
-
 }