From 37420a4e66f24711aed5584c8f689ee3813fa747 Mon Sep 17 00:00:00 2001 From: Toon Verwerft Date: Tue, 28 May 2024 13:41:37 +0200 Subject: [PATCH 1/2] Read restriction child sequences --- clover.xml | 1984 ++++++++++++++++++------------------ src/SchemaReader.php | 5 + tests/RestrictionsTest.php | 38 + 3 files changed, 1036 insertions(+), 991 deletions(-) diff --git a/clover.xml b/clover.xml index 8c731102..7e0532b5 100644 --- a/clover.xml +++ b/clover.xml @@ -1,54 +1,54 @@ - - - + + + - + - - - - - - - - - - - + + + + + + + + + + + - + - + - + - - - + + + - - - - + + + + - + @@ -58,8 +58,8 @@ - - + + @@ -70,45 +70,45 @@ - - + + - + - + - + - - + + - + - + - + - - - + + + @@ -117,16 +117,16 @@ - + - + - + @@ -134,22 +134,22 @@ - - - - + + + + - - - - - - - - + + + + + + + + @@ -164,32 +164,32 @@ - + - + - + - + - - - - + + + + - + @@ -203,48 +203,48 @@ - + - + - - - + + + - - + + - + - + - + - - - - - - - - - - - + + + + + + + + + + + @@ -261,322 +261,322 @@ - + - + - + - + - + - - - - - - - - + + + + + + + + - + - + - + - + - - - - - + + + + + - + - + - - + + - + - + - - - + + + - - + + - + - - - - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - + + - - - - - - - - + + + + + + + + - - + + - - - - - - - - - - - + + + + + + + + + + + - + - - - - - - - + + + + + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - + + - + - + - - - + + + - + - + - - + + - - + + - + - - - - - + + + + + - - + + - - - - + + + + - - + + - + - + @@ -585,32 +585,32 @@ - - - - + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + @@ -618,250 +618,250 @@ - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -878,523 +878,525 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - + + @@ -1440,6 +1442,6 @@ - + diff --git a/src/SchemaReader.php b/src/SchemaReader.php index df0fd4bc..9cf259ae 100644 --- a/src/SchemaReader.php +++ b/src/SchemaReader.php @@ -946,6 +946,11 @@ function (\DOMElement $node, \DOMElement $childNode) use ($type, $restriction): if ($type instanceof BaseComplexType) { $this->loadChildAttributesAndAttributeGroups($type, $node, $childNode); } + + if ($type instanceof ElementContainer) { + $this->loadSequenceChildNode($type, $node, $childNode, null, null); + } + if (null !== ($restrictionType = RestrictionType::tryFrom($childNode->localName))) { $restriction->addCheck( $restrictionType, diff --git a/tests/RestrictionsTest.php b/tests/RestrictionsTest.php index b0d6b569..32e817a8 100644 --- a/tests/RestrictionsTest.php +++ b/tests/RestrictionsTest.php @@ -578,4 +578,42 @@ public function testAttributeInExtensionInRestriction(): void self::assertEquals('string', $attribute->getType()->getName()); self::assertEquals(AttributeSingle::USE_OPTIONAL, $attribute->getUse()); } + + public function testElementOverrideInRestriction(): void + { + $schema = $this->reader->readString( + ' + + + + + + + + + + + + + + + + + + + + + ' + ); + + $rootType = $schema->getTypes()['testType']; + self::assertInstanceOf(ComplexType::class, $rootType); + + $element = $rootType->getElements()[0]; + self::assertEquals('x_item', $element->getName()); + + $baseType = $rootType->getRestriction()->getBase(); + self::assertInstanceOf(ComplexType::class, $baseType); + self::assertEquals('Array', $baseType->getName()); + } } From 4dfda4a45a5398b033916621603c0530a9eeb97c Mon Sep 17 00:00:00 2001 From: Github Actions Bot <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 11:42:43 +0000 Subject: [PATCH 2/2] Update code coverage badge --- clover.xml | 102 ++++++++++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/clover.xml b/clover.xml index 7e0532b5..05f71659 100644 --- a/clover.xml +++ b/clover.xml @@ -1,10 +1,10 @@ - - - + + + - + @@ -21,19 +21,19 @@ - + - + - + @@ -48,7 +48,7 @@ - + @@ -74,16 +74,16 @@ - + - + - + @@ -93,16 +93,16 @@ - + - + - + @@ -117,16 +117,16 @@ - + - + - + @@ -164,22 +164,22 @@ - + - + - + - + @@ -189,7 +189,7 @@ - + @@ -203,10 +203,10 @@ - + - + @@ -221,16 +221,16 @@ - + - + - + @@ -261,19 +261,19 @@ - + - + - + - + - + @@ -287,25 +287,25 @@ - + - + - + - + @@ -316,13 +316,13 @@ - + - + @@ -334,10 +334,10 @@ - + - + @@ -350,7 +350,7 @@ - + @@ -360,7 +360,7 @@ - + @@ -495,10 +495,10 @@ - + - + @@ -510,13 +510,13 @@ - + - + @@ -527,13 +527,13 @@ - + - + @@ -547,7 +547,7 @@ - + @@ -574,7 +574,7 @@ - + @@ -1388,7 +1388,7 @@ - +