MainframeMaster

COBOL Tutorial

COBOL XML-NNAMESPACE-PREFIX - Quick Reference

Progress0 of 0 lessons

Overview

XML-NNAMESPACE-PREFIX in COBOL refers to XML processing that treats namespace prefixes as part of element names without resolving them to namespace URIs. This approach preserves prefix information while avoiding the complexity of namespace processing, making it suitable for scenarios where namespace resolution is not required but prefix information is useful.

Key Features

  • Prefix preservation - Treats prefixes as part of element names
  • No namespace resolution - Avoids namespace URI resolution
  • Simplified processing - Reduces complexity of namespace handling
  • Performance optimized - Faster processing without namespace overhead

Syntax and Usage

XML-NNAMESPACE-PREFIX usage patterns for processing XML with prefix preservation.

Basic XML-NNAMESPACE-PREFIX 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
35
36
37
38
39
40
41
42
43
44
45
IDENTIFICATION DIVISION. PROGRAM-ID. XML-NNAMESPACE-PREFIX-EXAMPLE. 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-PREFIX-XML END-XML DISPLAY "Customer Name: " CUSTOMER-NAME DISPLAY "Customer ID: " CUSTOMER-ID STOP RUN. HANDLE-PREFIX-XML. EVALUATE XML-EVENT-TYPE WHEN "START-OF-ELEMENT" * Treats "ns:name" as the full element name IF XML-EVENT-NAME = "ns:name" MOVE "Y" TO PROCESSING-NAME END-IF IF XML-EVENT-NAME = "ns: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.

Basic XML-NNAMESPACE-PREFIX processing that treats prefixes as part of element names.

Multiple Prefix Handling

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
53
54
55
56
57
58
59
60
IDENTIFICATION DIVISION. PROGRAM-ID. XML-MULTI-PREFIX. DATA DIVISION. WORKING-STORAGE SECTION. 01 XML-DOCUMENT PIC X(1000) VALUE " John Doe Widget 29.99 ". 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 PRODUCT-NAME PIC X(20). 01 PRODUCT-PRICE PIC 9(5)V99. PROCEDURE DIVISION. XML PARSE XML-DOCUMENT PROCESSING PROCEDURE HANDLE-MULTI-PREFIX END-XML DISPLAY "Customer: " CUSTOMER-NAME DISPLAY "Product: " PRODUCT-NAME DISPLAY "Price: " PRODUCT-PRICE STOP RUN. HANDLE-MULTI-PREFIX. EVALUATE XML-EVENT-TYPE WHEN "START-OF-ELEMENT" EVALUATE XML-EVENT-NAME WHEN "customer:name" MOVE "Y" TO PROCESSING-CUSTOMER-NAME WHEN "product:name" MOVE "Y" TO PROCESSING-PRODUCT-NAME WHEN "product:price" MOVE "Y" TO PROCESSING-PRODUCT-PRICE END-EVALUATE WHEN "CHARACTER-CONTENT" IF PROCESSING-CUSTOMER-NAME = "Y" MOVE XML-EVENT-CONTENT TO CUSTOMER-NAME MOVE "N" TO PROCESSING-CUSTOMER-NAME END-IF IF PROCESSING-PRODUCT-NAME = "Y" MOVE XML-EVENT-CONTENT TO PRODUCT-NAME MOVE "N" TO PROCESSING-PRODUCT-NAME END-IF IF PROCESSING-PRODUCT-PRICE = "Y" MOVE XML-EVENT-CONTENT TO PRODUCT-PRICE MOVE "N" TO PROCESSING-PRODUCT-PRICE END-IF END-EVALUATE EXIT.

XML-NNAMESPACE-PREFIX processing for documents with multiple prefixes.

Ignored Namespace Declarations

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
IDENTIFICATION DIVISION. PROGRAM-ID. XML-IGNORED-NAMESPACES. DATA DIVISION. WORKING-STORAGE SECTION. 01 XML-DOCUMENT PIC X(1000) VALUE " Value 1 Value 2 ". 01 XML-EVENT-TYPE PIC X(20). 01 XML-EVENT-NAME PIC X(30). 01 XML-EVENT-CONTENT PIC X(100). PROCEDURE DIVISION. XML PARSE XML-DOCUMENT PROCESSING PROCEDURE HANDLE-IGNORED-NAMESPACES END-XML DISPLAY "Processing completed" STOP RUN. HANDLE-IGNORED-NAMESPACES. EVALUATE XML-EVENT-TYPE WHEN "START-OF-ELEMENT" IF XML-EVENT-NAME = "ns1:element1" MOVE "Y" TO PROCESSING-NS1-ELEMENT * xmlns:ns1 attribute is ignored END-IF IF XML-EVENT-NAME = "ns2:element2" MOVE "Y" TO PROCESSING-NS2-ELEMENT * xmlns:ns2 attribute is ignored END-IF WHEN "CHARACTER-CONTENT" IF PROCESSING-NS1-ELEMENT = "Y" DISPLAY "NS1 Element: " XML-EVENT-CONTENT MOVE "N" TO PROCESSING-NS1-ELEMENT END-IF IF PROCESSING-NS2-ELEMENT = "Y" DISPLAY "NS2 Element: " XML-EVENT-CONTENT MOVE "N" TO PROCESSING-NS2-ELEMENT END-IF END-EVALUATE EXIT.

XML-NNAMESPACE-PREFIX processing that ignores namespace declarations while preserving prefixes.

Processing Types

Single Prefix

XML with one prefix treated as element name.

xml
1
2
3
4
John Doe 12345

Multiple Prefixes

XML with multiple prefixes preserved.

xml
1
2
3
4
John Widget

Mixed Content

XML with prefixed and non-prefixed elements.

xml
1
2
3
4
No prefix With prefix

Ignored Declarations

XML with namespace declarations that are ignored.

xml
1
2
3
4
Value

Best Practices

  • Prefix awareness - Be aware that prefixes are part of element names
  • Namespace ignorance - Don\'t rely on namespace resolution
  • Element matching - Match full element names including prefixes
  • Performance benefit - Use when namespace resolution is not needed
  • Documentation - Document that namespace processing is not performed

XML-NNAMESPACE-PREFIX Quick Reference

Processing TypeBehaviorUse Case
Single PrefixTreats prefix as part of element nameSimple prefixed XML
Multiple PrefixesPreserves all prefixes without resolutionMulti-prefix documents
Mixed ContentHandles both prefixed and non-prefixed elementsDocuments with mixed prefix usage
Ignored DeclarationsTreats xmlns attributes as regular attributesDocuments with namespace declarations

Test Your Knowledge

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

  • To generate XML documents
  • To handle XML processing without namespace awareness while treating prefixes as part of element names
  • To validate XML schemas
  • To format XML output

2. How does XML-NNAMESPACE-PREFIX handle namespace prefixes?

  • It ignores all prefixes completely
  • It treats prefixes as part of the element name without namespace resolution
  • It resolves prefixes to namespace URIs
  • It generates an error for prefixed elements

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

  • XML-NNAMESPACE-PREFIX is faster
  • XML-NNAMESPACE-PREFIX treats prefixes as part of element names without namespace resolution
  • XML-NNAMESPACE-PREFIX only works with specific XML formats
  • There is no difference

4. How does XML-NNAMESPACE-PREFIX handle xmlns attributes?

  • It processes them as namespace declarations
  • It ignores them completely
  • It treats them as regular attributes without namespace processing
  • It generates an error

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

  • Processing complex multi-namespace documents
  • Processing XML with prefixes when namespace resolution is not needed
  • Validating namespace declarations
  • Generating namespace-aware XML

Frequently Asked Questions