Loading ...
Sorry, an error occurred while loading the content.
 

Re: [soaplite] Element 'xmlProductString' can't be allowed in valid XML message. Died

Expand Messages
  • Jim Dixon
    ... The XML spec reserves all names beginning with [xX][mM][lL] (all variations of xml ignoring case). It s a violation of the spec to use element names
    Message 1 of 10 , Mar 14, 2002
      On Wed, 13 Mar 2002, davidthewatson wrote:

      > I have the following code:
      >
      > use SOAP::Lite;
      > $file = 'data.xml' ;
      > open(INFO, "<$file" ) ;
      > @lines = <INFO> ;
      > close(INFO) ;
      > $long_line = join("\n", @lines);
      > my $product = 'http://192.168.0.170:8080/mws/urn:Product.wsdl';
      > my $msg = SOAP::Lite->service($product)->validate
      > ('somesessionid',$long_line, 'TEXT');
      >
      > I have deleted a lot of extraneous code for brevity. SOAP::Lite
      > generates this message
      >
      > Element 'xmlProductString' can't be allowed in valid XML message. Died

      The XML spec reserves all names beginning with [xX][mM][lL] (all
      variations of 'xml' ignoring case). It's a violation of the spec
      to use element names beginning with xml. The simplest solution is
      to change the element name to, perhaps, productString, so that it
      doesn't violate the spec.

      > when making the validate call. The server is running Glue 2.1 from
      > the mind electric. The second parameter where $long_line is being
      > passed is a SOAP string which has embedded XML in it. This works with
      > a variety of clients including java, dotnet(C#), vbscript, etc. I'm
      > not sure why the SOAP::Lite parser doesn't like the embedded XML
      > string. I assume there's a parsing issue with the tags but I'm not
      > sure if it can be escaped or whether there's a call I can make to
      > tell it to treat the string specially.

      --
      Jim Dixon jdd@... tel +44 117 982 0786 mobile +44 797 373 7881
      ---------- THAT'S A CHANGE OF ADDRESS: I'm no longer jdd@... --------
    • davidthewatson
      ... OK, I changed the name of the variable being passed and indeed, I got past that error. However, I m seeing another problem now. I read in the XML string
      Message 2 of 10 , Mar 14, 2002
        --- In soaplite@y..., Jim Dixon <jdd@d...> wrote:
        > The XML spec reserves all names beginning with [xX][mM][lL] (all
        > variations of 'xml' ignoring case). It's a violation of the spec
        > to use element names beginning with xml. The simplest solution is
        > to change the element name to, perhaps, productString, so that it
        > doesn't violate the spec.

        OK, I changed the name of the variable being passed and indeed, I got
        past that error. However, I'm seeing another problem now. I read in
        the XML string and pass that to the SOAP method but the SOAP method
        does not receive the XML string, it receives a null string. I
        verified this by changing the SOAP method to simply return the
        string. I assume there's still a parse problem happening with that
        string but it's not obvious to me on the client side. That is, I've
        tried reading the string from a file:

        $file = 'exampleproduct.xml' ;
        open(INFO, "<$file" ) ;
        @lines = <INFO> ;
        close(INFO) ;
        my $long_line = join("\n", @lines);

        and I've also tried embedding the xml string in the program:

        my $productstring = "<?xml version='1.0' encoding='UTF-8'?>... etc.

        and in both cases, the string prints fine from the client but gets
        killed on the wire going to the server.

        I'm not sure where to look as I'm a perl newbie. Can somebody point
        me in the right direction?

        Thanks,
        David
      • Duncan Cameron
        ... Not sure what you mean by this - killed on the wire . Have you run with trace or debug to see the content of the SOAP envelope? use SOAP::Lite +trace =
        Message 3 of 10 , Mar 14, 2002
          On 2002-03-14 davidthewatson wrote:
          >--- In soaplite@y..., Jim Dixon <jdd@d...> wrote:
          >> The XML spec reserves all names beginning with [xX][mM][lL] (all
          >> variations of 'xml' ignoring case). It's a violation of the spec
          >> to use element names beginning with xml. The simplest solution is
          >> to change the element name to, perhaps, productString, so that it
          >> doesn't violate the spec.
          >
          >OK, I changed the name of the variable being passed and indeed, I got
          >past that error. However, I'm seeing another problem now. I read in
          >the XML string and pass that to the SOAP method but the SOAP method
          >does not receive the XML string, it receives a null string. I
          >verified this by changing the SOAP method to simply return the
          >string. I assume there's still a parse problem happening with that
          >string but it's not obvious to me on the client side. That is, I've
          >tried reading the string from a file:
          >
          >$file = 'exampleproduct.xml' ;
          >open(INFO, "<$file" ) ;
          >@lines = <INFO> ;
          >close(INFO) ;
          >my $long_line = join("\n", @lines);
          >
          >and I've also tried embedding the xml string in the program:
          >
          >my $productstring = "<?xml version='1.0' encoding='UTF-8'?>... etc.
          >
          >and in both cases, the string prints fine from the client but gets
          >killed on the wire going to the server.

          Not sure what you mean by this - 'killed on the wire'.
          Have you run with trace or debug to see the content of the SOAP
          envelope?
          use SOAP::Lite +trace => qw(all);

          Also, looking at your original email :

          my $product = 'http://192.168.0.170:8080/mws/urn:Product.wsdl';
          my $msg = SOAP::Lite->service($product)
          ->validate('somesessionid',$long_line, 'TEXT');

          Are you sure that $product is being assigned correctly?
          SOAP::Lite is fairly restricted in the WSDL that it can handle.

          Regards,
          Duncan Cameron
        • davidthewatson
          ... I meant loosely, Horked up in the SOAP protocol negotiation. Sorry. ... No, I hadn t but with your instructions I did. Here s the output (LONG, sorry
          Message 4 of 10 , Mar 14, 2002
            --- In soaplite@y..., Duncan Cameron <dcameron@b...> wrote:
            > Not sure what you mean by this - 'killed on the wire'.

            I meant loosely, "Horked up in the SOAP protocol negotiation." Sorry.

            > Have you run with trace or debug to see the content of the SOAP
            > envelope?
            > use SOAP::Lite +trace => qw(all);

            No, I hadn't but with your instructions I did. Here's the output
            (LONG, sorry again):

            SOAPAction: "validateImport"

            <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-
            ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
            ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
            xmlns:xsd="http://www.w3.org/1999/XMLSchema"><SOAP-
            ENV:Body><namesp2:validateImport
            xmlns:namesp2="http://tempuri.org/net.metalsite.external.Product"><ses
            sionId xsi:type="xsd:string">8DEC2983-2EEB-93BB-D37C-
            A228897DEC9C</sessionId><ProductString xsi:type="xsd:string"><?xml
            version="1.0" encoding="UTF-8"?><inventory><product
            xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
            xmlns:xsd='http://www.w3.org/2001/XMLSchema'
            xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'>
            <PARTNUMBER xsi:type='xsd:string'>bnm</PARTNUMBER> <PWEIGHT
            xsi:type='xsd:string'>2</PWEIGHT> <PADDEDBY
            xsi:type='xsd:string'></PADDEDBY> <PADDEDON
            xsi:type='xsd:string'></PADDEDON> <UOWNERREF
            xsi:type='xsd:string'></UOWNERREF> <UREFITEM
            xsi:type='xsd:string'>16381</UREFITEM> <PBATCHREFITEM
            xsi:type='xsd:string'></PBATCHREFITEM> <PREFITEM
            xsi:type='xsd:string'></PREFITEM> <PWIDTH
            xsi:type='xsd:string'></PWIDTH> <PHEIGHT
            xsi:type='xsd:string'></PHEIGHT> <PDEPTH
            xsi:type='xsd:string'></PDEPTH> <IPRICE
            xsi:type='xsd:string'>2.25</IPRICE> <IQTYAVAIL
            xsi:type='xsd:string'>1</IQTYAVAIL> <IREFITEM
            xsi:type='xsd:string'></IREFITEM> <ISUPPLIERID
            xsi:type='xsd:string'>16381</ISUPPLIERID> <PTYPE
            xsi:type='xsd:string'></PTYPE> <PMANUFACTURER
            xsi:type='xsd:string'></PMANUFACTURER><PMANFPARTNUMBER
            xsi:type='xsd:string'>123-mYnUM</PMANFPARTNUMBER> <PADJMANFPARTNUM
            xsi:type='xsd:string'>123-mYnUM</PADJMANFPARTNUM> <PNAME
            xsi:type='xsd:string'></PNAME> <PDESCRIPTION
            xsi:type='xsd:string'></PDESCRIPTION> <PICTURENAME
            xsi:type='xsd:string'></PICTURENAME> <PURLLINK
            xsi:type='xsd:string'></PURLLINK> <PTECHDESCRIPTION
            xsi:type='xsd:string'></PTECHDESCRIPTION> <PGUAGE
            xsi:type='xsd:string'></PGUAGE> <ZCITY
            xsi:type='xsd:string'></ZCITY> <ZSTATE
            xsi:type='xsd:string'></ZSTATE> <ZIP
            xsi:type='xsd:string'>26032</ZIP> <PQUALITY
            xsi:type='xsd:string'></PQUALITY> <PFINISH
            xsi:type='xsd:string'></PFINISH> <PCOATING
            xsi:type='xsd:string'></PCOATING> <PTREATMENT
            xsi:type='xsd:string'></PTREATMENT> <PBASEWT
            xsi:type='xsd:string'></PBASEWT> <PBASEBOX
            xsi:type='xsd:string'></PBASEBOX> <PTEMPER
            xsi:type='xsd:string'></PTEMPER> <PGRADE
            xsi:type='xsd:string'></PGRADE> <PASTM
            xsi:type='xsd:string'></PASTM> <PINSIDEDIAM
            xsi:type='xsd:string'></PINSIDEDIAM> <POUTSIDEDIAM
            xsi:type='xsd:string'></POUTSIDEDIAM> <PBRANDNAME
            xsi:type='xsd:string'></PBRANDNAME> <RCODEME
            xsi:type='xsd:string'>100</RCODEME> <RSELLERREASON
            xsi:type='xsd:string'></RSELLERREASON> <PEXPIREDAYS
            xsi:type='xsd:string'></PEXPIREDAYS> <PEXPIREDATE
            xsi:type='xsd:string'>20020130</PEXPIREDATE> <UNITOFMEASURE
            xsi:type='xsd:string'>lbs</UNITOFMEASURE> <PLOT
            xsi:type='xsd:string'></PLOT> <DISCNTPERCENT
            xsi:type='xsd:string'></DISCNTPERCENT> <DISCNTQTY
            xsi:type='xsd:string'></DISCNTQTY> <GAUGETYPE
            xsi:type='xsd:string'>n</GAUGETYPE> <PBATCHID
            xsi:type='xsd:string'>01</PBATCHID> <PRIMARY_C
            xsi:type='xsd:string'></PRIMARY_C> <PRIMARY_MN
            xsi:type='xsd:string'></PRIMARY_MN> <PRIMARY_P
            xsi:type='xsd:string'></PRIMARY_P> <PRIMARY_S
            xsi:type='xsd:string'></PRIMARY_S> <PRIMARY_AL
            xsi:type='xsd:string'></PRIMARY_AL> <PRIMARY_SB
            xsi:type='xsd:string'></PRIMARY_SB> <PRIMARY_BE
            xsi:type='xsd:string'></PRIMARY_BE> <PRIMARY_BI
            xsi:type='xsd:string'></PRIMARY_BI> <PRIMARY_B
            xsi:type='xsd:string'></PRIMARY_B> <PRIMARY_CD
            xsi:type='xsd:string'></PRIMARY_CD> <PRIMARY_CA
            xsi:type='xsd:string'></PRIMARY_CA> <PRIMARY_CR
            xsi:type='xsd:string'></PRIMARY_CR> <PRIMARY_CB
            xsi:type='xsd:string'></PRIMARY_CB> <PRIMARY_CU
            xsi:type='xsd:string'></PRIMARY_CU> <PRIMARY_AU
            xsi:type='xsd:string'></PRIMARY_AU> <PRIMARY_FE
            xsi:type='xsd:string'></PRIMARY_FE> <PRIMARY_PB
            xsi:type='xsd:string'></PRIMARY_PB> <PRIMARY_MG
            xsi:type='xsd:string'></PRIMARY_MG> <PRIMARY_MO
            xsi:type='xsd:string'></PRIMARY_MO> <PRIMARY_NI
            xsi:type='xsd:string'></PRIMARY_NI> <PRIMARY_N
            xsi:type='xsd:string'></PRIMARY_N> <PRIMARY_O
            xsi:type='xsd:string'></PRIMARY_O> <PRIMARY_PT
            xsi:type='xsd:string'></PRIMARY_PT> <PRIMARY_SI
            xsi:type='xsd:string'></PRIMARY_SI> <PRIMARY_AG
            xsi:type='xsd:string'></PRIMARY_AG> <PRIMARY_SN
            xsi:type='xsd:string'></PRIMARY_SN> <PRIMARY_TI
            xsi:type='xsd:string'></PRIMARY_TI> <PRIMARY_W
            xsi:type='xsd:string'></PRIMARY_W> <PRIMARY_V
            xsi:type='xsd:string'></PRIMARY_V> <PRIMARY_ZN
            xsi:type='xsd:string'></PRIMARY_ZN> <PRIMARY_ZR
            xsi:type='xsd:string'></PRIMARY_ZR> <TRANS_C
            xsi:type='xsd:string'></TRANS_C> <TRANS_MN
            xsi:type='xsd:string'></TRANS_MN> <TRANS_P
            xsi:type='xsd:string'></TRANS_P> <TRANS_S
            xsi:type='xsd:string'></TRANS_S> <TRANS_AL
            xsi:type='xsd:string'></TRANS_AL> <TRANS_SB
            xsi:type='xsd:string'></TRANS_SB> <TRANS_BE
            xsi:type='xsd:string'></TRANS_BE> <TRANS_BI
            xsi:type='xsd:string'></TRANS_BI> <TRANS_B
            xsi:type='xsd:string'></TRANS_B> <TRANS_CD
            xsi:type='xsd:string'></TRANS_CD> <TRANS_CA
            xsi:type='xsd:string'></TRANS_CA> <TRANS_CR
            xsi:type='xsd:string'></TRANS_CR> <TRANS_CB
            xsi:type='xsd:string'></TRANS_CB> <TRANS_CU
            xsi:type='xsd:string'></TRANS_CU> <TRANS_AU
            xsi:type='xsd:string'></TRANS_AU> <TRANS_FE
            xsi:type='xsd:string'></TRANS_FE> <TRANS_PB
            xsi:type='xsd:string'></TRANS_PB> <TRANS_MG
            xsi:type='xsd:string'></TRANS_MG> <TRANS_MO
            xsi:type='xsd:string'></TRANS_MO> <TRANS_NI
            xsi:type='xsd:string'></TRANS_NI> <TRANS_N
            xsi:type='xsd:string'></TRANS_N> <TRANS_O
            xsi:type='xsd:string'></TRANS_O> <TRANS_PT
            xsi:type='xsd:string'></TRANS_PT> <TRANS_SI
            xsi:type='xsd:string'></TRANS_SI> <TRANS_AG
            xsi:type='xsd:string'></TRANS_AG> <TRANS_SN
            xsi:type='xsd:string'></TRANS_SN> <TRANS_TI
            xsi:type='xsd:string'></TRANS_TI> <TRANS_W
            xsi:type='xsd:string'></TRANS_W> <TRANS_V
            xsi:type='xsd:string'></TRANS_V> <TRANS_ZN
            xsi:type='xsd:string'></TRANS_ZN> <TRANS_ZR
            xsi:type='xsd:string'></TRANS_ZR> <SELLER_PRODUCT_FW_1
            xsi:type='xsd:string'></SELLER_PRODUCT_FW_1> <SELLER_PRODUCT_FW_2
            xsi:type='xsd:string'></SELLER_PRODUCT_FW_2> <SELLER_PRODUCT_FW_3
            xsi:type='xsd:string'></SELLER_PRODUCT_FW_3> <SELLER_PRODUCT_FW_4
            xsi:type='xsd:string'></SELLER_PRODUCT_FW_4> <SELLER_PRODUCT_FW_5
            xsi:type='xsd:string'></SELLER_PRODUCT_FW_5> <PRODUCT_THICKNESS
            xsi:type='xsd:string'></PRODUCT_THICKNESS> <ROLL_WDTH_MIN
            xsi:type='xsd:string'></ROLL_WDTH_MIN> <ROLL_WDTH_MAX
            xsi:type='xsd:string'></ROLL_WDTH_MAX> <ROLL_GAUGE_MIN
            xsi:type='xsd:string'></ROLL_GAUGE_MIN> <ROLL_GAUGE_MAX
            xsi:type='xsd:string'></ROLL_GAUGE_MAX> <PRODUCT_LENGTH
            xsi:type='xsd:string'></PRODUCT_LENGTH> <ROLL_YLD_LOW_EST
            xsi:type='xsd:string'></ROLL_YLD_LOW_EST> <ROLL_YLD_HIGH_EST
            xsi:type='xsd:string'></ROLL_YLD_HIGH_EST> <PRODUCT_HEAT
            xsi:type='xsd:string'></PRODUCT_HEAT> <IMPORT_VERSION
            xsi:type='xsd:string'></IMPORT_VERSION> <IMPORT_DESC
            xsi:type='xsd:string'></IMPORT_DESC> <PROD_CLASS_IND
            xsi:type='xsd:string'>P</PROD_CLASS_IND> <PICKLING
            xsi:type='xsd:string'></PICKLING> <GRADE_TYPE_IND
            xsi:type='xsd:string'>o</GRADE_TYPE_IND> <PRIMARY_O_READING_TYPE
            xsi:type='xsd:string'></PRIMARY_O_READING_TYPE> <PRIMARY_AS
            xsi:type='xsd:string'></PRIMARY_AS> <PRIMARY_CE
            xsi:type='xsd:string'></PRIMARY_CE> <PRIMARY_CO
            xsi:type='xsd:string'></PRIMARY_CO> <PRIMARY_GE
            xsi:type='xsd:string'></PRIMARY_GE> <PRIMARY_H
            xsi:type='xsd:string'></PRIMARY_H> <PRIMARY_H_READING_TYPE
            xsi:type='xsd:string'></PRIMARY_H_READING_TYPE> <PRIMARY_SE
            xsi:type='xsd:string'></PRIMARY_SE> <PRIMARY_TA
            xsi:type='xsd:string'></PRIMARY_TA> <PRIMARY_TE
            xsi:type='xsd:string'></PRIMARY_TE> <SELLER_RSN_DESC
            xsi:type='xsd:string'></SELLER_RSN_DESC> <BUNDLE_YN
            xsi:type='xsd:string'>Y</BUNDLE_YN> <BUNDLE_TYPE_IND
            xsi:type='xsd:string'>S</BUNDLE_TYPE_IND> <BUNDLE_FORM_CD
            xsi:type='xsd:string'>TR</BUNDLE_FORM_CD> <BUNDLE_PIECE_QTY
            xsi:type='xsd:string'>15</BUNDLE_PIECE_QTY> <EDGE_TYPE
            xsi:type='xsd:string'></EDGE_TYPE> <PRODUCT_WIDTH_MIN
            xsi:type='xsd:string'>4</PRODUCT_WIDTH_MIN> <PRODUCT_WIDTH_MAX
            xsi:type='xsd:string'>5.25</PRODUCT_WIDTH_MAX>
            <PRODUCT_THICKNESS_MIN
            xsi:type='xsd:string'></PRODUCT_THICKNESS_MIN>
            <PRODUCT_THICKNESS_MAX
            xsi:type='xsd:string'></PRODUCT_THICKNESS_MAX>
            <PRODUCT_THICKNESS_TYPE
            xsi:type='xsd:string'></PRODUCT_THICKNESS_TYPE> <PRODUCT_LENGTH_MIN
            xsi:type='xsd:string'></PRODUCT_LENGTH_MIN> <PRODUCT_LENGTH_MAX
            xsi:type='xsd:string'></PRODUCT_LENGTH_MAX> <PRODUCT_SPEC_ID
            xsi:type='xsd:string'></PRODUCT_SPEC_ID> <PRODUCT_SPEC_TYPE_CD
            xsi:type='xsd:string'></PRODUCT_SPEC_TYPE_CD> <PLATE_33_MAX_YN
            xsi:type='xsd:string'></PLATE_33_MAX_YN> <STORAGE_LOCATION_IND
            xsi:type='xsd:string'></STORAGE_LOCATION_IND> <DOMESTIC_IMPORT_IND
            xsi:type='xsd:string'></DOMESTIC_IMPORT_IND> <COOLING_TIME_DUR_TOT
            xsi:type='xsd:string'></COOLING_TIME_DUR_TOT>
            <COOLING_TIME_UNIT_MEAS
            xsi:type='xsd:string'></COOLING_TIME_UNIT_MEAS>
            <PRODUCT_CERTIFICATION_AVAIL
            xsi:type='xsd:string'></PRODUCT_CERTIFICATION_AVAIL>
            <PRODUCT_HEAT_TREATMENT
            xsi:type='xsd:string'></PRODUCT_HEAT_TREATMENT> <POSITIONAL_LATITUDE
            xsi:type='xsd:string'></POSITIONAL_LATITUDE> <POSITIONAL_LONGITUDE
            xsi:type='xsd:string'></POSITIONAL_LONGITUDE> <FUTURE_START_DT
            xsi:type='xsd:string'></FUTURE_START_DT> <FUTURE_END_DT
            xsi:type='xsd:string'></FUTURE_END_DT> <UNLIMITED_QTY_YN
            xsi:type='xsd:string'>N</UNLIMITED_QTY_YN> <UNLIMITED_DURATION_YN
            xsi:type='xsd:string'>N</UNLIMITED_DURATION_YN> <PRODUCT_WGT_MIN
            xsi:type='xsd:string'></PRODUCT_WGT_MIN> <PRODUCT_WGT_MAX
            xsi:type='xsd:string'></PRODUCT_WGT_MAX> <PRODUCT_GAUGE_MIN
            xsi:type='xsd:string'>8.5</PRODUCT_GAUGE_MIN> <PRODUCT_GAUGE_MAX
            xsi:type='xsd:string'>9</PRODUCT_GAUGE_MAX> <PRODUCT_DIAMETER
            xsi:type='xsd:string'></PRODUCT_DIAMETER> <PRODUCT_MIN_DIAMETER
            xsi:type='xsd:string'></PRODUCT_MIN_DIAMETER> <PRODUCT_MAX_DIAMETER
            xsi:type='xsd:string'></PRODUCT_MAX_DIAMETER> <PRODUCT_THREAD_YN
            xsi:type='xsd:string'></PRODUCT_THREAD_YN> <PRODUCT_CONDITION
            xsi:type='xsd:string'></PRODUCT_CONDITION> <PRODUCT_CUT_EDGE_TYPE
            xsi:type='xsd:string'></PRODUCT_CUT_EDGE_TYPE> <PRODUCT_HARDENING
            xsi:type='xsd:string'></PRODUCT_HARDENING> <DEOX_TYPE
            xsi:type='xsd:string'></DEOX_TYPE> <MELT_TYPE
            xsi:type='xsd:string'></MELT_TYPE> <THREAD_TYPE
            xsi:type='xsd:string'></THREAD_TYPE> <MECH_PROP_TENSILE
            xsi:type='xsd:string'></MECH_PROP_TENSILE> <MECH_PROP_YLD
            xsi:type='xsd:string'></MECH_PROP_YLD> <MECH_PROP_UOM
            xsi:type='xsd:string'></MECH_PROP_UOM> <MECH_PROP_ELONG_PCT
            xsi:type='xsd:string'></MECH_PROP_ELONG_PCT>
            <MECH_PROP_REDUCTION_PCT
            xsi:type='xsd:string'></MECH_PROP_REDUCTION_PCT> <MECH_PROP_HARDNESS
            xsi:type='xsd:string'></MECH_PROP_HARDNESS> <MECH_PROP_ROCKWELL
            xsi:type='xsd:string'></MECH_PROP_ROCKWELL>
            <MECH_PROP_ROCKWELL_SCALE
            xsi:type='xsd:string'></MECH_PROP_ROCKWELL_SCALE>
            <DISPLAY_RESERVE_PRICE
            xsi:type='xsd:string'></DISPLAY_RESERVE_PRICE> <CREFITEM
            xsi:type='xsd:string'></CREFITEM> <CATALOGREF
            xsi:type='xsd:string'></CATALOGREF> <CATALOG_CD
            xsi:type='xsd:string'>steel</CATALOG_CD> <FORM_CD
            xsi:type='xsd:string'>Coil</FORM_CD> <FAMILY_CD
            xsi:type='xsd:string'>HOT ROLL</FAMILY_CD> <SUB_FAMILY_CD
            xsi:type='xsd:string'>Dry</SUB_FAMILY_CD> <COMMERCE_TYPE
            xsi:type='xsd:string'>A</COMMERCE_TYPE> <errorMsg
            xsi:type='xsd:string'></errorMsg></product></inventory>
            </ProductString><messageType
            xsi:type="xsd:string">TEXT</messageType></namesp2:validateImport></SOA
            P-ENV:Body></SOAP-ENV:Envelope>
            SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH
            (0x842779c)
            SOAP::Transport::HTTP::Client::send_receive: HTTP/1.0 200 OK
            Date: Thu, 14 Mar 2002 20:07:18 GMT
            Server: GLUE/2.1
            Content-Length: 521
            Content-Type: text/xml; charset=UTF-8
            Client-Date: Thu, 14 Mar 2002 20:07:18 GMT
            Client-Peer: 192.168.0.178:8080
            Servlet-Engine: Jetty/3.1 (JSP 1.1; Servlet 2.2; java 1.3.1_02)

            <?xml version='1.0' encoding='UTF-8'?>
            <soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
            xmlns:xsd='http://www.w3.org/2001/XMLSchema'
            xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'
            xmlns:soapenc='http://schemas.xmlsoap.org/soap/encoding/'
            soap:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><soap:B
            ody><n:validateImportResponse
            xmlns:n='http://tempuri.org/net.metalsite.external.Product'><Result
            xsi:type='xsd:string'></Result></n:validateImportResponse></soap:Body>
            </soap:Envelope>

            > Also, looking at your original email :
            >
            > my $product = 'http://192.168.0.170:8080/mws/urn:Product.wsdl';
            > my $msg = SOAP::Lite->service($product)
            > ->validate('somesessionid',$long_line, 'TEXT');
            >
            > Are you sure that $product is being assigned correctly?
            > SOAP::Lite is fairly restricted in the WSDL that it can handle.

            Not sure what you mean by, "assigned correctly". I don't get any WSDL
            parse errors or anything like that. I do wonder whether the type
            negotiation and coercion is correct but I'm not sure I can make an
            informed opinion since I'd need to read the book on perl first. Sigh.

            Thanks,
            David
          • Duncan Cameron
            ... version= 1.0 encoding= UTF-8 ?
            Message 5 of 10 , Mar 14, 2002
              On 2002-03-15 davidthewatson wrote:
              >--- In soaplite@y..., Duncan Cameron <dcameron@b...> wrote:
              >> Not sure what you mean by this - 'killed on the wire'.
              >
              >I meant loosely, "Horked up in the SOAP protocol negotiation." Sorry.
              >
              >> Have you run with trace or debug to see the content of the SOAP
              >> envelope?
              >> use SOAP::Lite +trace => qw(all);
              >
              >No, I hadn't but with your instructions I did. Here's the output
              >(LONG, sorry again):
              >
              >SOAPAction: "validateImport"
              >
              ><?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-
              >ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
              >ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
              >xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
              >xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
              >xmlns:xsd="http://www.w3.org/1999/XMLSchema"><SOAP-
              >ENV:Body><namesp2:validateImport
              >xmlns:namesp2="http://tempuri.org/net.metalsite.external.Product"><ses
              >sionId xsi:type="xsd:string">8DEC2983-2EEB-93BB-D37C-
              >A228897DEC9C</sessionId><ProductString xsi:type="xsd:string">
              <?xml >version="1.0" encoding="UTF-8"?><inventory><product
              =======
              . snipped ...
              Well, you've actually got XML embedded as the content of your ProductString
              element, including an XML declaration, which makes the SOAP envelope
              badly-formed.

              I don't understand how SOAP::Lite did this as I thought it automatically
              escaped the <>& characters.
              Try getting rid of the document declaration (the <?xml ..> bit)
              Also, your server should have been complaining about the badly-formed
              envelope.
              >
              >> Also, looking at your original email :
              >>
              >> my $product = 'http://192.168.0.170:8080/mws/urn:Product.wsdl';
              >> my $msg = SOAP::Lite->service($product)
              >> ->validate('somesessionid',$long_line, 'TEXT');
              >>
              >> Are you sure that $product is being assigned correctly?
              >> SOAP::Lite is fairly restricted in the WSDL that it can handle.
              >
              >Not sure what you mean by, "assigned correctly". I don't get any WSDL
              >parse errors or anything like that. I do wonder whether the type
              >negotiation and coercion is correct but I'm not sure I can make an
              >informed opinion since I'd need to read the book on perl first. Sigh.

              Sorry, misread the code. I thought it was the result of a method call.

              Regards,
              Duncan Cameron
            • Paul Kulchenko
              Hi, Duncan! ... That s correct. ... SOAP::Lite doesn t do encoding and doesn t validate XML fragments you insert using xml pseudo-type. If it s not the case
              Message 6 of 10 , Mar 18, 2002
                Hi, Duncan!

                > Well, you've actually got XML embedded as the content of your
                > ProductString
                > element, including an XML declaration, which makes the SOAP
                > envelope badly-formed.
                That's correct.

                > I don't understand how SOAP::Lite did this as I thought it
                > automatically escaped the <>& characters.
                SOAP::Lite doesn't do encoding and doesn't validate XML fragments you
                insert using 'xml' pseudo-type. If it's not the case I would like to
                see the client code.

                > Try getting rid of the document declaration (the <?xml ..> bit)
                > Also, your server should have been complaining about the
                > badly-formed envelope.
                Yes. XML declarations are not allowed inside XML messages as far as I
                remember. Processing instructions are not allowed according to SOAP
                spec, but many toolkits just ignore them, but not fail.

                Best wishes, Paul.

                --- Duncan Cameron <dcameron@...> wrote:
                > On 2002-03-15 davidthewatson wrote:
                > >--- In soaplite@y..., Duncan Cameron <dcameron@b...> wrote:
                > >> Not sure what you mean by this - 'killed on the wire'.
                > >
                > >I meant loosely, "Horked up in the SOAP protocol negotiation."
                > Sorry.
                > >
                > >> Have you run with trace or debug to see the content of the SOAP
                > >> envelope?
                > >> use SOAP::Lite +trace => qw(all);
                > >
                > >No, I hadn't but with your instructions I did. Here's the output
                > >(LONG, sorry again):
                > >
                > >SOAPAction: "validateImport"
                > >
                > ><?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope
                > xmlns:SOAP-
                > >ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-
                > >ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                > >xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                > >xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
                > >xmlns:xsd="http://www.w3.org/1999/XMLSchema"><SOAP-
                > >ENV:Body><namesp2:validateImport
                >
                >xmlns:namesp2="http://tempuri.org/net.metalsite.external.Product"><ses
                > >sionId xsi:type="xsd:string">8DEC2983-2EEB-93BB-D37C-
                > >A228897DEC9C</sessionId><ProductString xsi:type="xsd:string">
                > <?xml >version="1.0" encoding="UTF-8"?><inventory><product
                > =======
                > . snipped ...
                > Well, you've actually got XML embedded as the content of your
                > ProductString
                > element, including an XML declaration, which makes the SOAP
                > envelope
                > badly-formed.
                >
                > I don't understand how SOAP::Lite did this as I thought it
                > automatically
                > escaped the <>& characters.
                > Try getting rid of the document declaration (the <?xml ..> bit)
                > Also, your server should have been complaining about the
                > badly-formed
                > envelope.
                > >
                > >> Also, looking at your original email :
                > >>
                > >> my $product = 'http://192.168.0.170:8080/mws/urn:Product.wsdl';
                > >> my $msg = SOAP::Lite->service($product)
                > >> ->validate('somesessionid',$long_line, 'TEXT');
                > >>
                > >> Are you sure that $product is being assigned correctly?
                > >> SOAP::Lite is fairly restricted in the WSDL that it can handle.
                > >
                > >Not sure what you mean by, "assigned correctly". I don't get any
                > WSDL
                > >parse errors or anything like that. I do wonder whether the type
                > >negotiation and coercion is correct but I'm not sure I can make an
                >
                > >informed opinion since I'd need to read the book on perl first.
                > Sigh.
                >
                > Sorry, misread the code. I thought it was the result of a method
                > call.
                >
                > Regards,
                > Duncan Cameron
                >
                >
                >
                >
                >
                >
                > ------------------------ Yahoo! Groups Sponsor
                >
                > To unsubscribe from this group, send an email to:
                > soaplite-unsubscribe@yahoogroups.com
                >
                >
                >
                > Your use of Yahoo! Groups is subject to
                > http://docs.yahoo.com/info/terms/
                >
                >


                __________________________________________________
                Do You Yahoo!?
                Yahoo! Sports - live college hoops coverage
                http://sports.yahoo.com/
              • Paul Kulchenko
                Hi, David! ... Just a follow-up. You can force encoding of your XML fragment with this code: my $product = http://192.168.0.170:8080/mws/urn:Product.wsdl ; my
                Message 7 of 10 , Mar 18, 2002
                  Hi, David!

                  --- Duncan Cameron <dcameron@...> wrote:
                  > I don't understand how SOAP::Lite did this as I thought it
                  > automatically escaped the <>& characters.

                  Just a follow-up. You can force encoding of your XML fragment with
                  this code:

                  my $product = 'http://192.168.0.170:8080/mws/urn:Product.wsdl';
                  my $msg = SOAP::Lite->service($product)
                  ->validate('somesessionid',
                  SOAP::Data->type(string => $long_line),
                  'TEXT');

                  > >> SOAP::Lite is fairly restricted in the WSDL that it can handle.
                  That's the main reason for this effect. Will be fixed.

                  Best wishes, Paul.

                  __________________________________________________
                  Do You Yahoo!?
                  Yahoo! Sports - live college hoops coverage
                  http://sports.yahoo.com/
                • Paul Kulchenko
                  Hi, David! ... That s still a mystery for me. You should get this message ONLY if wsdl file specifies xmlProductString as an element name (which is
                  Message 8 of 10 , Mar 18, 2002
                    Hi, David!

                    > I have deleted a lot of extraneous code for brevity. SOAP::Lite
                    > generates this message
                    >
                    > Element 'xmlProductString' can't be allowed in valid XML message.
                    > Died
                    That's still a mystery for me. You should get this message ONLY if
                    wsdl file specifies "xmlProductString" as an element name (which is
                    incorrect), but I can't access the file to verify that. Let me know
                    if you see some other reason.

                    Best wishes, Paul.

                    --- davidthewatson <davidthewatson@...> wrote:
                    > I have the following code:
                    >
                    > use SOAP::Lite;
                    > $file = 'data.xml' ;
                    > open(INFO, "<$file" ) ;
                    > @lines = <INFO> ;
                    > close(INFO) ;
                    > $long_line = join("\n", @lines);
                    > my $product = 'http://192.168.0.170:8080/mws/urn:Product.wsdl';
                    > my $msg = SOAP::Lite->service($product)->validate
                    > ('somesessionid',$long_line, 'TEXT');
                    >
                    > I have deleted a lot of extraneous code for brevity. SOAP::Lite
                    > generates this message
                    >
                    > Element 'xmlProductString' can't be allowed in valid XML message.
                    > Died
                    >
                    > when making the validate call. The server is running Glue 2.1 from
                    > the mind electric. The second parameter where $long_line is being
                    > passed is a SOAP string which has embedded XML in it. This works
                    > with
                    > a variety of clients including java, dotnet(C#), vbscript, etc. I'm
                    >
                    > not sure why the SOAP::Lite parser doesn't like the embedded XML
                    > string. I assume there's a parsing issue with the tags but I'm not
                    > sure if it can be escaped or whether there's a call I can make to
                    > tell it to treat the string specially.
                    >
                    > Thanks,
                    > David
                    >
                    >
                    > ------------------------ Yahoo! Groups Sponsor
                    >
                    > To unsubscribe from this group, send an email to:
                    > soaplite-unsubscribe@yahoogroups.com
                    >
                    >
                    >
                    > Your use of Yahoo! Groups is subject to
                    > http://docs.yahoo.com/info/terms/
                    >
                    >


                    __________________________________________________
                    Do You Yahoo!?
                    Yahoo! Sports - live college hoops coverage
                    http://sports.yahoo.com/
                  • davidthewatson
                    ... Hi Paul: I tried your suggestion above today. It doesn t work either. The end result is that the server receives a null string. I ve also tried removing
                    Message 9 of 10 , Mar 21, 2002
                      --- In soaplite@y..., Paul Kulchenko <paulclinger@y...> wrote:
                      > Just a follow-up. You can force encoding of your XML fragment with
                      > this code:
                      >
                      > my $product = 'http://192.168.0.170:8080/mws/urn:Product.wsdl';
                      > my $msg = SOAP::Lite->service($product)
                      > ->validate('somesessionid',
                      > SOAP::Data->type(string => $long_line),
                      > 'TEXT');

                      Hi Paul:

                      I tried your suggestion above today. It doesn't work either. The end
                      result is that the server receives a null string. I've also tried
                      removing the XML declaration from the string being sent. That doesn't
                      solve it either. I also tried a bit of replacement on the (typically
                      escaped) characters. That doesn't seem to do it either. Not sure if
                      there's anything else I should try.

                      Thanks for all of your help.

                      -david
                    Your message has been successfully submitted and would be delivered to recipients shortly.