logo       

RE: Xerces 1.4.4, XML, XSD and validation: msg#00027

Subject: RE: Xerces 1.4.4, XML, XSD and validation
Okay upgraded to 2.8.0 xerces.

I now get the error

cvc-elt.1: Cannot find the declaration of element 'shippingRequest'.
Column: 201 Line: 2 PublicID: null

It no longer is finding the schema on the local app server so I just
removed it. The old version wanted it there.

I added elementFormDefault="qualified" to the schema but still get the
above error. I thought the elementFormDefault worked in reverse from the
way it does which is why I didn't have it there to begin with.

> -----Original Message-----
> From: Michael Glavassevich [mailto:mrglavas@xxxxxxxxxx] 
> Sent: Thursday, April 20, 2006 9:57 AM
> To: j-users@xxxxxxxxxxxxxxxxx
> Subject: Re: Xerces 1.4.4, XML, XSD and validation
> 
> The local element declarations in your schema have no target 
> namespace. 
> You either need to change your schema (for instance by adding 
> the attribute elementFormDefault="qualified" to xsd:schema) 
> or fix the namespace declarations in your instance document.
> 
> Michael Glavassevich
> XML Parser Development
> IBM Toronto Lab
> E-mail: mrglavas@xxxxxxxxxx
> E-mail: mrglavas@xxxxxxxxxx
> 
> "Scott Shaver" <Scott.Shaver@xxxxxxxxxx> wrote on 04/20/2006 
> 11:05:26 AM:
> 
> > 
> > I'm having trouble with the 1.4.4 xerces trying to validate 
> an xml doc 
> > against a XSD schema.
> > 
> > It always gives me the error shown below. I know it is finding the 
> > schema file because when it doesn't I get a exception telling me so.
> > 
> > 
> > Here are:
> > 
> > Error message
> > XML
> > XSD
> > The code
> > 
> > ==========================
> > The Error
> > ==========================
> > 
> > The content of element type "shippingRequest" must match 
> > 
> "(order_date,brand_name,shipRequestType,shipHow,exportDocsURL,so,po,cu
> > st omer_po?,shipInstructions?,shipTo,items,comment?)". Column: 19 
> > Line: 43
> > PublicID: null
> > 
> > ==========================
> > The XML
> > ==========================
> > 
> > <?xml version="1.0"?>
> > <shippingRequest xmlns="http://foo.comp.com";
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> > xsi:schemaLocation="http://foo.comp.com/downloads/it/schema
> > riverbed_ship_request.xsd">
> >     <order_date>2006-03-09</order_date>
> >     <brand_name>FOO</brand_name>
> >     <shipRequestType>Evaluation</shipRequestType>
> >     <shipHow shippingCarrier="ROUTED" 
> shippingServiceLevel="NEXT DAY AM"
> > modeOfTransport="AIR" freightTerms="WE PAY"/>
> >     <exportDocsURL>https://foo.comp.com</exportDocsURL>
> >     <so>99165</so>
> >     <po>65512</po>
> >     <customer_po>77836 NRR</customer_po>
> >     <shipTo>
> >             <company>GENERAL AIRCRAFT ENGINES - OH</company>
> >             <attn>DAVID SMITHY</attn>
> >             <address>ONE MAN WAY</address>
> >             <city>CINCINNATI</city>
> >             <state>OH</state>
> >             <postalCode>2342315</postalCode>
> >             <country>US</country>
> >     </shipTo>
> >     <items>
> >             <item>
> >                     <item_reason>NEW</item_reason>
> >                     <type>STANDARD</type>
> >                     <creation_date>2006-03-09</creation_date>
> >                     <update_date>2006-03-09</update_date>
> >                     
> <schedule_ship_date>2006-03-16</schedule_ship_date>
> >                     <order_line_id>799082</order_line_id>
> >                     <quantity>2</quantity>
> >                     <part_num>M23SHA-03010</part_num>
> >             </item>
> >             <item>
> >                     <item_reason>NEW</item_reason>
> >                     <type>STANDARD</type>
> >                     <creation_date>2006-03-09</creation_date>
> >                     <update_date>2006-03-09</update_date>
> >                     
> <schedule_ship_date>2006-03-16</schedule_ship_date>
> >                     <order_line_id>799091</order_line_id>
> >                     <quantity>1</quantity>
> >                     <part_num>M324CMC-08003</part_num>
> >             </item>
> >     </items>
> >     <comment>ATTN:  DAVID SMITHY</comment> </shippingRequest>
> > 
> > =======================
> > The Schema
> > =======================
> > <?xml version="1.0"?>
> > 
> > <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
> > targetNamespace="http://foo.comp.com"; xmlns="http://foo.comp.com";>
> >   <!-- Schema definition for shipping requests sent to rbed 
> from foo 
> > -->
> > 
> >   <xsd:element name="shippingRequest" type="ShippingRequestType"/>
> > 
> >   <xsd:complexType name="ShippingRequestType">
> >     <xsd:sequence>
> >       <!-- create date of the order -->
> >       <xsd:element name="order_date" type="xsd:date"/>
> > 
> >       <!-- rbed or OEM (foo) name -->
> >       <xsd:element name="brand_name" type="xsd:string"/>
> > 
> >       <xsd:element name="shipRequestType" type="ShipRequestType"/>
> > 
> >       <xsd:element name="shipHow" type="ShippingMethod"/>
> > 
> >       <!-- URL pointing to a PDF file containing the export 
> documents
> -->
> >       <xsd:element name="exportDocsURL" type="xsd:string"/>
> > 
> >       <!-- foo so (order) number (this is used in the documentation 
> > file
> names) -->
> >       <xsd:element name="so"   type="xsd:string"/>
> > 
> >       <!-- rbed or OEM (foo) po number -->
> >       <xsd:element name="po" type="xsd:string"/>
> > 
> >        <!-- rbed or OEM customer's PO number -->
> >       <xsd:element name="customer_po" type="xsd:string" 
> minOccurs="0"
> > maxOccurs="1"/>
> > 
> >       <xsd:element name="shipInstructions" type="xsd:string"
> > minOccurs="0" maxOccurs="1"/>
> > 
> >       <xsd:element name="shipTo" type="Address"/>
> > 
> >       <xsd:element name="items" type="Items"/>
> > 
> >         <xsd:element name="comment" type="xsd:string" 
> minOccurs="0"/>
> > 
> >     </xsd:sequence>
> >   </xsd:complexType>
> > 
> >   <xsd:simpleType name="ShipRequestType">
> >     <xsd:restriction base="xsd:string">
> >       <xsd:enumeration value="Sale"/>
> >       <xsd:enumeration value="Evaluation"/>
> >       <xsd:enumeration value="RMA Replacement"/>
> >     </xsd:restriction>
> >   </xsd:simpleType>
> > 
> >   <xsd:complexType name="ShippingMethod">
> >     <xsd:attribute name="shippingCarrier" type="xsd:string"/>
> >     <xsd:attribute name="shippingServiceLevel" type="xsd:string"/>
> >     <xsd:attribute name="modeOfTransport" type="xsd:string"/>
> >     <xsd:attribute name="freightTerms" type="xsd:string"/>
> >   </xsd:complexType>
> > 
> >   <xsd:complexType name="Address">
> >     <xsd:sequence>
> >       <xsd:element name="company"  type="xsd:string"/>
> >       <xsd:element name="attn"     type="xsd:string" minOccurs="0"
> > maxOccurs="1"/>
> >       <xsd:element name="address"  type="xsd:string"/>
> >       <xsd:element name="address2" type="xsd:string" minOccurs="0"
> > maxOccurs="1"/>
> >       <xsd:element name="address3" type="xsd:string" minOccurs="0"
> > maxOccurs="1"/>
> >       <xsd:element name="city"     type="xsd:string"/>
> >       <xsd:element name="state"    type="xsd:string"/>
> >       <xsd:element name="postalCode" type="xsd:string"/>
> >       <xsd:element name="country" type="xsd:string"/>
> >       <xsd:element name="phone"   type="xsd:string" minOccurs="0"
> > maxOccurs="1"/>
> >       <xsd:element name="email"   type="xsd:string" minOccurs="0"
> > maxOccurs="1"/>
> >     </xsd:sequence>
> >   </xsd:complexType>
> > 
> >   <xsd:simpleType name="LineItemType">
> >     <xsd:restriction base="xsd:string">
> >       <xsd:enumeration value="MODEL"/>
> >       <xsd:enumeration value="CLASS"/>
> >       <xsd:enumeration value="OPTION"/>
> >       <xsd:enumeration value="CONFIG"/>
> >     </xsd:restriction>
> >   </xsd:simpleType>
> > 
> >   <!--
>     An item is a single line item from the foo order system. 
> > It doesn't
> necessarily
>     represent an actuall orderable part 
> > number. Sometime it is just
> there to show
>     configuration information.
>   -->
> >   <xsd:complexType name="Items">
> >     <xsd:sequence>
> >       <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
> >         <xsd:complexType>
> >           <xsd:sequence>
> >             <!-- the reson this line is in the data -->
> >             <xsd:element name="item_reson" type="xsd:string"/>
> > 
> >             <!-- the type of this line on the order -->
> >             <xsd:element name="type" type="LineItemType"/>
> > 
> >             <!-- create date of the line item -->
> >             <xsd:element name="creation_date" type="xsd:date"/>
> > 
> >             <!-- date of last update to the line item -->
> >             <xsd:element name="update_date" type="xsd:date"/>
> > 
> >             <!-- date the line item is supposed to be shipped -->
> >             <xsd:element name="schedule_ship_date" type="xsd:date"/>
> > 
> >             <!-- this is the order_line_id of the item on the order 
> > that
> is this items parent line,
>                 if this line is it's
> > own parent then it is the top of a
> configured item. This happens
>  
> > when the part_num element is a star "*" part. A
> generated part 
> > number for a config.
>             -->
> >             <xsd:element name="parent_line_id" type="xsd:integer"
> > minOccurs="0" maxOccurs="1"/>
> > 
> >             <!-- uniquely identifies this PO line item in our OEM's
> 
> > database -->
> >             <xsd:element name="order_line_id" type="xsd:integer"
> > minOccurs="1" maxOccurs="1"/>
> > 
> >             <xsd:element name="quantity">
> >               <xsd:simpleType>
> >                 <xsd:restriction base="xsd:positiveInteger">
> >                   <xsd:maxExclusive value="100"/>
> >                 </xsd:restriction>
> >               </xsd:simpleType>
> >             </xsd:element>
> > 
> >             <!-- used in the packing list -->
> >             <xsd:element name="part_num" type="xsd:string"/>
> > 
> >             <!-- Special packing instructions, shipping 
> instructions,
> etc. -->
> >               <xsd:element name="note" type="xsd:string" 
> minOccurs="0"
> > maxOccurs="1"/>
> > 
> >           </xsd:sequence>
> >         </xsd:complexType>
> >       </xsd:element>
> >     </xsd:sequence>
> >   </xsd:complexType>
> > 
> > 
> > </xsd:schema>
> > 
> > 
> > =================
> > The code
> > =================
> >     public boolean validateSchema(String schemaURL, String 
> xml, String
> > ordernumber)
> >     {
> >         boolean retval = true;
> >         try
> > 
> >         {
> >             DOMParser domParser = new DOMParser();
> > 
> > 
> > 
> > 
> > domParser.setFeature("http://xml.org/sax/features/validation",true);
> > 
> > 
> > 
> domParser.setFeature("http://apache.org/xml/features/validation/schema
> > ",
> > true);
> > 
> > 
> > 
> domParser.setFeature("http://apache.org/xml/features/validation/schema
> > -f
> > ull-checking",true);
> > 
> > 
> > 
> domParser.setProperty("http://apache.org/xml/properties/schema/externa
> > l-
> > schemaLocation",schemaURL);
> > 
> > 
> >             Validator handler=new Validator();
> >             domParser.setErrorHandler(handler);
> > 
> >             domParser.parse(new InputSource(new StringReader(xml)));
> > 
> >             if(handler.validationError==true)
> >             {
> >                 doLogging("validateSchema()","XML failed 
> > validation:"+handler.saxParseException.getMessage()+" Column:
> > "+handler.saxParseException.getColumnNumber()+" Line:
> > "+handler.saxParseException.getLineNumber()+" PublicID:
> > "+handler.saxParseException.getPublicId(),true,true,false);
> >                 logError(ordernumber,"XML failed 
> validation:","System");
> >                 //handler.saxParseException.printStackTrace();
> >                 retval=false;
> >             }
> >             else
> >                 doLogging("validateSchema()","XML has been 
> > validated",true,true,false);
> >         }
> > 
> >         catch (Exception e)
> > 
> >         {
> >             e.printStackTrace();
> >         }
> > 
> >         return retval;
> >     }
> > 
> > 
> >     private class Validator extends DefaultHandler
> > 
> >     {
> > 
> >         public boolean  validationError = false;
> > 
> >         public SAXParseException saxParseException=null;
> > 
> > 
> >         public void error(SAXParseException exception) throws 
> > SAXException
> > 
> >         {
> >             validationError = true;
> > 
> >             saxParseException=exception;
> >         }
> > 
> > 
> >         public void fatalError(SAXParseException exception) throws 
> > SAXException
> > 
> >         {
> > 
> >             validationError = true;
> > 
> >             saxParseException=exception;
> > 
> >         }
> > 
> > 
> >         public void warning(SAXParseException exception) throws 
> > SAXException
> > 
> >         {
> > 
> >         }
> > 
> >     }
> > 
> > 
> > 
> > 
> > SPECIAL NOTICE
> > 
> > 
> > All information transmitted hereby is intended only for the 
> use of the
> > addressee(s) named above and may contain confidential and 
> privileged 
> > information. Any unauthorized review, use, disclosure or 
> distribution 
> > of confidential and privileged information is prohibited. If the 
> > reader of this message is not the intended recipient(s) or the 
> > employee or
> agent
> > responsible for delivering the message to the intended 
> recipient, you
> are
> > hereby notified that you must not read this transmission and that
> disclosure,
> > copying, printing, distribution or use of any of the information
> contained
> > in or attached to this transmission is STRICTLY PROHIBITED.
> > 
> > Anyone who receives confidential and privileged information in error
> should
> > notify us immediately by telephone and mail the original 
> message to us
> at
> > the above address and destroy all copies.  To the extent 
> any portion 
> > of
> this
> > communication contains public information, no such 
> restrictions apply 
> > to
> that
> > information. (gate01)
> > 
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: j-users-unsubscribe@xxxxxxxxxxxxxxxxx
> > For additional commands, e-mail: j-users-help@xxxxxxxxxxxxxxxxx
> > 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: j-users-unsubscribe@xxxxxxxxxxxxxxxxx
> For additional commands, e-mail: j-users-help@xxxxxxxxxxxxxxxxx
> 
> 


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
boot-loaders.gr...    php.pear.genera...    debugging.valgr...    kde.redhat.user...    text.xml.xsl.ge...    culture.languag...    hardware.microc...    java.servicemix...    redhat.release....    web.zope.plone....    user-groups.lin...    opendarwin.webk...    video.mjpeg.use...    sysutils.bcfg2....    encryption.gpg....    lx-office.devel...    xfree86.forum/2...    mail.mutt.devel...    acpi.devel/2003...    qnx.openqnx.dev...    network.irc.irs...    freebsd.devel.m...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe