MainframeMaster

COBOL Tutorial

COBOL XML-NNAMESPACE - Quick Reference

Progress0 of 0 lessons

Overview

XML-NNAMESPACE in COBOL refers to XML processing that does not involve namespace handling. This approach treats all XML elements as simple element names without namespace qualification, making it suitable for processing simple XML documents, legacy XML formats, or situations where namespace awareness is not required.

Key Features

  • Simple processing - Treats all elements as regular element names
  • No namespace awareness - Ignores namespace declarations and prefixes
  • Legacy compatibility - Works with older XML formats
  • Performance optimized - Simpler processing without namespace overhead

Syntax and Usage

XML-NNAMESPACE usage patterns for processing XML without namespace awareness.

Basic XML-NNAMESPACE Processing

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
IDENTIFICATION DIVISION. PROGRAM-ID. XML-NNAMESPACE-EXAMPLE. DATA DIVISION. WORKING-STORAGE SECTION. 01 XML-DOCUMENT PIC X(1000) VALUE "John Doe12345". 01 XML-EVENT-TYPE PIC X(20). 01 XML-EVENT-NAME PIC X(30). 01 XML-EVENT-CONTENT PIC X(100). 01 CUSTOMER-NAME PIC X(30). 01 CUSTOMER-ID PIC 9(5). PROCEDURE DIVISION. XML PARSE XML-DOCUMENT PROCESSING PROCEDURE HANDLE-SIMPLE-XML END-XML DISPLAY "Customer Name: " CUSTOMER-NAME DISPLAY "Customer ID: " CUSTOMER-ID STOP RUN. HANDLE-SIMPLE-XML. EVALUATE XML-EVENT-TYPE WHEN "START-OF-ELEMENT" IF XML-EVENT-NAME = "name" MOVE "Y" TO PROCESSING-NAME END-IF WHEN "CHARACTER-CONTENT" IF PROCESSING-NAME = "Y" MOVE XML-EVENT-CONTENT TO CUSTOMER-NAME MOVE "N" TO PROCESSING-NAME END-IF END-EVALUATE EXIT.

Basic XML-NNAMESPACE processing for simple XML documents without namespace awareness.

XML-NNAMESPACE with Ignored Prefixes

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
IDENTIFICATION DIVISION. PROGRAM-ID. XML-IGNORE-PREFIXES. DATA DIVISION. WORKING-STORAGE SECTION. 01 XML-DOCUMENT PIC X(1000) VALUE " John Doe 12345 ". 01 XML-EVENT-TYPE PIC X(20). 01 XML-EVENT-NAME PIC X(30). 01 XML-EVENT-CONTENT PIC X(100). 01 CUSTOMER-NAME PIC X(30). 01 CUSTOMER-ID PIC 9(5). PROCEDURE DIVISION. XML PARSE XML-DOCUMENT PROCESSING PROCEDURE HANDLE-IGNORED-PREFIXES END-XML DISPLAY "Customer Name: " CUSTOMER-NAME DISPLAY "Customer ID: " CUSTOMER-ID STOP RUN. HANDLE-IGNORED-PREFIXES. EVALUATE XML-EVENT-TYPE WHEN "START-OF-ELEMENT" * Treats "ns:name" as just "name" IF XML-EVENT-NAME = "name" MOVE "Y" TO PROCESSING-NAME END-IF IF XML-EVENT-NAME = "id" MOVE "Y" TO PROCESSING-ID END-IF WHEN "CHARACTER-CONTENT" IF PROCESSING-NAME = "Y" MOVE XML-EVENT-CONTENT TO CUSTOMER-NAME MOVE "N" TO PROCESSING-NAME END-IF IF PROCESSING-ID = "Y" MOVE XML-EVENT-CONTENT TO CUSTOMER-ID MOVE "N" TO PROCESSING-ID END-IF END-EVALUATE EXIT.

XML-NNAMESPACE processing that ignores namespace prefixes and treats them as regular element names.

