Skip to content

[ERROR 3070] complex type 'container': #62480

@faca5

Description

@faca5

Symfony version(s) affected

2.8.0

Description

Hello,

After we updated the software, one of the websites stopped working. The website is somewhat old, and until now there had been no issues.

We are receiving the following error:

Fatal error: Uncaught InvalidArgumentException: [ERROR 3070] complex type 'container': The content model is not determinist. (in file:////home/<username>/public_html/vendor/symfony/dependency-injection/Loader/schema/dic/services/services-1.0.xsd - line 20, column 0) in /home/<username>/public_html/vendor/symfony/config/Util/XmlUtils.php:96 Stack trace: #0 /home/<username>/public_html/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php(280): Symfony\Component\Config\Util\XmlUtils::loadFile('/home/studiofac...', Array) #1 /home/<username>/public_html/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php(41): Symfony\Component\DependencyInjection\Loader\XmlFileLoader->parseFileToDOM('/home/studiofac...') #2 /home/<username>/public_html/src/psm/Router.php(201): Symfony\Component\DependencyInjection\Loader\XmlFileLoader->load('services.xml') #3 /home/<username>/public_html/src/psm/Router.php(54): psm\Router->buildServiceContainer() #4 /home/<username>/public_html/src/bootstrap.php(66): psm\Router->__construct() #5 /home/<username>/public_html/index.php(28): require('/home/studiofac...') #6 {main} Next Symfony\Component\DependencyInjection\Exception\InvalidArgumentException: Unable to parse file "/home/<username>/public_html/src/config//services.xml". in /home/<username>/public_html/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php:282 Stack trace: #0 /home/<username>/public_html/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php(41): Symfony\Component\DependencyInjection\Loader\XmlFileLoader->parseFileToDOM('/home/studiofac...') #1 /home/<username>/public_html/src/psm/Router.php(201): Symfony\Component\DependencyInjection\Loader\XmlFileLoader->load('services.xml') #2 /home/<username>/public_html/src/psm/Router.php(54): psm\Router->buildServiceContainer() #3 /home/<username>/public_html/src/bootstrap.php(66): psm\Router->__construct() #4 /home/<username>/public_html/index.php(28): require('/home/studiofac...') #5 {main} thrown in /home/<username>/public_html/vendor/symfony/dependency-injection/Loader/XmlFileLoader.php on line 282

The file causing the error:

<?xml version="1.0" encoding="UTF-8" ?>

<xsd:schema xmlns="http://symfony.com/schema/dic/services"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     targetNamespace="http://symfony.com/schema/dic/services"
     elementFormDefault="qualified">

  <xsd:annotation>
    <xsd:documentation><![CDATA[
      Symfony XML Services Schema, version 1.0
      Authors: Fabien Potencier

      This defines a way to describe PHP objects (services) and their
      dependencies.
    ]]></xsd:documentation>
  </xsd:annotation>

  <xsd:element name="container" type="container" />

  <xsd:complexType name="container">
    <xsd:annotation>
      <xsd:documentation><![CDATA[
        The root element of a service file.
      ]]></xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="imports" type="imports" minOccurs="0" maxOccurs="1" />
      <xsd:element name="parameters" type="parameters" minOccurs="0" maxOccurs="1" />
      <xsd:element name="services" type="services" minOccurs="0" maxOccurs="1" />
      <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="services">
    <xsd:annotation>
      <xsd:documentation><![CDATA[
        Enclosing element for the definition of all services
      ]]></xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
      <xsd:element name="service" type="service" />
    </xsd:choice>
  </xsd:complexType>

  <xsd:complexType name="imports">
    <xsd:annotation>
      <xsd:documentation><![CDATA[
        Enclosing element for the import elements
      ]]></xsd:documentation>
    </xsd:annotation>
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
      <xsd:element name="import" type="import" />
    </xsd:choice>
  </xsd:complexType>

  <xsd:complexType name="import">
    <xsd:annotation>
      <xsd:documentation><![CDATA[
        Import an external resource defining other services or parameters
      ]]></xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="resource" type="xsd:string" use="required" />
    <xsd:attribute name="ignore-errors" type="boolean" />
  </xsd:complexType>

  <xsd:complexType name="callable">
    <xsd:choice minOccurs="0" maxOccurs="1">
      <xsd:element name="service" type="service" minOccurs="0" maxOccurs="1" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:string" />
    <xsd:attribute name="service" type="xsd:string" />
    <xsd:attribute name="class" type="xsd:string" />
    <xsd:attribute name="method" type="xsd:string" />
    <xsd:attribute name="function" type="xsd:string" />
  </xsd:complexType>

  <xsd:complexType name="service">
    <xsd:choice maxOccurs="unbounded">
      <xsd:element name="file" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="argument" type="argument" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="configurator" type="callable" minOccurs="0" maxOccurs="1" />
      <xsd:element name="factory" type="callable" minOccurs="0" maxOccurs="1" />
      <xsd:element name="deprecated" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="call" type="call" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="tag" type="tag" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="property" type="property" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="autowiring-type" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
    </xsd:choice>
    <xsd:attribute name="id" type="xsd:string" />
    <xsd:attribute name="class" type="xsd:string" />
    <xsd:attribute name="shared" type="boolean" />
    <xsd:attribute name="scope" type="xsd:string" />
    <xsd:attribute name="public" type="boolean" />
    <xsd:attribute name="synthetic" type="boolean" />
    <xsd:attribute name="synchronized" type="boolean" />
    <xsd:attribute name="lazy" type="boolean" />
    <xsd:attribute name="abstract" type="boolean" />
    <xsd:attribute name="factory-class" type="xsd:string" />
    <xsd:attribute name="factory-method" type="xsd:string" />
    <xsd:attribute name="factory-service" type="xsd:string" />
    <xsd:attribute name="alias" type="xsd:string" />
    <xsd:attribute name="parent" type="xsd:string" />
    <xsd:attribute name="decorates" type="xsd:string" />
    <xsd:attribute name="decoration-inner-name" type="xsd:string" />
    <xsd:attribute name="decoration-priority" type="xsd:integer" />
    <xsd:attribute name="autowire" type="boolean" />
  </xsd:complexType>

  <xsd:complexType name="tag">
    <xsd:attribute name="name" type="xsd:string" />
    <xsd:anyAttribute namespace="##any" processContents="lax" />
  </xsd:complexType>

  <xsd:complexType name="parameters">
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
      <xsd:element name="parameter" type="parameter" />
    </xsd:choice>
    <xsd:attribute name="type" type="parameter_type" />
    <xsd:attribute name="key" type="xsd:string" />
  </xsd:complexType>

  <xsd:complexType name="parameter" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="parameter" type="parameter" />
    </xsd:choice>
    <xsd:attribute name="type" type="parameter_type" />
    <xsd:attribute name="id" type="xsd:string" />
    <xsd:attribute name="key" type="xsd:string" />
    <xsd:attribute name="on-invalid" type="invalid_sequence" />
  </xsd:complexType>

  <xsd:complexType name="property" mixed="true">
    <xsd:choice minOccurs="0" maxOccurs="1">
      <xsd:element name="property" type="property" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="service" type="service" />
    </xsd:choice>
    <xsd:attribute name="type" type="argument_type" />
    <xsd:attribute name="id" type="xsd:string" />
    <xsd:attribute name="key" type="xsd:string" />
    <xsd:attribute name="name" type="xsd:string" />
    <xsd:attribute name="on-invalid" type="xsd:string" />
    <xsd:attribute name="strict" type="boolean" />
  </xsd:complexType>

  <xsd:complexType name="argument" mixed="true">
    <xsd:choice maxOccurs="unbounded">
      <xsd:element name="argument" type="argument" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="service" type="service" />
    </xsd:choice>
    <xsd:attribute name="type" type="argument_type" />
    <xsd:attribute name="id" type="xsd:string" />
    <xsd:attribute name="key" type="xsd:string" />
    <xsd:attribute name="index" type="xsd:integer" />
    <xsd:attribute name="on-invalid" type="xsd:string" />
    <xsd:attribute name="strict" type="boolean" />
  </xsd:complexType>

  <xsd:complexType name="call" mixed="true">
    <xsd:choice maxOccurs="unbounded">
      <xsd:element name="argument" type="argument" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="service" type="service" />
    </xsd:choice>
    <xsd:attribute name="method" type="xsd:string" />
  </xsd:complexType>

  <xsd:simpleType name="parameter_type">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="collection" />
      <xsd:enumeration value="string" />
      <xsd:enumeration value="constant" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="argument_type">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="collection" />
      <xsd:enumeration value="service" />
      <xsd:enumeration value="expression" />
      <xsd:enumeration value="string" />
      <xsd:enumeration value="constant" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="invalid_sequence">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="null" />
      <xsd:enumeration value="ignore" />
      <xsd:enumeration value="exception" />
    </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="boolean">
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="(%.+%|true|false)" />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>

libxml version:

[](Name         : libxml2
Version      : 2.9.7
Release      : 21.el8_10.3
Architecture : x86_64
Size         : 1.7 M
Source       : libxml2-2.9.7-21.el8_10.3.src.rpm
Repository   : @System
From repo    : baseos
Summary      : Library providing XML and HTML support
URL          : http://xmlsoft.org/
License      : MIT
Description  : This library allows to manipulate XML files. It includes support
             : to read, modify and write XML and HTML files. There is DTDs support
             : this includes parsing and validation even with complex DtDs, either
             : at parse time or later once the document has been modified. The output
             : can be a simple SAX stream or and in-memory DOM like representations.
             : In this case one can use the built-in XPath and XPointer implementation
             : to select sub nodes or ranges. A flexible Input/Output mechanism is
             : available, with existing HTTP and FTP modules and combined to an

         : URI library.)

Do you have any idea how to fix the issue, or should we simply update the website to a newer version of the library?

Related topics:
https://stackoverflow.com/questions/15260017/complex-type-service-the-content-model-is-not-determinist
#7291
https://access.redhat.com/errata/RHBA-2013:0591.html

How to reproduce

https://github.com/dbonnell/phpservermon/releases/tag/v3.2.0

Possible Solution

No response

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions