Closed yard-mschwartz closed 10 months ago
Hi! :wave: After reading this, I think I should have added an @
. Can you try restoring the code to its initial state then adding an @
, like so:
-if (! @$document->schemaValidate(__DIR__ . '/../../../../../doctrine-mapping.xsd')) {
+if (! $document->schemaValidate(__DIR__ . '/../../../../../doctrine-mapping.xsd')) {
After that, you should get a detailed error message.
I had the same problem after updating PHP 8.1 to 8.1.26. With this PHP update, the libxml2 library was also updated to version 2.12.2. After downgrading the libxml2 library to version 2.11.5, the problem has gone. I suppose two scenarios: 1) Some error in libxml2 library starting from version 2.12.x 2) There are new changes in the new version of libxml2 to which the "doctrine-mapping.xsd" file must be adapted.
Hi @greg0ire . If I add the @
-sign, the symfony console cache:clear
command finishes normally as expected. No errors come up.
Hi @mleko64 . I think you are right. A colleague of mine doesn't experience the same problem as I do. It appears we have different libxml versions.
Mine (on Linux Manjaro):
$ xmllint --version
xmllint: using libxml version 21202-GITv2.12.2
compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude Iconv ICU ISO8859X Unicode Regexps Automata Schemas Schematron Modules Debug Zlib Lzma
His (on a Mac):
$ xmllint --version
xmllint: using libxml version 20913
compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 FTP HTTP DTDValid HTML Legacy C14N Catalog XPath XPointer XInclude ICU ISO8859X Unicode Regexps Automata Schemas Schematron Modules Debug Zlib
Can you work on taking Doctrine out of the equation? This looks like a libxml bug. The behavior I expect when setting libxml_use_internal_errors
to true
is:
libxml_get_errors
I've been investigating a bit more, because this problem comes up for me in one project, but not in another. Let's call these two projects A and B respectively. I've been adding/removing packages in the two projects in order to synchronize them more.
What I discovered is that it seems to revolve around the doctrine/annotations
package. It needs to be on v2.
"doctrine/annotations": "^1.6"
. Project B doesn't include it, but uses v2 implicitly. When I add this line to Project B, it starts show the Invalid schema
error"doctrine/annotations": "^1.6"
from Project A, nothing changes. However, once I bump nelmio/api-doc-bundle
from ^3
to ^4
the problem is solved. Turns out v3 requires "doctrine/annotations": "^1.2"
, whereas v4 requires "doctrine/annotations": "^1.11|^2.0"
So while I suspect libxml is in a way involved, correctly defining and updating my packages also seems to solve things.
Not sure what is going on anymore. I did the above procedure with 90% of my project deleted. When I apply it to the full project, the Invalid Schema
warning is back. My brain hurts and I should probably take a break. :sweat_smile:
@greg0ire I tried as you said
Created a little sandbox project with the following files:
index.php
as belowdoctrine-mapping.xsd
taken from doctrine/orm/doctrine-mapping.xsdUser.orm.xml
taken from friendsofsymfony/user-bundle/Resources/config/doctrine-mapping/User.orm.xmlindex.php:
<?php
libxml_use_internal_errors(true);
try {
$document = new DOMDocument();
$document->load('User.orm.xml');
if (! $document->schemaValidate('doctrine-mapping.xsd')) {
print('<pre>');
var_dump(libxml_get_errors());
print('</pre>');
}
} finally {
libxml_clear_errors();
}
Then:
$ php -S 127.0.0.1:8001
Output:
array(5) {
[0]=>
object(LibXMLError)#2 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(77) "complex type 'sql-result-set-mapping': The content model is not determinist.
"
["file"]=>
string(63) "[.../]doctrine-mapping.xsd"
["line"]=>
int(146)
}
[1]=>
object(LibXMLError)#3 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(72) "complex type 'mapped-superclass': The content model is not determinist.
"
["file"]=>
string(63) "[.../]doctrine-mapping.xsd"
["line"]=>
int(227)
}
[2]=>
object(LibXMLError)#4 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(65) "complex type 'embeddable': The content model is not determinist.
"
["file"]=>
string(63) "[.../]doctrine-mapping.xsd"
["line"]=>
int(238)
}
[3]=>
object(LibXMLError)#5 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(66) "complex type 'many-to-one': The content model is not determinist.
"
["file"]=>
string(63) "[.../]doctrine-mapping.xsd"
["line"]=>
int(561)
}
[4]=>
object(LibXMLError)#6 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(65) "complex type 'one-to-one': The content model is not determinist.
"
["file"]=>
string(63) "[.../]doctrine-mapping.xsd"
["line"]=>
int(579)
}
}
Does this help? I assume it indicates a couple of errors in the XML-definition
This is intresting: https://discourse.gnome.org/t/libxml2-2-12-0-released/18063
Several bugs in the regex determinism checks were fixed. Invalid XML Schemas which previous versions erroneously accepted will now be rejected.
Yeah that's 99% it. My colleague who is on version 2.9.13 doesn't have these errors. In terms of solutions, I'm afraid they all go over my head.
The most reliable way forward for us is probably to rewrite our code so it doesn't use the FOS UserBundle anymore. Unfortunately, we will need to do this for multiple projects.
:bulb: OK I think I get it
Invalid Schema
is not an issue about the xml file, but about the xsd file itself, which explains why libxml_use_internal_errors(true);
does not remove the warning about the schema.Exactly, the error concerns the schema file (doctrine-mapping.xsd), not the current xml file that needs to be checked.
OK, well, let's take a look at the first error found by @yard-mschwartz I guess…
complex type 'sql-result-set-mapping': The content model is not determinist.
It refers to this: https://github.com/doctrine/orm/blob/2b91edc525bde4f23f9ada22a82c021b5c18c92b/doctrine-mapping.xsd#L146-L156
Let's try to get more info on that error, maybe from the PR that introduced it? There should be a commit labeled "regexp: Fix determinism checks" in libxml.
EDIT: here is the commit, couldn't find a PR for it: https://github.com/GNOME/libxml2/commits/a06eaa6119ca5b296b8105dc8c9a34ed5fc1f338
Related issue: https://gitlab.gnome.org/GNOME/libxml2/-/issues/624
I wonder if this could be caused by the <xs:any
tags in the schema… given their name, they sound like they could allow anything. If somebody with the error can try removing them and see if they still get the error about sql-result-set-mapping
, that would help.
[root@host ~]# ea-php82 -i | grep libxml
[...snip...]
libxml Version => 2.12.2
libxml
libxml2 Version => 2.12.2
libxslt compiled against libxml Version => 2.9.1
Linked files as they are now:
[root@host ~]# ea-php82 parse.php
<pre>array(5) {
[0]=>
object(LibXMLError)#2 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(77) "complex type 'sql-result-set-mapping': The content model is not determinist.
"
["file"]=>
string(26) "/root/doctrine-mapping.xsd"
["line"]=>
int(146)
}
[1]=>
object(LibXMLError)#3 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(72) "complex type 'mapped-superclass': The content model is not determinist.
"
["file"]=>
string(26) "/root/doctrine-mapping.xsd"
["line"]=>
int(227)
}
[2]=>
object(LibXMLError)#4 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(65) "complex type 'embeddable': The content model is not determinist.
"
["file"]=>
string(26) "/root/doctrine-mapping.xsd"
["line"]=>
int(238)
}
[3]=>
object(LibXMLError)#5 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(66) "complex type 'many-to-one': The content model is not determinist.
"
["file"]=>
string(26) "/root/doctrine-mapping.xsd"
["line"]=>
int(561)
}
[4]=>
object(LibXMLError)#6 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(65) "complex type 'one-to-one': The content model is not determinist.
"
["file"]=>
string(26) "/root/doctrine-mapping.xsd"
["line"]=>
int(579)
}
}
</pre>
After commenting the <xs:any
tag in the sql-result-set-mapping
type:
[root@host ~]# ea-php82 parse.php
<pre>array(4) {
[0]=>
object(LibXMLError)#2 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(72) "complex type 'mapped-superclass': The content model is not determinist.
"
["file"]=>
string(26) "/root/doctrine-mapping.xsd"
["line"]=>
int(227)
}
[1]=>
object(LibXMLError)#3 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(65) "complex type 'embeddable': The content model is not determinist.
"
["file"]=>
string(26) "/root/doctrine-mapping.xsd"
["line"]=>
int(238)
}
[2]=>
object(LibXMLError)#4 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(66) "complex type 'many-to-one': The content model is not determinist.
"
["file"]=>
string(26) "/root/doctrine-mapping.xsd"
["line"]=>
int(561)
}
[3]=>
object(LibXMLError)#5 (6) {
["level"]=>
int(2)
["code"]=>
int(3070)
["column"]=>
int(0)
["message"]=>
string(65) "complex type 'one-to-one': The content model is not determinist.
"
["file"]=>
string(26) "/root/doctrine-mapping.xsd"
["line"]=>
int(579)
}
}
</pre>
So, yes, it does appear to be related to those tags and the issue reported by @shyim with Shopware's XSD at least looks somewhat related.
It's not all of the any's, either. This passes for sql-result-set-mapping
:
<xs:complexType name="sql-result-set-mapping">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="entity-result" type="orm:entity-result"/>
<xs:element name="column-result" type="orm:column-result"/>
<!-- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/> -->
</xs:choice>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
This is worrying: https://www.xml.com/axml/notes/Determinism.html This is a bit more understandable: https://www.xml.com/axml/target.html#determinism
Translating the original sql-result-set-mapping
into english, I think it says that when you have a tag sql-result-set-mapping
, then you can must have a name
attribute, and then inside you can have one of:
entity-result
column-result
If you try commenting out the other any
, and not the first, does it also pass? If yes, this might mean that when you put something that isn't entity-result
or column-result
in there, it doesn't know whether it should validated that against the first any
, or the second one?
When you know exactly which elements will be inside the XML I would get rid of the xsd:any
. In our case it was allowed to add custom elements which were not described in the xsd.
Looking at the repository history, I can find this commit by myself: 12babcc1c24759002605057b79e5bc6f93e3bf0a
This is interesting as well: https://github.com/doctrine-extensions/DoctrineExtensions/issues/2613
Yeah, there's a whole chain of issues on the DoctrineExtensions repo about the XML mappings and validation issues in general, which to my understanding of https://github.com/doctrine-extensions/DoctrineExtensions/issues/2055 haven't even worked with the MongoDB ODM for years since they went strict on their schema and totally disallowed extending like the ORM had allowed.
A way out of this would be to make the default schema stricter (remove all the xs:any
), so that it validates, and then allow defining custom schemas: https://github.com/doctrine/orm/issues/11123
Hello ! I've got the same issue, and I don't understand how to solve it. I've tried what I've seen here, but nothing changes. The problem appeared when I tried to upgrade my Project from Symfony 6.3 to 6.4. My libxml version is 2.9.1
Hi @AlbanDeveloppeur, from our current understanding the problem should only occur with libxml 2.12 onwards. Are you sure it's the same issue? Perhaps the error is the same, but the cause is different (e.g. you're not using friendsofsymfony/user-bundle
)
I work with Symfony : 6.4.1 PHP : 8.2.10 doctrine/orm : 2.17.2 vich/uploader-bundle : 2.3.0 libxml : 2.9.1
Summary Hello ! To update my issue from this comment : https://github.com/doctrine/orm/issues/11117#issuecomment-1864457851
In the development environnement I have this error message when I try to use php bin/console cache:clear
Warning: DOMDocument::schemaValidate(): Invalid Schema
And when I'm in production environnement, I have this error message :
In MappingException.php line 1004:
libxml error: complex type 'mapped-superclass': The content model is not determinist.
in /home/admin/preprod/vendor/doctrine/orm/doctrine-mapping.xsd atline 227
libxml error: complex type 'embeddable': The content model is not determinist.
in /home/admin/preprod/vendor/doctrine/orm/doctrine-mapping.xsd at line 238
libxml error: complex type 'many-to-one': The content model is not determinist.
in /home/admin/preprod/vendor/doctrine/orm/doctrine-mapping.xsd at line 561
libxml error: complex type 'one-to-one': The content model is not determinist.
in /home/admin/preprod/vendor/doctrine/orm/doctrine-mapping.xsd at line 579
So for now, it seems to be the same problem you've discovered here.
After a lot of manipulations, I tried to delete some vendors. And after deleting vich/uploader-bundle
, both errors in the development and production environment have disappeared and I can do php bin/console cache:clear
again.
I don't know why this vendor created this type of issue, but in my case, deleting this vendor solved my problem.
It does seem to be the same error. How did you determine the libxml version? I think looking at the output of php -i
might be the right way to do this in case it's possible to have several different versions on your system
Hello
I have exactly the same problem, the only bundle I added is symfonycasts/verify-email-bundle
Using PHP 8.2.14 (compiled against libxml 2.12.0) with a Symfony 7 app.
This issue basically renders Symfony unusable. You can not use make:entity
or any other Doctrine workflow.
Can confirm though that the removal of xsd:any
from doctrine-mapping.xsd
makes things work again.
Don't use 2.12.0 or 2.12.1, those versions had bugs causing PHP to segfault. https://github.com/php/php-src/issues/12847
php -i | grep libxml
libxml Version => 2.12.3
libxml
libxml2 Version => 2.12.3
php -v
PHP 8.2.14 (cli) (built: Dec 21 2023 14:02:51) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.14, Copyright (c) Zend Technologies
pacman -Ss libxml
core/libxml2 2.12.3-1 [installed]
XML C parser and toolkit
extra/libxmlb 0.3.14-1 [installed]
Library to help create and query binary XML blobs
extra/python-lxml 4.9.2-3 [installed]
Python3 binding for the libxml2 and libxslt libraries
As far as I know the version 2.12.3 should run fine, but it produces the same error.
As far as I know the version 2.12.3 should run fine
2.12.3 might not have the segmentation fault, but I see no reason why it would no longer have the schema validation error.
Can confirm 2.12.3
still causes the schema validation error. Only remedy still remains xsd:any
change.
Don't really know if this is a fix or just some cheat. I've had this problem which seems to be originating from gesdinet/jwt-refresh-token-bundle
. I came across https://github.com/doctrine-extensions/DoctrineExtensions/issues/2613 which suggested setting validate_xml_mapping: false
. This seemed to fix my issue.
Some probably useful info:
$ php -i | grep libxml
libxml Version => 2.12.3
libxml
libxml2 Version => 2.12.3
libxslt compiled against libxml Version => 2.12.0
$ php -v
PHP 8.2.14 (cli) (built: Dec 21 2023 14:02:51) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.14, Copyright (c) Zend Technologies
with Zend OPcache v8.2.14, Copyright (c), by Zend Technologies
with Xdebug v3.2.2, Copyright (c) 2002-2023, by Derick Rethans
A little excerpt from my composer.json
{
"require": {
"php": "^8.1.0",
"doctrine/orm": "^2.18|^3",
"gesdinet/jwt-refresh-token-bundle": "^1.1"
}
}
I'm on Symfony version 6.4.2
. Hope this sheds some light or possibly helps someone someway.
Don't really know if this is a fix or just some cheat.
It's a cheat. That validate_xml_mapping
setting disables the XML schema validation, preventing the error in this thread from being triggered in the first place. And IIRC, that setting is no-op'd with ORM 3 and XML validation is always required.
still facing DOMDocument::schemaValidate(): Invalid Schema
error on libxml2 from HEAD commit
php -i | grep libxml
libxml Version => 2.13.0
libxml
libxml2 Version => 2.13.0
php -v
PHP 8.3.1 (cli) (built: Jan 15 2024 23:10:16) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.1, Copyright (c) Zend Technologies
@IndraGunawan why do you expect it to be fixed?
I have the same issue cause by : vich/uploader-bundle
why do you expect it to be fixed?
@greg0ire the issue was on libxml, is it? or xsd file needs some changes?
i downgraded libxml2 to 2.11.6 and compile the PHP 8.3.1. i don't see invalid schema
error
php -i | grep libxml
libxml Version => 2.11.6
libxml
libxml2 Version => 2.11.6
the issue was on libxml
Why are you using the past tense? The issue still exists. Because of new libxml versions that are stricter since libxml 2.12, the XSD file is now considered invalid, and will need some changes, yes.
@greg0ire so we need to update XSD file to make it valid, and the issue is solved ?
Yes, but how we update it might cause issues to other users. For instance, @mbabker maintains a library that relies on adding extra elements to the mapping file (see https://github.com/doctrine-extensions/DoctrineExtensions/issues/2318). Right now, I think it works thanks to these any
elements we need to remove.
This is why a solution could be to allow custom schemas: https://github.com/doctrine/orm/issues/11123 . Users who would need to use extensions could specify a more complicated schema allowing for them. Such schemas could be maintained by libraries, so they would use e.g. vendor/doctrine-extensions/DoctrineExtensions/extended-schema.xsd
.
@mbabker could you maybe work on producing an XSD file that:
gedmo/doctrine-extensions
to work?Note that it's possible to reproduce the issue without PHP, like this:
$ xmllint --schema doctrine-mapping.xsd tests/Doctrine/Tests/ORM/Mapping/xml/DDC2429Book.orm.xml --noout
doctrine-mapping.xsd:175: element complexType: Schemas parser error : complex type 'mapped-superclass': The content model is not determinist.
doctrine-mapping.xsd:186: element complexType: Schemas parser error : complex type 'embeddable': The content model is not determinist.
doctrine-mapping.xsd:506: element complexType: Schemas parser error : complex type 'many-to-one': The content model is not determinist.
doctrine-mapping.xsd:524: element complexType: Schemas parser error : complex type 'one-to-one': The content model is not determinist.
WXS schema doctrine-mapping.xsd failed to compile
Applying the following patch appears to fix the issue:
diff --git a/doctrine-mapping.xsd b/doctrine-mapping.xsd
index 5d6dfc812..67e2ac438 100644
--- a/doctrine-mapping.xsd
+++ b/doctrine-mapping.xsd
@@ -176,7 +176,6 @@
<xs:complexContent>
<xs:extension base="orm:entity">
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
<xs:anyAttribute namespace="##other"/>
</xs:extension>
@@ -187,7 +186,6 @@
<xs:complexContent>
<xs:extension base="orm:entity">
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
</xs:extension>
</xs:complexContent>
@@ -510,7 +508,6 @@
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="join-column" type="orm:join-column"/>
<xs:element name="join-columns" type="orm:join-columns"/>
- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
@@ -528,7 +525,6 @@
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="join-column" type="orm:join-column"/>
<xs:element name="join-columns" type="orm:join-columns"/>
- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
$ /usr/local/opt/libxml2/bin/xmllint --version
/usr/local/opt/libxml2/bin/xmllint: using libxml version 21203
compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 HTTP DTDValid HTML C14N Catalog XPath XPointer XInclude Iconv ICU ISO8859X Unicode Regexps Automata Schemas Schematron Modules Debug Zlib
Running xmllint
against this file with the below schema which imports the ORM 2.17.2 XSD and the doctrine-extensions 3.14.0 XSD:
<?xml version="1.0" encoding="UTF-8"?>
<schema elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://doctrine-project.org/schemas/orm/doctrine-mapping" schemaLocation="./vendor/doctrine/orm/doctrine-mapping.xsd"/>
<import namespace="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping" schemaLocation="./vendor/gedmo/doctrine-extensions/schemas/orm/doctrine-extensions-mapping-2-2.xsd"/>
</schema>
$ /usr/local/opt/libxml2/bin/xmllint --schema doctrine-mapping.xsd Sluggable.dcm.xml --noout
vendor/doctrine/orm/doctrine-mapping.xsd:146: element complexType: Schemas parser error : complex type 'sql-result-set-mapping': The content model is not determinist.
vendor/doctrine/orm/doctrine-mapping.xsd:227: element complexType: Schemas parser error : complex type 'mapped-superclass': The content model is not determinist.
vendor/doctrine/orm/doctrine-mapping.xsd:238: element complexType: Schemas parser error : complex type 'embeddable': The content model is not determinist.
vendor/doctrine/orm/doctrine-mapping.xsd:561: element complexType: Schemas parser error : complex type 'many-to-one': The content model is not determinist.
vendor/doctrine/orm/doctrine-mapping.xsd:579: element complexType: Schemas parser error : complex type 'one-to-one': The content model is not determinist.
WXS schema doctrine-mapping.xsd failed to compile
With this diff (based on the 2.17.2 tag), it validates:
diff --git a/doctrine-mapping.xsd b/doctrine-mapping.xsd
index a9b1a367e..4c78c805c 100644
--- a/doctrine-mapping.xsd
+++ b/doctrine-mapping.xsd
@@ -148,7 +148,7 @@
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="entity-result" type="orm:entity-result"/>
<xs:element name="column-result" type="orm:column-result"/>
- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
+ <!-- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/> -->
</xs:choice>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
@@ -228,7 +228,7 @@
<xs:complexContent>
<xs:extension base="orm:entity">
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
+ <!-- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/> -->
</xs:choice>
<xs:anyAttribute namespace="##other"/>
</xs:extension>
@@ -239,7 +239,7 @@
<xs:complexContent>
<xs:extension base="orm:entity">
<xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
+ <!-- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/> -->
</xs:choice>
</xs:extension>
</xs:complexContent>
@@ -565,7 +565,7 @@
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="join-column" type="orm:join-column"/>
<xs:element name="join-columns" type="orm:join-columns"/>
- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
+ <!-- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/> -->
</xs:choice>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
@@ -583,7 +583,7 @@
<xs:choice minOccurs="0" maxOccurs="1">
<xs:element name="join-column" type="orm:join-column"/>
<xs:element name="join-columns" type="orm:join-columns"/>
- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
+ <!-- <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/> -->
</xs:choice>
<xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
</xs:choice>
Thanks @greg0ire for fixing this nasty problem. If I'm not mistaken, the fix seems to be scheduled for 2.18.x. When can I expect 2.18.0 to be made available to the general public?
EDIT My bad, it's already in 2.17.3. Thanks again!
BC Break Report
Summary
Currently upgrading one our projects to PHP 8.2 from PHP 7.4. Application runs fine on PHP 7.4 with
doctrine/orm
already on 2.17.1. However, when I bump the PHP-version to^8.2
and runcomposer upgrade
, the subsequentsymfony console cache:clear
fails with anWarning: DOMDocument::schemaValidate(): Invalid Schema
error.Previous behavior
The commands
symfony console cache:clear
works just fine.Current behavior
When I bump the PHP-version to
^8.2
and runcomposer upgrade
, the subsequentsymfony console cache:clear
fails with the following error:Line 1006 is the
schemaValidate()
in the following code block in[...]/vendor/doctrine/orm/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php
:When I dump the
$file
that's being processed, it outputs[...]/vendor/friendsofsymfony/user-bundle/Resources/config/doctrine-mapping/User.orm.xml
. So you might think this problem is related to that particular bundle, where I also created an issue, however that packages also didn't change versions during the version bump to PHP 8.2. Bothdoctrine/orm
andfriendsofsymfony/user-bundle
were already on the latest version.I messed around a little bit, to see if I could get some more info on the error. If I change the first line of that code block to
$backedUpErrorSetting = libxml_use_internal_errors(false);
, it shows a bit more information:I assume I have an error somewhere in my model definition, that somehow was acceptable before the upgrade, but I have a hard time pinpointing where that might be. The
friendsofsymfony/user-bundle
file looks fine, and also works fine in another project we upgraded to PHP 8.2.EDIT package overview and User model removed, because in the end they had nothing to do with this issue
Any suggestions?