XML-NNAMESPACE for Legacy XML

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
IDENTIFICATION DIVISION. PROGRAM-ID. XML-LEGACY-PROCESSING. DATA DIVISION. WORKING-STORAGE SECTION. 01 XML-DOCUMENT PIC X(1000) VALUE "John Doe Widget5 ". 01 XML-EVENT-TYPE PIC X(20). 01 XML-EVENT-NAME PIC X(30). 01 XML-EVENT-CONTENT PIC X(100). 01 ORDER-DATA. 05 CUSTOMER-NAME PIC X(30). 05 PRODUCT-NAME PIC X(20). 05 QUANTITY PIC 9(3). PROCEDURE DIVISION. XML PARSE XML-DOCUMENT PROCESSING PROCEDURE HANDLE-LEGACY-XML END-XML DISPLAY "Customer: " CUSTOMER-NAME DISPLAY "Product: " PRODUCT-NAME DISPLAY "Quantity: " QUANTITY STOP RUN. HANDLE-LEGACY-XML. EVALUATE XML-EVENT-TYPE WHEN "START-OF-ELEMENT" EVALUATE XML-EVENT-NAME WHEN "name" MOVE "Y" TO PROCESSING-NAME WHEN "product" MOVE "Y" TO PROCESSING-PRODUCT WHEN "qty" MOVE "Y" TO PROCESSING-QTY END-EVALUATE WHEN "CHARACTER-CONTENT" IF PROCESSING-NAME = "Y" MOVE XML-EVENT-CONTENT TO CUSTOMER-NAME MOVE "N" TO PROCESSING-NAME END-IF IF PROCESSING-PRODUCT = "Y" MOVE XML-EVENT-CONTENT TO PRODUCT-NAME MOVE "N" TO PROCESSING-PRODUCT END-IF IF PROCESSING-QTY = "Y" MOVE XML-EVENT-CONTENT TO QUANTITY MOVE "N" TO PROCESSING-QTY END-IF END-EVALUATE EXIT.

XML-NNAMESPACE processing for legacy XML documents without namespace requirements.

Processing Types

Simple XML

Basic XML without namespaces.

xml
1
2
3
4
John Doe 12345

Ignored Prefixes

XML with prefixes that are ignored.

xml
1
2
3
4
John Doe 12345

Legacy XML

Older XML formats without namespaces.

xml
1
2
3
4
John Widget

Mixed Content

XML with both namespaced and non-namespaced content.

xml
1
2
3
4
John Doe Widget

Best Practices

  • Use for simple XML - Choose XML-NNAMESPACE for simple, non-namespaced XML
  • Legacy compatibility - Use for processing older XML formats
  • Performance consideration - Use when namespace awareness is not needed
  • Document requirements - Ensure your XML documents don\'t require namespace handling
  • Error handling - Provide error handling for potential naming conflicts

XML-NNAMESPACE Quick Reference

Processing TypeBehaviorUse Case
Simple XMLDirect element processingBasic XML documents
Ignored PrefixesPrefixes treated as part of element nameNamespaced XML without namespace awareness
Legacy XMLTraditional XML processingOlder XML formats
Mixed ContentUniform processing regardless of namespaceDocuments with mixed namespace usage

Test Your Knowledge

1. What is the primary purpose of XML-NNAMESPACE in COBOL?

  • To generate XML documents
  • To handle XML processing without namespace support or for non-namespaced XML documents
  • To validate XML schemas
  • To format XML output

2. When would you use XML-NNAMESPACE instead of XML-NAMESPACE?

  • When processing simple XML documents without namespace declarations
  • When you want to ignore namespace information
  • When working with legacy XML formats that don't use namespaces
  • All of the above

3. What is the main difference between XML-NNAMESPACE and XML-NAMESPACE?

  • XML-NNAMESPACE is faster
  • XML-NNAMESPACE ignores namespace declarations and processes elements without namespace awareness
  • XML-NNAMESPACE only works with specific XML formats
  • There is no difference

4. How does XML-NNAMESPACE handle elements with prefixes?

  • It treats them as namespace-qualified elements
  • It ignores the prefixes and treats them as regular element names
  • It generates an error
  • It skips them entirely

5. What is a common use case for XML-NNAMESPACE?

  • Processing complex multi-namespace documents
  • Processing simple, legacy XML documents without namespace requirements
  • Validating namespace declarations
  • Generating namespace-aware XML

Frequently Asked Questions