+- Input[@CanonicalImage = null, @ExcludedLinesCount = 0, @ExcludedRangesCount = 0]
   +- Global[@CanonicalImage = null]
      +- Block[@CanonicalImage = null]
         +- DeclarativeSection[@CanonicalImage = null]
         |  +- DeclarativeUnit[@CanonicalImage = null]
         |  |  +- VariableOrConstantDeclaration[@CanonicalImage = null]
         |  |     +- VariableOrConstantDeclarator[@CanonicalImage = "L_XML XMLTYPE := XMLTYPE", @Image = "l_xml XMLTYPE := XMLTYPE"]
         |  |        +- VariableOrConstantDeclaratorId[@Array = false, @ArrayDepth = 0, @CanonicalImage = "L_XML", @Image = "l_xml"]
         |  |        |  +- ID[@CanonicalImage = "L_XML", @Image = "l_xml"]
         |  |        +- Datatype[@CanonicalImage = "XMLTYPE", @Image = "XMLTYPE", @TypeImage = "XMLTYPE"]
         |  |        |  +- QualifiedName[@CanonicalImage = "XMLTYPE", @Image = "XMLTYPE"]
         |  |        |     +- UnqualifiedID[@CanonicalImage = "XMLTYPE", @Image = "XMLTYPE"]
         |  |        +- VariableOrConstantInitializer[@CanonicalImage = "XMLTYPE", @Image = "XMLTYPE"]
         |  |           +- Expression[@CanonicalImage = "XMLTYPE", @Image = "XMLTYPE"]
         |  |              +- PrimaryPrefix[@CanonicalImage = "XMLTYPE", @Image = "XMLTYPE", @SelfModifier = false]
         |  |                 +- FunctionCall[@CanonicalImage = "XMLTYPE", @Image = "XMLTYPE"]
         |  |                    +- FunctionName[@CanonicalImage = "XMLTYPE", @Image = "XMLTYPE"]
         |  |                    |  +- ID[@CanonicalImage = "XMLTYPE", @Image = "XMLTYPE"]
         |  |                    +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
         |  |                       +- ArgumentList[@CanonicalImage = null]
         |  |                          +- Argument[@CanonicalImage = null]
         |  |                             +- Expression[@CanonicalImage = "\'<CATALOG>\n   <BOOK>\n      <AUTHOR>STEVEN FEUERSTEIN</AUTHOR>\n      <TITLE>ORACLE PLSQL LANGUAGE POCKET REFERENCE</TITLE>\n      <GENRE>PROGRAMMING</GENRE>\n      <PRICE>18.25</PRICE>\n      <PUBLISHDATE>2015-09-04</PUBLISHDATE>\n      <DESCRIPTION>A GUIDE TO ORACLE PLSQL LANGUAGE FUNDAMENTALS.</DESCRIPTION>\n   </BOOK>\n</CATALOG>\'", @Image = "\'<Catalog>\n   <Book>\n      <Author>Steven Feuerstein</Author>\n      <Title>Oracle PLSQL Language Pocket Reference</Title>\n      <Genre>Programming</Genre>\n      <Price>18.25</Price>\n      <PublishDate>2015-09-04</PublishDate>\n      <Description>A guide to Oracle PLSQL Language Fundamentals.</Description>\n   </Book>\n</Catalog>\'"]
         |  |                                +- PrimaryPrefix[@CanonicalImage = "\'<CATALOG>\n   <BOOK>\n      <AUTHOR>STEVEN FEUERSTEIN</AUTHOR>\n      <TITLE>ORACLE PLSQL LANGUAGE POCKET REFERENCE</TITLE>\n      <GENRE>PROGRAMMING</GENRE>\n      <PRICE>18.25</PRICE>\n      <PUBLISHDATE>2015-09-04</PUBLISHDATE>\n      <DESCRIPTION>A GUIDE TO ORACLE PLSQL LANGUAGE FUNDAMENTALS.</DESCRIPTION>\n   </BOOK>\n</CATALOG>\'", @Image = "\'<Catalog>\n   <Book>\n      <Author>Steven Feuerstein</Author>\n      <Title>Oracle PLSQL Language Pocket Reference</Title>\n      <Genre>Programming</Genre>\n      <Price>18.25</Price>\n      <PublishDate>2015-09-04</PublishDate>\n      <Description>A guide to Oracle PLSQL Language Fundamentals.</Description>\n   </Book>\n</Catalog>\'", @SelfModifier = false]
         |  |                                   +- Literal[@CanonicalImage = "\'<CATALOG>\n   <BOOK>\n      <AUTHOR>STEVEN FEUERSTEIN</AUTHOR>\n      <TITLE>ORACLE PLSQL LANGUAGE POCKET REFERENCE</TITLE>\n      <GENRE>PROGRAMMING</GENRE>\n      <PRICE>18.25</PRICE>\n      <PUBLISHDATE>2015-09-04</PUBLISHDATE>\n      <DESCRIPTION>A GUIDE TO ORACLE PLSQL LANGUAGE FUNDAMENTALS.</DESCRIPTION>\n   </BOOK>\n</CATALOG>\'", @Image = "\'<Catalog>\n   <Book>\n      <Author>Steven Feuerstein</Author>\n      <Title>Oracle PLSQL Language Pocket Reference</Title>\n      <Genre>Programming</Genre>\n      <Price>18.25</Price>\n      <PublishDate>2015-09-04</PublishDate>\n      <Description>A guide to Oracle PLSQL Language Fundamentals.</Description>\n   </Book>\n</Catalog>\'"]
         |  |                                      +- StringLiteral[@CanonicalImage = "\'<CATALOG>\n   <BOOK>\n      <AUTHOR>STEVEN FEUERSTEIN</AUTHOR>\n      <TITLE>ORACLE PLSQL LANGUAGE POCKET REFERENCE</TITLE>\n      <GENRE>PROGRAMMING</GENRE>\n      <PRICE>18.25</PRICE>\n      <PUBLISHDATE>2015-09-04</PUBLISHDATE>\n      <DESCRIPTION>A GUIDE TO ORACLE PLSQL LANGUAGE FUNDAMENTALS.</DESCRIPTION>\n   </BOOK>\n</CATALOG>\'", @Image = "\'<Catalog>\n   <Book>\n      <Author>Steven Feuerstein</Author>\n      <Title>Oracle PLSQL Language Pocket Reference</Title>\n      <Genre>Programming</Genre>\n      <Price>18.25</Price>\n      <PublishDate>2015-09-04</PublishDate>\n      <Description>A guide to Oracle PLSQL Language Fundamentals.</Description>\n   </Book>\n</Catalog>\'", @String = "<Catalog>\n   <Book>\n      <Author>Steven Feuerstein</Author>\n      <Title>Oracle PLSQL Language Pocket Reference</Title>\n      <Genre>Programming</Genre>\n      <Price>18.25</Price>\n      <PublishDate>2015-09-04</PublishDate>\n      <Description>A guide to Oracle PLSQL Language Fundamentals.</Description>\n   </Book>\n</Catalog>"]
         |  +- DeclarativeUnit[@CanonicalImage = null]
         |  |  +- VariableOrConstantDeclaration[@CanonicalImage = null]
         |  |     +- VariableOrConstantDeclarator[@CanonicalImage = "L_TAGNAME VARCHAR2(100) := \'$P//AUTHOR\'", @Image = "l_tagname VARCHAR2(100) := \'$p//Author\'"]
         |  |        +- VariableOrConstantDeclaratorId[@Array = false, @ArrayDepth = 0, @CanonicalImage = "L_TAGNAME", @Image = "l_tagname"]
         |  |        |  +- ID[@CanonicalImage = "L_TAGNAME", @Image = "l_tagname"]
         |  |        +- Datatype[@CanonicalImage = "VARCHAR2(100)", @Image = "VARCHAR2(100)", @TypeImage = "VARCHAR2(100)"]
         |  |        |  +- ScalarDataTypeName[@CanonicalImage = "VARCHAR2(100)", @Image = "VARCHAR2(100)"]
         |  |        |     +- NumericLiteral[@CanonicalImage = "100", @Image = "100"]
         |  |        +- VariableOrConstantInitializer[@CanonicalImage = "\'$P//AUTHOR\'", @Image = "\'$p//Author\'"]
         |  |           +- Expression[@CanonicalImage = "\'$P//AUTHOR\'", @Image = "\'$p//Author\'"]
         |  |              +- PrimaryPrefix[@CanonicalImage = "\'$P//AUTHOR\'", @Image = "\'$p//Author\'", @SelfModifier = false]
         |  |                 +- Literal[@CanonicalImage = "\'$P//AUTHOR\'", @Image = "\'$p//Author\'"]
         |  |                    +- StringLiteral[@CanonicalImage = "\'$P//AUTHOR\'", @Image = "\'$p//Author\'", @String = "$p//Author"]
         |  +- DeclarativeUnit[@CanonicalImage = null]
         |     +- VariableOrConstantDeclaration[@CanonicalImage = null]
         |        +- VariableOrConstantDeclarator[@CanonicalImage = "L_RESULT VARCHAR2(4000)", @Image = "l_result VARCHAR2(4000)"]
         |           +- VariableOrConstantDeclaratorId[@Array = false, @ArrayDepth = 0, @CanonicalImage = "L_RESULT", @Image = "l_result"]
         |           |  +- ID[@CanonicalImage = "L_RESULT", @Image = "l_result"]
         |           +- Datatype[@CanonicalImage = "VARCHAR2(4000)", @Image = "VARCHAR2(4000)", @TypeImage = "VARCHAR2(4000)"]
         |              +- ScalarDataTypeName[@CanonicalImage = "VARCHAR2(4000)", @Image = "VARCHAR2(4000)"]
         |                 +- NumericLiteral[@CanonicalImage = "4000", @Image = "4000"]
         +- Statement[@CanonicalImage = null]
         |  +- UnlabelledStatement[@CanonicalImage = null]
         |     +- SelectIntoStatement[@All = false, @CanonicalImage = null, @Distinct = false, @Unique = false]
         |        +- SelectList[@CanonicalImage = null]
         |        |  +- SqlExpression[@CanonicalImage = "XMLCAST", @Image = "XMLCAST"]
         |        |     +- PrimaryPrefix[@CanonicalImage = "XMLCAST", @Image = "XMLCAST", @SelfModifier = false]
         |        |        +- FunctionCall[@CanonicalImage = "XMLCAST", @Image = "XMLCAST"]
         |        |           +- FunctionName[@CanonicalImage = "XMLCAST", @Image = "XMLCAST"]
         |        |           |  +- ID[@CanonicalImage = "XMLCAST", @Image = "XMLCAST"]
         |        |           +- Expression[@CanonicalImage = "XMLQUERY", @Image = "XMLQUERY"]
         |        |           |  +- PrimaryPrefix[@CanonicalImage = "XMLQUERY", @Image = "XMLQUERY", @SelfModifier = false]
         |        |           |     +- FunctionCall[@CanonicalImage = "XMLQUERY", @Image = "XMLQUERY"]
         |        |           |        +- FunctionName[@CanonicalImage = "XMLQUERY", @Image = "XMLQUERY"]
         |        |           |        |  +- ID[@CanonicalImage = "XMLQUERY", @Image = "XMLQUERY"]
         |        |           |        +- ID[@CanonicalImage = "L_TAGNAME", @Image = "l_tagname"]
         |        |           |        +- XMLPassingClause[@CanonicalImage = null]
         |        |           |           +- SqlExpression[@CanonicalImage = "L_XML", @Image = "l_xml"]
         |        |           |           |  +- PrimaryPrefix[@CanonicalImage = "L_XML", @Image = "l_xml", @SelfModifier = false]
         |        |           |           |     +- SimpleExpression[@CanonicalImage = "L_XML", @Image = "l_xml"]
         |        |           |           |        +- Column[@CanonicalImage = "L_XML", @Image = "l_xml"]
         |        |           |           |           +- ID[@CanonicalImage = "L_XML", @Image = "l_xml"]
         |        |           |           +- ID[@CanonicalImage = "\"p\"", @Image = "\"p\""]
         |        |           +- Datatype[@CanonicalImage = "VARCHAR2(4000)", @Image = "VARCHAR2(4000)", @TypeImage = "VARCHAR2(4000)"]
         |        |              +- ScalarDataTypeName[@CanonicalImage = "VARCHAR2(4000)", @Image = "VARCHAR2(4000)"]
         |        |                 +- NumericLiteral[@CanonicalImage = "4000", @Image = "4000"]
         |        +- IntoClause[@CanonicalImage = null]
         |        |  +- VariableName[@CanonicalImage = "L_RESULT", @Image = "l_result"]
         |        |     +- ID[@CanonicalImage = "L_RESULT", @Image = "l_result"]
         |        +- FromClause[@CanonicalImage = null]
         |           +- TableReference[@CanonicalImage = null]
         |              +- TableName[@CanonicalImage = "DUAL", @Image = "DUAL"]
         |                 +- ID[@CanonicalImage = "DUAL", @Image = "DUAL"]
         +- Statement[@CanonicalImage = null]
            +- UnlabelledStatement[@CanonicalImage = null]
               +- Expression[@CanonicalImage = "DBMS_OUTPUT.PUT_LINE", @Image = "DBMS_OUTPUT.put_line"]
                  +- PrimaryPrefix[@CanonicalImage = "DBMS_OUTPUT.PUT_LINE", @Image = "DBMS_OUTPUT.put_line", @SelfModifier = false]
                     +- FunctionCall[@CanonicalImage = "DBMS_OUTPUT.PUT_LINE", @Image = "DBMS_OUTPUT.put_line"]
                        +- FunctionName[@CanonicalImage = "DBMS_OUTPUT.PUT_LINE", @Image = "DBMS_OUTPUT.put_line"]
                        |  +- ID[@CanonicalImage = "DBMS_OUTPUT", @Image = "DBMS_OUTPUT"]
                        |  +- ID[@CanonicalImage = "PUT_LINE", @Image = "put_line"]
                        +- Arguments[@ArgumentCount = 1, @CanonicalImage = null]
                           +- ArgumentList[@CanonicalImage = null]
                              +- Argument[@CanonicalImage = null]
                                 +- Expression[@CanonicalImage = "L_RESULT", @Image = "l_result"]
                                    +- PrimaryPrefix[@CanonicalImage = "L_RESULT", @Image = "l_result", @SelfModifier = false]
                                       +- SimpleExpression[@CanonicalImage = "L_RESULT", @Image = "l_result"]
                                          +- Column[@CanonicalImage = "L_RESULT", @Image = "l_result"]
                                             +- ID[@CanonicalImage = "L_RESULT", @Image = "l_result"]
