xsd - XML validation No matching global declaration available for the validation root -


i have xml schema provided cisco ios xe router. when running command 'show ip access-list test | format' in router's cli, spits out xml fragment should validate against schema. not. instead error ": no matching global declaration available validation root"

schema provided cisco extracted running 'show xsd-format cli show ip access-lists' recommended here http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/xmlpi/command/xmlpi-cr-book/xmlpi-cr-p1.html#guid-33cb3bab-25b4-4fad-9741-c7afb483f701 shown below:

<?xml version="1.0" encoding="utf-8"?>   <xsd:schema elementformdefault="qualified" attributeformdefault="unqualified" xmlns:xsd="http://www.w3.org/2001/xmlschema" >     <xsd:complextype name="showaccesslists_def">       <xsd:sequence>         <xsd:element ref="specversion" minoccurs="0" />         <xsd:choice minoccurs="0" maxoccurs="unbounded">           <xsd:element ref="info" />           <xsd:element name="access-list" minoccurs="0" maxoccurs="1">             <xsd:complextype>               <xsd:sequence>                 <xsd:element name="type" minoccurs="0" maxoccurs="1" type="xsd:string" />                 <xsd:element name="name" minoccurs="0" maxoccurs="1" type="xsd:string" />                 <xsd:element name="denyfilter" minoccurs="0" maxoccurs="1">                   <xsd:complextype>                     <xsd:sequence>                       <xsd:element name="filter" minoccurs="0" maxoccurs="1" type="xsd:string" />                     </xsd:sequence>                   </xsd:complextype>                 </xsd:element>                 <xsd:element name="permitfilter" minoccurs="0" maxoccurs="1">                   <xsd:complextype>                     <xsd:sequence>                       <xsd:element name="filter" minoccurs="0" maxoccurs="1" type="xsd:string" />                     </xsd:sequence>                   </xsd:complextype>                 </xsd:element>               </xsd:sequence>             </xsd:complextype>           </xsd:element>         </xsd:choice>       </xsd:sequence>     </xsd:complextype>     <xsd:element name="specversion" type="xsd:string" />     <xsd:element name="info" type="xsd:string" />     <xsd:element name="showaccesslists" type="showaccesslists_def" />   </xsd:schema> 

the xml fragment router spits out is:

<?xml version="1.0" encoding="utf-8"?>    <showaccesslists xmlns="odm://built-in//show_access-lists">     <access-list>       <type>extended ip</type>       <name>test</name>       <permitfilter>         <filter>10 permit ip any</filter>       </permitfilter>       <permitfilter>         <filter>20 permit tcp 0.0.0.1 255.255.255.0 any</filter>       </permitfilter>       <permitfilter>         <filter>40 permit tcp host 10.22.1.128 10.11.79.0 0.0.0.255 eq domain</filter>       </permitfilter>       <permitfilter>         <filter>50 permit tcp host 10.22.1.128 eq domain 10.11.79.0 0.0.0.255</filter>       </permitfilter>     </access-list>   </showaccesslists> 

is schema broken? how validate?

answer depends on whether wish change xml or xsd...

change xml

according xsd, xml should not in namespace , should not have multiple permitfilter elements.

therefore, if wish keep xsd constant, following updated xml validate against xsd.

<?xml version="1.0" encoding="utf-8"?> <showaccesslists>   <access-list>     <type>extended ip</type>     <name>test</name>     <permitfilter>       <filter>10 permit ip any</filter>     </permitfilter>   </access-list> </showaccesslists> 

change xsd

your xml in namespace , has multiple permitfilter elements.

if wish keep xml constant, add targetnamespace xsd, define namespace prefix namespace, , use prefix when referencing components in namespace. following updated xsd shows how , validate xml:

<?xml version="1.0" encoding="utf-8"?> <xsd:schema elementformdefault="qualified" attributeformdefault="unqualified"              xmlns:xsd="http://www.w3.org/2001/xmlschema"              xmlns:sal="odm://built-in//show_access-lists"              targetnamespace="odm://built-in//show_access-lists">   <xsd:complextype name="showaccesslists_def">     <xsd:sequence>       <xsd:element ref="sal:specversion" minoccurs="0" />       <xsd:choice minoccurs="0" maxoccurs="unbounded">         <xsd:element ref="sal:info" />         <xsd:element name="access-list" minoccurs="0" maxoccurs="1">           <xsd:complextype>             <xsd:sequence>               <xsd:element name="type" minoccurs="0" maxoccurs="1" type="xsd:string" />               <xsd:element name="name" minoccurs="0" maxoccurs="1" type="xsd:string" />               <xsd:element name="denyfilter" minoccurs="0" maxoccurs="1">                 <xsd:complextype>                   <xsd:sequence>                     <xsd:element name="filter" minoccurs="0" maxoccurs="1" type="xsd:string" />                   </xsd:sequence>                 </xsd:complextype>               </xsd:element>               <xsd:element name="permitfilter" minoccurs="0" maxoccurs="unbounded">                 <xsd:complextype>                   <xsd:sequence>                     <xsd:element name="filter" minoccurs="0" maxoccurs="1" type="xsd:string" />                   </xsd:sequence>                 </xsd:complextype>               </xsd:element>             </xsd:sequence>           </xsd:complextype>         </xsd:element>       </xsd:choice>     </xsd:sequence>   </xsd:complextype>   <xsd:element name="specversion" type="xsd:string" />   <xsd:element name="info" type="xsd:string" />   <xsd:element name="showaccesslists" type="sal:showaccesslists_def" /> </xsd:schema> 

Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -