diff --git a/ros2bag/package.xml b/ros2bag/package.xml
index c1d89c424f..7fd74d31f6 100644
--- a/ros2bag/package.xml
+++ b/ros2bag/package.xml
@@ -22,6 +22,7 @@
ament_copyright
ament_flake8
ament_pep257
+ ament_xmllint
launch_testing
launch_testing_ros
python3-pytest
diff --git a/ros2bag/test/test_xmllint.py b/ros2bag/test/test_xmllint.py
new file mode 100644
index 0000000000..08bf7fd78c
--- /dev/null
+++ b/ros2bag/test/test_xmllint.py
@@ -0,0 +1,23 @@
+# Copyright 2019 Open Source Robotics Foundation, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from ament_xmllint.main import main
+import pytest
+
+
+@pytest.mark.linter
+@pytest.mark.xmllint
+def test_xmllint() -> None:
+ rc = main(argv=[])
+ assert rc == 0, 'Found errors'
diff --git a/rosbag2_examples/rosbag2_examples_py/package.xml b/rosbag2_examples/rosbag2_examples_py/package.xml
index b4a9a43334..f0a5ed6e78 100644
--- a/rosbag2_examples/rosbag2_examples_py/package.xml
+++ b/rosbag2_examples/rosbag2_examples_py/package.xml
@@ -15,6 +15,7 @@
ament_copyright
ament_flake8
ament_pep257
+ ament_xmllint
python3-pytest
diff --git a/rosbag2_examples/rosbag2_examples_py/test/test_xmllint.py b/rosbag2_examples/rosbag2_examples_py/test/test_xmllint.py
new file mode 100644
index 0000000000..08bf7fd78c
--- /dev/null
+++ b/rosbag2_examples/rosbag2_examples_py/test/test_xmllint.py
@@ -0,0 +1,23 @@
+# Copyright 2019 Open Source Robotics Foundation, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from ament_xmllint.main import main
+import pytest
+
+
+@pytest.mark.linter
+@pytest.mark.xmllint
+def test_xmllint() -> None:
+ rc = main(argv=[])
+ assert rc == 0, 'Found errors'