diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
index 5574fdc7..2f5f09c4 100644
--- a/phpstan-baseline.neon
+++ b/phpstan-baseline.neon
@@ -625,6 +625,36 @@ parameters:
count: 1
path: src/lib/eZ/FieldType/RichText/RichTextStorage.php
+ -
+ message: "#^Offset 1 does not exist on array\\{0\\?\\: string, 1\\?\\: ''\\|'ezremote\\://', 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/FieldType/RichText/RichTextStorage.php
+
+ -
+ message: "#^Offset 1 does not exist on array\\{0\\?\\: string, 1\\?\\: string, 2\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/FieldType/RichText/RichTextStorage.php
+
+ -
+ message: "#^Offset 2 does not exist on array\\{0\\?\\: string, 1\\: 'ezremote\\://', 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/FieldType/RichText/RichTextStorage.php
+
+ -
+ message: "#^Offset 2 does not exist on array\\{0\\?\\: string, 1\\?\\: ''\\|'ezremote\\://', 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 2
+ path: src/lib/eZ/FieldType/RichText/RichTextStorage.php
+
+ -
+ message: "#^Offset 2 does not exist on array\\{0\\?\\: string, 1\\?\\: string, 2\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/FieldType/RichText/RichTextStorage.php
+
+ -
+ message: "#^Offset 3 does not exist on array\\{0\\?\\: string, 1\\?\\: ''\\|'ezremote\\://', 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/FieldType/RichText/RichTextStorage.php
+
-
message: "#^Parameter \\#1 \\$source of method DOMDocument\\:\\:loadXML\\(\\) expects string, array\\|bool\\|float\\|int\\|string\\|null given\\.$#"
count: 2
@@ -770,6 +800,21 @@ parameters:
count: 4
path: src/lib/eZ/RichText/Converter/Link.php
+ -
+ message: "#^Offset 1 does not exist on array\\{0\\?\\: string, 1\\?\\: string, 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/Converter/Link.php
+
+ -
+ message: "#^Offset 2 does not exist on array\\{0\\?\\: string, 1\\?\\: string, 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/Converter/Link.php
+
+ -
+ message: "#^Offset 3 does not exist on array\\{0\\?\\: string, 1\\?\\: string, 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/Converter/Link.php
+
-
message: "#^Parameter \\#1 \\$locationId of method eZ\\\\Publish\\\\API\\\\Repository\\\\LocationService\\:\\:loadLocation\\(\\) expects int, int\\|null given\\.$#"
count: 1
@@ -915,6 +960,21 @@ parameters:
count: 1
path: src/lib/eZ/RichText/Converter/Render/Embed.php
+ -
+ message: "#^Offset 1 does not exist on array\\{0\\?\\: string, 1\\?\\: 'ezcontent'\\|'ezlocation', 2\\?\\: numeric\\-string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/Converter/Render/Embed.php
+
+ -
+ message: "#^Offset 2 does not exist on array\\{0\\?\\: string, 1\\: 'ezcontent', 2\\?\\: numeric\\-string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/Converter/Render/Embed.php
+
+ -
+ message: "#^Offset 2 does not exist on array\\{0\\?\\: string, 1\\: 'ezlocation', 2\\?\\: numeric\\-string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/Converter/Render/Embed.php
+
-
message: "#^PHPDoc tag @var has invalid value \\(\\$embed \\\\DOMElement\\)\\: Unexpected token \"\\$embed\", expected type at offset 9$#"
count: 1
@@ -1105,6 +1165,16 @@ parameters:
count: 1
path: src/lib/eZ/RichText/RelationProcessor.php
+ -
+ message: "#^Offset 1 does not exist on array\\{0\\?\\: string, 1\\?\\: non\\-empty\\-string, 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/RelationProcessor.php
+
+ -
+ message: "#^Offset 2 does not exist on array\\{0\\?\\: string, 1\\?\\: non\\-empty\\-string, 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/RelationProcessor.php
+
-
message: "#^Method EzSystems\\\\EzPlatformRichText\\\\eZ\\\\RichText\\\\RendererInterface\\:\\:renderContentEmbed\\(\\) has parameter \\$parameters with no value type specified in iterable type array\\.$#"
count: 1
@@ -1150,6 +1220,16 @@ parameters:
count: 1
path: src/lib/eZ/RichText/Validator/InternalLinkValidator.php
+ -
+ message: "#^Offset 1 does not exist on array\\{0\\?\\: string, 1\\?\\: non\\-empty\\-string, 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/Validator/InternalLinkValidator.php
+
+ -
+ message: "#^Offset 2 does not exist on array\\{0\\?\\: string, 1\\?\\: non\\-empty\\-string, 2\\?\\: string, 3\\?\\: string\\}\\.$#"
+ count: 1
+ path: src/lib/eZ/RichText/Validator/InternalLinkValidator.php
+
-
message: "#^Parameter \\#1 \\$locationId of method eZ\\\\Publish\\\\SPI\\\\Persistence\\\\Content\\\\Location\\\\Handler\\:\\:load\\(\\) expects int, string given\\.$#"
count: 1
@@ -1629,10 +1709,7 @@ parameters:
message: "#^Cannot access property \\$id on eZ\\\\Publish\\\\API\\\\Repository\\\\Values\\\\Content\\\\Field\\|null\\.$#"
count: 1
path: tests/integration/eZ/API/RichTextFieldTypeIntegrationTest.php
- -
- message: "#^Cannot call method fetchOne\\(\\) on Doctrine\\\\DBAL\\\\ForwardCompatibility\\\\Result\\|int\\|string\\.$#"
- count: 1
- path: tests/integration/eZ/API/RichTextFieldTypeIntegrationTest.php
+
-
message: "#^Cannot access property \\$value on eZ\\\\Publish\\\\API\\\\Repository\\\\Values\\\\Content\\\\Field\\|null\\.$#"
count: 1
@@ -1648,6 +1725,11 @@ parameters:
count: 1
path: tests/integration/eZ/API/RichTextFieldTypeIntegrationTest.php
+ -
+ message: "#^Cannot call method fetchOne\\(\\) on Doctrine\\\\DBAL\\\\ForwardCompatibility\\\\Result\\|int\\|string\\.$#"
+ count: 1
+ path: tests/integration/eZ/API/RichTextFieldTypeIntegrationTest.php
+
-
message: "#^Method EzSystems\\\\IntegrationTests\\\\EzPlatformRichText\\\\eZ\\\\API\\\\RichTextFieldTypeIntegrationTest\\:\\:__construct\\(\\) has parameter \\$data with no value type specified in iterable type array\\.$#"
count: 1
diff --git a/src/lib/eZ/RichText/Resources/schemas/docbook/docbook.iso.sch b/src/lib/eZ/RichText/Resources/schemas/docbook/docbook.iso.sch
index c206b52c..a5ee69dd 100644
--- a/src/lib/eZ/RichText/Resources/schemas/docbook/docbook.iso.sch
+++ b/src/lib/eZ/RichText/Resources/schemas/docbook/docbook.iso.sch
@@ -253,20 +253,13 @@
- links must start with one of: http://, https://, mailto:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #
- using characters [< > "] in links is not allowed
+ mode="schematron-get-full-path-2">links must start with one of: http://, https://, mailto:, tel:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #
diff --git a/src/lib/eZ/RichText/Resources/schemas/docbook/docbook.iso.sch.xsl b/src/lib/eZ/RichText/Resources/schemas/docbook/docbook.iso.sch.xsl
index 6e4551bc..494d3a2b 100644
--- a/src/lib/eZ/RichText/Resources/schemas/docbook/docbook.iso.sch.xsl
+++ b/src/lib/eZ/RichText/Resources/schemas/docbook/docbook.iso.sch.xsl
@@ -79,7 +79,4 @@
-links must start with one of: http://, https://, mailto:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #
-
-
-using characters [< > "] in links is not allowed
+links must start with one of: http://, https://, mailto:, tel:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #
diff --git a/tests/lib/eZ/FieldType/RichTextTest.php b/tests/lib/eZ/FieldType/RichTextTest.php
index 3c4611ae..2ff29b2a 100644
--- a/tests/lib/eZ/FieldType/RichTextTest.php
+++ b/tests/lib/eZ/FieldType/RichTextTest.php
@@ -224,7 +224,7 @@ public function providerForTestValidate()
[
new ValidationError(
"Validation of XML content failed:\n" .
- '/section/para/link: links must start with one of: http://, https://, mailto:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #',
+ '/section/para/link: links must start with one of: http://, https://, mailto:, tel:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #',
null,
[],
'xml'
@@ -239,7 +239,7 @@ public function providerForTestValidate()
[
new ValidationError(
"Validation of XML content failed:\n" .
- '/section/para/link: links must start with one of: http://, https://, mailto:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #',
+ '/section/para/link: links must start with one of: http://, https://, mailto:, tel:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #',
null,
[],
'xml'
@@ -252,13 +252,6 @@ public function providerForTestValidate()
link
',
[
- new ValidationError(
- "Validation of XML content failed:\n" .
- '/section/para/link: using characters [< > "] in links is not allowed',
- null,
- [],
- 'xml'
- ),
],
],
[
@@ -269,7 +262,7 @@ public function providerForTestValidate()
[
new ValidationError(
"Validation of XML content failed:\n" .
- '/section/para/link: links must start with one of: http://, https://, mailto:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #',
+ '/section/para/link: links must start with one of: http://, https://, mailto:, tel:, ezcontent://, ezlocation://, ezremote://, ezurl://, /, #',
null,
[],
'xml'