Your HelloXML program seems to work with me. I have the following in the
joblog:





XML Event XML Text

START-OF-DOCUMENT             <?xml version="1.0" encoding

="ibm-37"?> <msg type="succinct">Hello, World!</msg>

VERSION-INFORMATION           1.0

ENCODING-DECLARATION          ibm-37

START-OF-ELEMENT              msg

ATTRIBUTE-NAME                type

ATTRIBUTE-CHARACTERS          succinct

CONTENT-CHARACTERS            Hello, World!

END-OF-ELEMENT                msg

END-OF-DOCUMENT




> Part 1 (3 Aug 05)
> I'm trying to test the new feature of ILE COBOL V5R3, the XML PARSE
> ability, but I have problems.
> When I try this simplest example:
>
>        Identification division.
>        Program-id. HelloXML.
>        Data division.
>        Working-storage section.
>          1 M.
>           2 pic x(40) value
>              '<?xml version="1.0" encoding="ibm-37"?>'.
>           2 pic x(40) value
>              '<msg type="succinct">Hello, World!</msg>'.
>        Procedure division.
>           Display 'XML Event XML Text'
>           XML Parse M
>             Processing procedure P
>           End-XML
>           Goback.
>        P.
>           If XML-Code = 0
>              Display XML-Event XML-Text
>           End-if.
>        End program HelloXML.
>
> I obtain Exception. The values of registers are:
>
> XML-CODE = 000000051 i.e. "The document was encoded in EBCDIC, and the
> document encoding declaration specified a supported EBCDIC encoding, but
> the parser does not support the CCSID of the COBOL source member."
>
> I'dont know why the parser does not support the CCSID of my source member,
> because the CCSID of my source file is 37 (just like the CCSID of XML)
>
> XML-EVENT = 'EXCEPTION '
>
> When I try to look at XML-TEXT, I become the following message:
>
> Message ID . . . . . . :   MCH0601       Severity . . . . . . . :   40
> Message type . . . . . :   Diagnostic
> Date sent  . . . . . . :   03/08/05      Time sent  . . . . . . : 09:13:55
>
> Message . . . . : Space offset X'00FFF000' or X'0000000000000000' is
> outside
> current limit for object &1.
> Cause . . . . . : A program tried to set a space pointer or use storage
> outside a space, or tried to use an unallocated page in teraspace. The
> space
> class is X'04'. The space class designates the type of space:
> 00-primary associated space (includes space objects).
> 01-secondary associated space 0.
> 02-implicit process space for automatic storage.
> 03-implicit process space for static storage in activation group mark
> X'00000000'.
> 04-implicit process space for heap identifier X'00000000' in activation
> group mark X'00000000'.
> 05-constant space.
> 06-space for handle-based heap identifier X'00000000'.
> 07-teraspace offset X'0000000000000000'.
> 08-teraspace for OS/400 PASE memory address X'0000000000000000'.
> Offset X'00FFF000' only applies to storage outside teraspace.
> X'8000000000000000F1D06F2C2E001000' is a pointer to the teraspace page or
> the start of the implicit process space for the allocation.
>
> Can anybody say me, what's going wrong?
>
>
> Part 2 (11 Aug 05 8:34)
> The above mentioned problem can be partially solved by placing the XML
> document (encoded in CCSID=819) in the IFS directory e.g. /home/user1. The
> CCSID defined inside of the XML document must be 819 too, i.e.:
>
> <?xml version="1.0" encoding="ibm-819" standalone="yes"?>
> <!--This document is just an example-->
> <sandwich>
>  <bread type="baker&apos;s best"/>
>  <?spread please use real mayonnaise ?>
>  <meat>Ham & turkey</meat>
>  <filling>Cheese, lettuce, tomato, etc. </filling>
>  <![CDATA[We should add a <relish> element in future!]]>
>  <listprice>$4.99 </listprice>
>  <discount>0.10</discount>
> </sandwich>
>
> and here is the COBOL sample program
>
>        Process APOST
>        Identification division.
>          Program-id. xmlsampl2.
>
>        Data division.
>         Working-storage section.
>       ******************************************************************
>       * XML document, encoded as initial values of data items.         *
>       ******************************************************************
>          1 xml-id pic x(27) value '/home/user1/xmlsampldoc.xml'.
>          1 xml-document-length computational pic 999.
>
>       ******************************************************************
>       * Sample data definitions for processing numeric XML content.    *
>       ******************************************************************
>          1 current-element pic x(30).
>          1 list-price computational pic 9v99 value 0.
>          1 discount computational pic 9v99 value 0.
>          1 display-price pic $$9.99.
>        Procedure division.
>         mainline section.
>
>            XML PARSE FILE-STREAM xml-id PROCESSING PROCEDURE xml-handler
>            ON EXCEPTION
>              display 'XML document error ' XML-CODE
>            NOT ON EXCEPTION
>              display 'XML document successfully parsed'
>            END-XML
>
>       ******************************************************************
>       * Process the transformed content and calculate promo price.     *
>       ******************************************************************
>            display ' '
>            display '-----+++++***** Using information from XML '
>                '*****+++++-----'
>            display ' '
>            move list-price to display-price
>            display ' Sandwich list price: ' display-price
>            compute display-price = list-price * (1 - discount)
>            display ' Promotional price: ' display-price
>            display ' Get one today!'
>
>            goback.
>
>         xml-handler section.
>            evaluate XML-EVENT
>       * ==> Order XML events most frequent first
>              when 'START-OF-ELEMENT'
>                display 'Start element tag: <' XML-TEXT '>'
>                move XML-TEXT to current-element
>              when 'CONTENT-CHARACTERS'
>                display 'Content characters: <' XML-TEXT '>'
>       * ==> Transform XML content to operational COBOL data item...
>                evaluate current-element
>                  when 'listprice'
>       * ==> Using function NUMVAL-C...
>                    compute list-price = function numval-c(XML-TEXT)
>                  when 'discount'
>                    compute discount = function numval-c(XML-TEXT)
>                end-evaluate
>              when 'END-OF-ELEMENT'
>                display 'End element tag: <' XML-TEXT '>'
>                move spaces to current-element
>              when 'START-OF-DOCUMENT'
>                compute xml-document-length = function length(XML-TEXT)
>                display 'Start of document: length=' xml-document-length
>                    ' characters.'
>              when 'END-OF-DOCUMENT'
>                display 'End of document.'
>              when 'VERSION-INFORMATION'
>                display 'Version: <' XML-TEXT '>'
>              when 'ENCODING-DECLARATION'
>                display 'Encoding: <' XML-TEXT '>'
>              when 'STANDALONE-DECLARATION'
>                display 'Standalone: <' XML-TEXT '>'
>              when 'ATTRIBUTE-NAME'
>                display 'Attribute name: <' XML-TEXT '>'
>              when 'ATTRIBUTE-CHARACTERS'
>                display 'Attribute value characters: <' XML-TEXT '>'
>              when 'ATTRIBUTE-CHARACTER'
>                display 'Attribute value character: <' XML-TEXT '>'
>              when 'START-OF-CDATA-SECTION'
>                display 'Start of CData: <' XML-TEXT '>'
>              when 'END-OF-CDATA-SECTION'
>                display 'End of CData: <' XML-TEXT '>'
>              when 'CONTENT-CHARACTER'
>                display 'Content character: <' XML-TEXT '>'
>              when 'PROCESSING-INSTRUCTION-TARGET'
>                display 'PI target: <' XML-TEXT '>'
>              when 'PROCESSING-INSTRUCTION-DATA'
>                display 'PI data: <' XML-TEXT '>'
>              when 'COMMENT'
>                display 'Comment: <' XML-TEXT '>'
>              when 'EXCEPTION'
>                compute xml-document-length = function length (XML-TEXT)
>                display 'Exception ' XML-CODE ' at offset '
>                    xml-document-length '.'
>              when other
>                display 'Unexpected XML event: ' XML-EVENT '.'
>            end-evaluate
>            .
>          End program xmlsampl2.
>
> There is a CCSID-Option in ILE COBOL compiler too. After the compiling
> with the command
>
> CRTBNDCBL PGM(EBKPGMP/XMLSAMPL2)
> SRCFILE(RM/XMLSRC) SRCMBR(XMLSAMPL2)
> OPTION(*SOURCE *APOST) DBGVIEW(*SOURCE) ACTGRP(*CALLER)
> CCSID(819)
>
> (or without C
> CSID option) the program runs without exception, but the
> output is hieroglyphics (false encoding) e.g.:
>
> Start element tag: <Ë/>???ÄÇ>
> Content characters: <  >
> Start element tag: <Â?Á/?>
> Attribute name: <?`?Á>
> Attribute value characters: <Â/,Á?>
> Attribute value character: <
> Attribute value characters: <Ë ÂÁË?>
>
> I don't know how to fix this problem..
>
> I spoked with the IBM support too. At present it seems so, that XML PARSE
> statement in ILE COBOL has problems with encodings, it works probably only
> with CCSID=819.
>
> My opinion is, that the XML PARSE in ILE COBOL V5R3 statement is presently
> not fit for production use.
>
> Have you other experience with XML PARSE statement in ILE COBOL V5R3 ?
> --
> This is the COBOL Programming on the iSeries/AS400 (COBOL400-L) mailing
> list
> To post a message email: COBOL400-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/cobol400-l
> or email: COBOL400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/cobol400-l.
>


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.