3v4l.org

run code in 300+ PHP versions simultaneously
<?php $schema = <<<SCHEMA <?xml version="1.0" encoding="utf-8"?> <xs:schema id="vnd.autotrack.supplier.car.request" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="0.3"> <xs:element name="aanbieder_vraag" > <xs:complexType> <xs:sequence> <xs:element name="auto_id" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0" /> <xs:maxInclusive value="9999999999" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="aanbieder_id" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0" /> <xs:maxInclusive value="9999999999" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="email" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="80" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="stuur_kopie" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="J"/> <xs:enumeration value="N"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="soort_aanvraag" minOccurs="1" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="P"/> <xs:enumeration value="V"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="telefoon" nillable="true" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="10" /> <xs:maxLength value="10" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="datum" nillable="true" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:date" /> </xs:simpleType> </xs:element> <xs:element name="vragen" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="1000" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="locale" minOccurs="0" maxOccurs="1" default="nl_NL" use="true"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="nl_NL"/> <xs:enumeration value="nl_BE"/> <xs:enumeration value="fr_BE"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> SCHEMA; $xml = <<<XML <?xml version="1.0"?> <aanbieder_vraag><auto_id>7493124</auto_id><aanbieder_id>40284</aanbieder_id><email>nbelhomme@enrise.com</email><stuur_kopie>J</stuur_kopie><soort_aanvraag>V</soort_aanvraag><vragen>blabla</vragen></aanbieder_vraag> XML; $document = new DOMDocument(); $document->loadXML($xml); $document->schemaValidateSource($schema, LIBXML_SCHEMA_CREATE); $document->resolveExternals = true; $document->substituteEntities = true; var_dump($document->getElementsByTagName('locale'));
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/7JXtn
function name:  (null)
number of ops:  23
compiled vars:  !0 = $schema, !1 = $xml, !2 = $document
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22utf-8%22%3F%3E%0A%3Cxs%3Aschema+id%3D%22vnd.autotrack.supplier.car.request%22+xmlns%3Axs%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%22+version%3D%220.3%22%3E%0A%09%3Cxs%3Aelement+name%3D%22aanbieder_vraag%22+%3E%0A%09%09%3Cxs%3AcomplexType%3E%0A%09%09%09%3Cxs%3Asequence%3E%0A%09%09%09%09%3Cxs%3Aelement+name%3D%22auto_id%22+minOccurs%3D%221%22+maxOccurs%3D%221%22%3E%0A%09%09%09%09%09%3Cxs%3AsimpleType%3E%0A%09%09%09%09%09%09%3Cxs%3Arestriction+base%3D%22xs%3Ainteger%22%3E%0A%09%09%09%09%09%09%09%3Cxs%3AminInclusive+value%3D%220%22+%2F%3E%0A%09%09%09%09%09%09%09%3Cxs%3AmaxInclusive+value%3D%229999999999%22+%2F%3E%0A%09%09%09%09%09%09%3C%2Fxs%3Arestriction%3E%0A%09%09%09%09%09%3C%2Fxs%3AsimpleType%3E%0A%09%09%09%09%3C%2Fxs%3Aelement%3E%0A%0A%09%09%09%09%3Cxs%3Aelement+name%3D%22aanbieder_id%22+minOccurs%3D%221%22+maxOccurs%3D%221%22%3E%0A%09%09%09%09%09%3Cxs%3AsimpleType%3E%0A%09%09%09%09%09%09%3Cxs%3Arestriction+base%3D%22xs%3Ainteger%22%3E%0A%09%09%09%09%09%09%09%3Cxs%3AminInclusive+value%3D%220%22+%2F%3E%0A%09%09%09%09%09%09%09%3Cxs%3AmaxInclusive+value%3D%229999999999%22+%2F%3E%0A%09%09%09%09%09%09%3C%2Fxs%3Arestriction%3E%0A%09%09%09%09%09%3C%2Fxs%3AsimpleType%3E%0A%09%09%09%09%3C%2Fxs%3Aelement%3E%0A%0A%09%09%09%09%3Cxs%3Aelement+name%3D%22email%22+minOccurs%3D%221%22+maxOccurs%3D%221%22%3E%0A%09%09%09%09%09%3Cxs%3AsimpleType%3E%0A%09%09%09%09%09%09%3Cxs%3Arestriction+base%3D%22xs%3Astring%22%3E%0A%09%09%09%09%09%09%09%3Cxs%3AmaxLength+value%3D%2280%22+%2F%3E%0A%09%09%09%09%09%09%3C%2Fxs%3Arestriction%3E%0A%09%09%09%09%09%3C%2Fxs%3AsimpleType%3E%0A%09%09%09%09%3C%2Fxs%3Aelement%3E%0A%0A%09%09%09%09%3Cxs%3Aelement+name%3D%22stuur_kopie%22+minOccurs%3D%221%22+maxOccurs%3D%221%22%3E%0A%09%09%09%09%09%3Cxs%3AsimpleType%3E%0A%09%09%09%09%09%09%3Cxs%3Arestriction+base%3D%22xs%3Astring%22%3E%0A%09%09%09%09%09%09%09%3Cxs%3Aenumeration+value%3D%22J%22%2F%3E%0A%09%09%09%09%09%09%09%3Cxs%3Aenumeration+value%3D%22N%22%2F%3E%0A%09%09%09%09%09%09%3C%2Fxs%3Arestriction%3E%0A%09%09%09%09%09%3C%2Fxs%3AsimpleType%3E%0A%09%09%09%09%3C%2Fxs%3Aelement%3E%0A%0A%09%09%09%09%3Cxs%3Aelement+name%3D%22soort_aanvraag%22+minOccurs%3D%221%22+maxOccurs%3D%221%22%3E%0A%09%09%09%09%09%3Cxs%3AsimpleType%3E%0A%09%09%09%09%09%09%3Cxs%3Arestriction+base%3D%22xs%3Astring%22%3E%0A%09%09%09%09%09%09%09%3Cxs%3Aenumeration+value%3D%22P%22%2F%3E%0A%09%09%09%09%09%09%09%3Cxs%3Aenumeration+value%3D%22V%22%2F%3E%0A%09%09%09%09%09%09%3C%2Fxs%3Arestriction%3E%0A%09%09%09%09%09%3C%2Fxs%3AsimpleType%3E%0A%09%09%09%09%3C%2Fxs%3Aelement%3E%0A%0A%09%09%09%09%3Cxs%3Aelement+name%3D%22telefoon%22+nillable%3D%22true%22+minOccurs%3D%220%22+maxOccurs%3D%221%22%3E%0A%09%09%09%09%09%3Cxs%3AsimpleType%3E%0A%09%09%09%09%09%09%3Cxs%3Arestriction+base%3D%22xs%3Astring%22%3E%0A%09%09%09%09%09%09%09%3Cxs%3AminLength+value%3D%2210%22+%2F%3E%0A%09%09%09%09%09%09%09%3Cxs%3AmaxLength+value%3D%2210%22+%2F%3E%0A%09%09%09%09%09%09%3C%2Fxs%3Arestriction%3E%0A%09%09%09%09%09%3C%2Fxs%3AsimpleType%3E%0A%09%09%09%09%3C%2Fxs%3Aelement%3E%0A%0A%09%09%09%09%3Cxs%3Aelement+name%3D%22datum%22+nillable%3D%22true%22+minOccurs%3D%220%22+maxOccurs%3D%221%22%3E%0A%09%09%09%09%09%3Cxs%3AsimpleType%3E%0A%09%09%09%09%09%09%3Cxs%3Arestriction+base%3D%22xs%3Adate%22+%2F%3E%0A%09%09%09%09%09%3C%2Fxs%3AsimpleType%3E%0A%09%09%09%09%3C%2Fxs%3Aelement%3E%0A%0A%09%09%09%09%3Cxs%3Aelement+name%3D%22vragen%22+minOccurs%3D%220%22+maxOccurs%3D%221%22%3E%0A%09%09%09%09%09%3Cxs%3AsimpleType%3E%0A%09%09%09%09%09%09%3Cxs%3Arestriction+base%3D%22xs%3Astring%22%3E%0A%09%09%09%09%09%09%09%3Cxs%3AmaxLength+value%3D%221000%22+%2F%3E%0A%09%09%09%09%09%09%3C%2Fxs%3Arestriction%3E%0A%09%09%09%09%09%3C%2Fxs%3AsimpleType%3E%0A%09%09%09%09%3C%2Fxs%3Aelement%3E%0A%0A%09%09%09%09%3Cxs%3Aelement+name%3D%22locale%22+minOccurs%3D%220%22+maxOccurs%3D%221%22+default%3D%22nl_NL%22+use%3D%22true%22%3E%0A%09%09%09%09%09%3Cxs%3AsimpleType%3E%0A%09%09%09%09%09%09%3Cxs%3Arestriction+base%3D%22xs%3Astring%22%3E%0A%09%09%09%09%09%09%09%3Cxs%3Aenumeration+value%3D%22nl_NL%22%2F%3E%0A%09%09%09%09%09%09%09%3Cxs%3Aenumeration+value%3D%22nl_BE%22%2F%3E%0A%09%09%09%09%09%09%09%3Cxs%3Aenumeration+value%3D%22fr_BE%22%2F%3E%0A%09%09%09%09%09%09%3C%2Fxs%3Arestriction%3E%0A%09%09%09%09%09%3C%2Fxs%3AsimpleType%3E%0A%09%09%09%09%3C%2Fxs%3Aelement%3E%0A%0A%09%09%09%3C%2Fxs%3Asequence%3E%0A%09%09%3C%2Fxs%3AcomplexType%3E%0A%09%3C%2Fxs%3Aelement%3E%0A%3C%2Fxs%3Aschema%3E%0A'
   93     1        ASSIGN                                                   !1, '%3C%3Fxml+version%3D%221.0%22%3F%3E%0A%3Caanbieder_vraag%3E%3Cauto_id%3E7493124%3C%2Fauto_id%3E%3Caanbieder_id%3E40284%3C%2Faanbieder_id%3E%3Cemail%3Enbelhomme%40enrise.com%3C%2Femail%3E%3Cstuur_kopie%3EJ%3C%2Fstuur_kopie%3E%3Csoort_aanvraag%3EV%3C%2Fsoort_aanvraag%3E%3Cvragen%3Eblabla%3C%2Fvragen%3E%3C%2Faanbieder_vraag%3E'
   98     2        NEW                                              $5      'DOMDocument'
          3        DO_FCALL                                      0          
          4        ASSIGN                                                   !2, $5
   99     5        INIT_METHOD_CALL                                         !2, 'loadXML'
          6        SEND_VAR_EX                                              !1
          7        DO_FCALL                                      0          
  100     8        INIT_METHOD_CALL                                         !2, 'schemaValidateSource'
          9        SEND_VAR_EX                                              !0
         10        SEND_VAL_EX                                              1
         11        DO_FCALL                                      0          
  101    12        ASSIGN_OBJ                                               !2, 'resolveExternals'
         13        OP_DATA                                                  <true>
  102    14        ASSIGN_OBJ                                               !2, 'substituteEntities'
         15        OP_DATA                                                  <true>
  104    16        INIT_FCALL                                               'var_dump'
         17        INIT_METHOD_CALL                                         !2, 'getElementsByTagName'
         18        SEND_VAL_EX                                              'locale'
         19        DO_FCALL                                      0  $12     
         20        SEND_VAR                                                 $12
         21        DO_ICALL                                                 
         22      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
149.38 ms | 1392 KiB | 15 Q