[Xml-compile] error: element not processed

Mark Overmeer mark at overmeer.net
Mon Mar 20 15:04:26 GMT 2017


* Craig Marchant (cmarchant at staff.ventraip.com) [170320 14:29]:
> Having an issue with trying to process xml.

I do not know whether this is the only problem (because chkData is
used on a place with <any>), but at least I see one problem.

The "any" elements are badly defined: you cannot predict which of the other
hundreds of XSD elements will appear on that spot (everyone should use
substitutionGroups)  By default, XML::Compile::Cache has
  "any_element => 'ATTEMPT'" which implies that (at runtime, but cached)
the discovered data type gets compiled.  The data is read, if succesful
you're lucky.  In this case, you are not lucky.

> 
> my $schemas = XML::Compile::Cache->new( [glob "testxsd/*.xsd"],
> 'allow_undeclared' => 1 );

   prefixes => { epp1 => ''urn:ietf:params:xml:ns:epp-1.0' }

> $schemas->declare( READER => pack_type( 'urn:ietf:params:xml:ns:epp-1.0',
> 'epp' ) );

   $schemas->declare( READER => "epp1:epp" );

> $schemas->compileAll;

>       <fee:chkData xmlns:fee="urn:ietf:params:xml:ns:fee-0.7">
>         <fee:cd>
>           <fee:name>1980s.game</fee:name>
>           <fee:currency>USD</fee:currency>
>           <fee:command>create</fee:command>
>           <fee:period unit="y">2</fee:period>
>           <fee:class>standard</fee:class>
>           <fee:fee grace-period="P0D" description="Domain registration (per
> year)" refundable="1">600.00</fee:fee>

The 'fee' and 'class' elements are in the wrong order.
-- 
Success,

               MarkOv

------------------------------------------------------------------------
       Mark Overmeer MSc                                MARKOV Solutions
       Mark at Overmeer.net                          solutions at overmeer.net
http://Mark.Overmeer.net                   http://solutions.overmeer.net




More information about the Xml-compile mailing list