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: [EMAIL PROTECTED]
E-mail: [EMAIL PROTECTED]

"Scott Shaver" <[EMAIL PROTECTED]> 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,cust
> 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/external-
> 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: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to