| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Summary: internal data structures, constants and functions | 2 * Summary: internal data structures, constants and functions |
| 3 * Description: Internal data structures, constants and functions used | 3 * Description: Internal data structures, constants and functions used |
| 4 * by the XSLT engine. | 4 * by the XSLT engine. |
| 5 * They are not part of the API or ABI, i.e. they can change | 5 * They are not part of the API or ABI, i.e. they can change |
| 6 * without prior notice, use carefully. | 6 * without prior notice, use carefully. |
| 7 * | 7 * |
| 8 * Copy: See Copyright for the status of this software. | 8 * Copy: See Copyright for the status of this software. |
| 9 * | 9 * |
| 10 * Author: Daniel Veillard | 10 * Author: Daniel Veillard |
| 11 */ | 11 */ |
| 12 | 12 |
| 13 #ifndef __XML_XSLT_INTERNALS_H__ | 13 #ifndef __XML_XSLT_INTERNALS_H__ |
| 14 #define __XML_XSLT_INTERNALS_H__ | 14 #define __XML_XSLT_INTERNALS_H__ |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 94 | 94 |
| 95 | 95 |
| 96 /* TODO: REMOVE: #define XSLT_REFACTORED_EXCLRESNS */ | 96 /* TODO: REMOVE: #define XSLT_REFACTORED_EXCLRESNS */ |
| 97 | 97 |
| 98 /* TODO: REMOVE: #define XSLT_REFACTORED_NSALIAS */ | 98 /* TODO: REMOVE: #define XSLT_REFACTORED_NSALIAS */ |
| 99 | 99 |
| 100 /** | 100 /** |
| 101 * XSLT_REFACTORED_XSLT_NSCOMP | 101 * XSLT_REFACTORED_XSLT_NSCOMP |
| 102 * | 102 * |
| 103 * Internal define to enable the pointer-comparison of | 103 * Internal define to enable the pointer-comparison of |
| 104 * namespaces of XSLT elements. | 104 * namespaces of XSLT elements. |
| 105 */ | 105 */ |
| 106 /* #define XSLT_REFACTORED_XSLT_NSCOMP */ | 106 /* #define XSLT_REFACTORED_XSLT_NSCOMP */ |
| 107 | 107 |
| 108 /** | 108 /** |
| 109 * XSLT_REFACTORED_XPATHCOMP: | 109 * XSLT_REFACTORED_XPATHCOMP: |
| 110 * | 110 * |
| 111 * Internal define to enable the optimization of the | 111 * Internal define to enable the optimization of the |
| 112 * compilation of XPath expressions. | 112 * compilation of XPath expressions. |
| 113 */ | 113 */ |
| 114 #define XSLT_REFACTORED_XPATHCOMP | 114 #define XSLT_REFACTORED_XPATHCOMP |
| (...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 * TODO: @inheritedNsNr and @inheritedNs won't be used in the | 287 * TODO: @inheritedNsNr and @inheritedNs won't be used in the |
| 288 * refactored code. | 288 * refactored code. |
| 289 */ | 289 */ |
| 290 int inheritedNsNr; /* number of inherited namespaces */ | 290 int inheritedNsNr; /* number of inherited namespaces */ |
| 291 xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */ | 291 xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */ |
| 292 | 292 |
| 293 /* Profiling informations */ | 293 /* Profiling informations */ |
| 294 int nbCalls; /* the number of time the template was called */ | 294 int nbCalls; /* the number of time the template was called */ |
| 295 unsigned long time; /* the time spent in this template */ | 295 unsigned long time; /* the time spent in this template */ |
| 296 void *params; /* xsl:param instructions */ | 296 void *params; /* xsl:param instructions */ |
| 297 |
| 298 int templNr; /* Nb of templates in the stack */ |
| 299 int templMax; /* Size of the templtes stack */ |
| 300 xsltTemplatePtr *templCalledTab; /* templates called */ |
| 301 int *templCountTab; /* .. and how often */ |
| 297 }; | 302 }; |
| 298 | 303 |
| 299 /** | 304 /** |
| 300 * xsltDecimalFormat: | 305 * xsltDecimalFormat: |
| 301 * | 306 * |
| 302 * Data structure of decimal-format. | 307 * Data structure of decimal-format. |
| 303 */ | 308 */ |
| 304 typedef struct _xsltDecimalFormat xsltDecimalFormat; | 309 typedef struct _xsltDecimalFormat xsltDecimalFormat; |
| 305 typedef xsltDecimalFormat *xsltDecimalFormatPtr; | 310 typedef xsltDecimalFormat *xsltDecimalFormatPtr; |
| 306 struct _xsltDecimalFormat { | 311 struct _xsltDecimalFormat { |
| (...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 467 * | 472 * |
| 468 * The basic structure for compiled items of the AST of the XSLT processor. | 473 * The basic structure for compiled items of the AST of the XSLT processor. |
| 469 * This structure is also intended to be extended by extension implementors. | 474 * This structure is also intended to be extended by extension implementors. |
| 470 * TODO: This is somehow not nice, since it has a "free" field, which | 475 * TODO: This is somehow not nice, since it has a "free" field, which |
| 471 * derived stylesheet-structs do not have. | 476 * derived stylesheet-structs do not have. |
| 472 */ | 477 */ |
| 473 struct _xsltElemPreComp { | 478 struct _xsltElemPreComp { |
| 474 xsltElemPreCompPtr next; /* next item in the global chained | 479 xsltElemPreCompPtr next; /* next item in the global chained |
| 475 list hold by xsltStylesheet. */ | 480 list hold by xsltStylesheet. */ |
| 476 xsltStyleType type; /* type of the element */ | 481 xsltStyleType type; /* type of the element */ |
| 477 xsltTransformFunction func; » /* handling function */ | 482 xsltTransformFunction func;»/* handling function */ |
| 478 xmlNodePtr inst; /* the node in the stylesheet's tree | 483 xmlNodePtr inst; /* the node in the stylesheet's tree |
| 479 corresponding to this item */ | 484 corresponding to this item */ |
| 480 | 485 |
| 481 /* end of common part */ | 486 /* end of common part */ |
| 482 xsltElemPreCompDeallocator free; /* the deallocator */ | 487 xsltElemPreCompDeallocator free; /* the deallocator */ |
| 483 }; | 488 }; |
| 484 | 489 |
| 485 /** | 490 /** |
| 486 * xsltStylePreComp: | 491 * xsltStylePreComp: |
| 487 * | 492 * |
| (...skipping 11 matching lines...) Expand all Loading... |
| 499 /* | 504 /* |
| 500 * Some pointer-list utility functions. | 505 * Some pointer-list utility functions. |
| 501 */ | 506 */ |
| 502 XSLTPUBFUN xsltPointerListPtr XSLTCALL | 507 XSLTPUBFUN xsltPointerListPtr XSLTCALL |
| 503 xsltPointerListCreate (int initialSize); | 508 xsltPointerListCreate (int initialSize); |
| 504 XSLTPUBFUN void XSLTCALL | 509 XSLTPUBFUN void XSLTCALL |
| 505 xsltPointerListFree (xsltPointerListPtr list); | 510 xsltPointerListFree (xsltPointerListPtr list); |
| 506 XSLTPUBFUN void XSLTCALL | 511 XSLTPUBFUN void XSLTCALL |
| 507 xsltPointerListClear (xsltPointerListPtr list); | 512 xsltPointerListClear (xsltPointerListPtr list); |
| 508 XSLTPUBFUN int XSLTCALL | 513 XSLTPUBFUN int XSLTCALL |
| 509 » » xsltPointerListAddSize» » (xsltPointerListPtr list,»
» » » » » | 514 » » xsltPointerListAddSize» » (xsltPointerListPtr list, |
| 510 void *item, | 515 void *item, |
| 511 int initialSize); | 516 int initialSize); |
| 512 | 517 |
| 513 /************************************************************************ | 518 /************************************************************************ |
| 514 * * | 519 * * |
| 515 * Refactored structures * | 520 * Refactored structures * |
| 516 * * | 521 * * |
| 517 ************************************************************************/ | 522 ************************************************************************/ |
| 518 | 523 |
| 519 typedef struct _xsltNsListContainer xsltNsListContainer; | 524 typedef struct _xsltNsListContainer xsltNsListContainer; |
| 520 typedef xsltNsListContainer *xsltNsListContainerPtr; | 525 typedef xsltNsListContainer *xsltNsListContainerPtr; |
| 521 struct _xsltNsListContainer { | 526 struct _xsltNsListContainer { |
| 522 xmlNsPtr *list; | 527 xmlNsPtr *list; |
| 523 int totalNumber; | 528 int totalNumber; |
| 524 int xpathNumber; | 529 int xpathNumber; |
| 525 }; | 530 }; |
| 526 | 531 |
| 527 /** | 532 /** |
| 528 * XSLT_ITEM_COMPATIBILITY_FIELDS: | 533 * XSLT_ITEM_COMPATIBILITY_FIELDS: |
| 529 * | 534 * |
| 530 * Fields for API compatibility to the structure | 535 * Fields for API compatibility to the structure |
| 531 * _xsltElemPreComp which is used for extension functions. | 536 * _xsltElemPreComp which is used for extension functions. |
| 532 * Note that @next is used for storage; it does not reflect a next | 537 * Note that @next is used for storage; it does not reflect a next |
| 533 * sibling in the tree. | 538 * sibling in the tree. |
| 534 * TODO: Evaluate if we really need such a compatibility. | 539 * TODO: Evaluate if we really need such a compatibility. |
| 535 */ | 540 */ |
| 536 #define XSLT_ITEM_COMPATIBILITY_FIELDS \ | 541 #define XSLT_ITEM_COMPATIBILITY_FIELDS \ |
| 537 xsltElemPreCompPtr next;\ | 542 xsltElemPreCompPtr next;\ |
| 538 xsltStyleType type;\ | 543 xsltStyleType type;\ |
| 539 xsltTransformFunction func;\ | 544 xsltTransformFunction func;\ |
| 540 xmlNodePtr inst; | 545 xmlNodePtr inst; |
| 541 | 546 |
| 542 /** | 547 /** |
| 543 * XSLT_ITEM_NAVIGATION_FIELDS: | 548 * XSLT_ITEM_NAVIGATION_FIELDS: |
| 544 * | 549 * |
| 545 * Currently empty. | 550 * Currently empty. |
| 546 * TODO: It is intended to hold navigational fields in the future. | 551 * TODO: It is intended to hold navigational fields in the future. |
| 547 */ | 552 */ |
| 548 #define XSLT_ITEM_NAVIGATION_FIELDS | 553 #define XSLT_ITEM_NAVIGATION_FIELDS |
| 549 /* | 554 /* |
| 550 xsltStylePreCompPtr parent;\ | 555 xsltStylePreCompPtr parent;\ |
| 551 xsltStylePreCompPtr children;\ | 556 xsltStylePreCompPtr children;\ |
| 552 xsltStylePreCompPtr nextItem; | 557 xsltStylePreCompPtr nextItem; |
| 553 */ | 558 */ |
| 554 | 559 |
| 555 /** | 560 /** |
| 556 * XSLT_ITEM_NSINSCOPE_FIELDS: | 561 * XSLT_ITEM_NSINSCOPE_FIELDS: |
| 557 * | 562 * |
| 558 * The in-scope namespaces. | 563 * The in-scope namespaces. |
| 559 */ | 564 */ |
| 560 #define XSLT_ITEM_NSINSCOPE_FIELDS xsltNsListContainerPtr inScopeNs; | 565 #define XSLT_ITEM_NSINSCOPE_FIELDS xsltNsListContainerPtr inScopeNs; |
| 561 | 566 |
| 562 /** | 567 /** |
| 563 * XSLT_ITEM_COMMON_FIELDS: | 568 * XSLT_ITEM_COMMON_FIELDS: |
| 564 * | 569 * |
| 565 * Common fields used for all items. | 570 * Common fields used for all items. |
| 566 */ | 571 */ |
| 567 #define XSLT_ITEM_COMMON_FIELDS \ | 572 #define XSLT_ITEM_COMMON_FIELDS \ |
| 568 XSLT_ITEM_COMPATIBILITY_FIELDS \ | 573 XSLT_ITEM_COMPATIBILITY_FIELDS \ |
| 569 XSLT_ITEM_NAVIGATION_FIELDS \ | 574 XSLT_ITEM_NAVIGATION_FIELDS \ |
| 570 XSLT_ITEM_NSINSCOPE_FIELDS | 575 XSLT_ITEM_NSINSCOPE_FIELDS |
| 571 | 576 |
| 572 /** | 577 /** |
| 573 * _xsltStylePreComp: | 578 * _xsltStylePreComp: |
| 574 * | 579 * |
| 575 * The abstract basic structure for items of the XSLT processor. | 580 * The abstract basic structure for items of the XSLT processor. |
| 576 * This includes: | 581 * This includes: |
| 577 * 1) compiled forms of XSLT instructions (e.g. xsl:if, xsl:attribute, etc.) | 582 * 1) compiled forms of XSLT instructions (e.g. xsl:if, xsl:attribute, etc.) |
| 578 * 2) compiled forms of literal result elements | 583 * 2) compiled forms of literal result elements |
| 579 * 3) various properties for XSLT instructions (e.g. xsl:when, | 584 * 3) various properties for XSLT instructions (e.g. xsl:when, |
| 580 * xsl:with-param) | 585 * xsl:with-param) |
| 581 * | 586 * |
| 582 * REVISIT TODO: Keep this structure equal to the fields | 587 * REVISIT TODO: Keep this structure equal to the fields |
| 583 * defined by XSLT_ITEM_COMMON_FIELDS | 588 * defined by XSLT_ITEM_COMMON_FIELDS |
| 584 */ | 589 */ |
| 585 struct _xsltStylePreComp { | 590 struct _xsltStylePreComp { |
| 586 xsltElemPreCompPtr next; /* next item in the global chained | 591 xsltElemPreCompPtr next; /* next item in the global chained |
| 587 list hold by xsltStylesheet */ | 592 list hold by xsltStylesheet */ |
| 588 xsltStyleType type; /* type of the item */ | 593 xsltStyleType type; /* type of the item */ |
| 589 xsltTransformFunction func; /* handling function */ | 594 xsltTransformFunction func; /* handling function */ |
| 590 xmlNodePtr inst; /* the node in the stylesheet's tree | 595 xmlNodePtr inst; /* the node in the stylesheet's tree |
| 591 corresponding to this item. */ | 596 corresponding to this item. */ |
| 592 /* Currently no navigational fields. */ | 597 /* Currently no navigational fields. */ |
| 593 xsltNsListContainerPtr inScopeNs; | 598 xsltNsListContainerPtr inScopeNs; |
| 594 }; | 599 }; |
| 595 | 600 |
| 596 /** | 601 /** |
| 597 * xsltStyleBasicEmptyItem: | 602 * xsltStyleBasicEmptyItem: |
| 598 * | 603 * |
| 599 * Abstract structure only used as a short-cut for | 604 * Abstract structure only used as a short-cut for |
| 600 * XSLT items with no extra fields. | 605 * XSLT items with no extra fields. |
| 601 * NOTE that it is intended that this structure looks the same as | 606 * NOTE that it is intended that this structure looks the same as |
| 602 * _xsltStylePreComp. | 607 * _xsltStylePreComp. |
| 603 */ | 608 */ |
| 604 typedef struct _xsltStyleBasicEmptyItem xsltStyleBasicEmptyItem; | 609 typedef struct _xsltStyleBasicEmptyItem xsltStyleBasicEmptyItem; |
| 605 typedef xsltStyleBasicEmptyItem *xsltStyleBasicEmptyItemPtr; | 610 typedef xsltStyleBasicEmptyItem *xsltStyleBasicEmptyItemPtr; |
| 606 | 611 |
| 607 struct _xsltStyleBasicEmptyItem { | 612 struct _xsltStyleBasicEmptyItem { |
| 608 XSLT_ITEM_COMMON_FIELDS | 613 XSLT_ITEM_COMMON_FIELDS |
| 609 }; | 614 }; |
| 610 | 615 |
| 611 /** | 616 /** |
| 612 * xsltStyleBasicExpressionItem: | 617 * xsltStyleBasicExpressionItem: |
| 613 * | 618 * |
| 614 * Abstract structure only used as a short-cut for | 619 * Abstract structure only used as a short-cut for |
| 615 * XSLT items with just an expression. | 620 * XSLT items with just an expression. |
| 616 */ | 621 */ |
| 617 typedef struct _xsltStyleBasicExpressionItem xsltStyleBasicExpressionItem; | 622 typedef struct _xsltStyleBasicExpressionItem xsltStyleBasicExpressionItem; |
| 618 typedef xsltStyleBasicExpressionItem *xsltStyleBasicExpressionItemPtr; | 623 typedef xsltStyleBasicExpressionItem *xsltStyleBasicExpressionItemPtr; |
| 619 | 624 |
| 620 struct _xsltStyleBasicExpressionItem { | 625 struct _xsltStyleBasicExpressionItem { |
| 621 XSLT_ITEM_COMMON_FIELDS | 626 XSLT_ITEM_COMMON_FIELDS |
| 622 | 627 |
| 623 const xmlChar *select; /* TODO: Change this to "expression". */ | 628 const xmlChar *select; /* TODO: Change this to "expression". */ |
| 624 xmlXPathCompExprPtr comp; /* TODO: Change this to compExpr. */ | 629 xmlXPathCompExprPtr comp; /* TODO: Change this to compExpr. */ |
| 625 }; | 630 }; |
| 626 | 631 |
| 627 /************************************************************************ | 632 /************************************************************************ |
| 628 * * | 633 * * |
| 629 * XSLT-instructions/declarations * | 634 * XSLT-instructions/declarations * |
| 630 * * | 635 * * |
| 631 ************************************************************************/ | 636 ************************************************************************/ |
| 632 | 637 |
| 633 /** | 638 /** |
| 634 * xsltStyleItemElement: | 639 * xsltStyleItemElement: |
| 635 * | 640 * |
| 636 * <!-- Category: instruction --> | 641 * <!-- Category: instruction --> |
| 637 * <xsl:element | 642 * <xsl:element |
| 638 * name = { qname } | 643 * name = { qname } |
| 639 * namespace = { uri-reference } | 644 * namespace = { uri-reference } |
| 640 * use-attribute-sets = qnames> | 645 * use-attribute-sets = qnames> |
| 641 * <!-- Content: template --> | 646 * <!-- Content: template --> |
| 642 * </xsl:element> | 647 * </xsl:element> |
| 643 */ | 648 */ |
| 644 typedef struct _xsltStyleItemElement xsltStyleItemElement; | 649 typedef struct _xsltStyleItemElement xsltStyleItemElement; |
| 645 typedef xsltStyleItemElement *xsltStyleItemElementPtr; | 650 typedef xsltStyleItemElement *xsltStyleItemElementPtr; |
| 646 | 651 |
| 647 struct _xsltStyleItemElement { | 652 struct _xsltStyleItemElement { |
| 648 XSLT_ITEM_COMMON_FIELDS | 653 XSLT_ITEM_COMMON_FIELDS |
| 649 | 654 |
| 650 const xmlChar *use; | 655 const xmlChar *use; |
| 651 int has_use; | 656 int has_use; |
| 652 const xmlChar *name; | 657 const xmlChar *name; |
| 653 int has_name; | 658 int has_name; |
| 654 const xmlChar *ns; | 659 const xmlChar *ns; |
| 655 const xmlChar *nsPrefix; | 660 const xmlChar *nsPrefix; |
| 656 int has_ns; | 661 int has_ns; |
| 657 }; | 662 }; |
| 658 | 663 |
| 659 /** | 664 /** |
| 660 * xsltStyleItemAttribute: | 665 * xsltStyleItemAttribute: |
| 661 * | 666 * |
| 662 * <!-- Category: instruction --> | 667 * <!-- Category: instruction --> |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 * use-attribute-sets = qnames> | 792 * use-attribute-sets = qnames> |
| 788 * <!-- Content: template --> | 793 * <!-- Content: template --> |
| 789 * </xsl:copy> | 794 * </xsl:copy> |
| 790 */ | 795 */ |
| 791 typedef struct _xsltStyleItemCopy xsltStyleItemCopy; | 796 typedef struct _xsltStyleItemCopy xsltStyleItemCopy; |
| 792 typedef xsltStyleItemCopy *xsltStyleItemCopyPtr; | 797 typedef xsltStyleItemCopy *xsltStyleItemCopyPtr; |
| 793 | 798 |
| 794 struct _xsltStyleItemCopy { | 799 struct _xsltStyleItemCopy { |
| 795 XSLT_ITEM_COMMON_FIELDS | 800 XSLT_ITEM_COMMON_FIELDS |
| 796 const xmlChar *use; /* copy, element */ | 801 const xmlChar *use; /* copy, element */ |
| 797 int has_use;» » /* copy, element */ | 802 int has_use;» » /* copy, element */ |
| 798 }; | 803 }; |
| 799 | 804 |
| 800 /** | 805 /** |
| 801 * xsltStyleItemIf: | 806 * xsltStyleItemIf: |
| 802 * | 807 * |
| 803 * <!-- Category: instruction --> | 808 * <!-- Category: instruction --> |
| 804 * <xsl:if | 809 * <xsl:if |
| 805 * test = boolean-expression> | 810 * test = boolean-expression> |
| 806 * <!-- Content: template --> | 811 * <!-- Content: template --> |
| 807 * </xsl:if> | 812 * </xsl:if> |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 909 * <!-- Category: instruction --> | 914 * <!-- Category: instruction --> |
| 910 * <xsl:message | 915 * <xsl:message |
| 911 * terminate = "yes" | "no"> | 916 * terminate = "yes" | "no"> |
| 912 * <!-- Content: template --> | 917 * <!-- Content: template --> |
| 913 * </xsl:message> | 918 * </xsl:message> |
| 914 */ | 919 */ |
| 915 typedef struct _xsltStyleItemMessage xsltStyleItemMessage; | 920 typedef struct _xsltStyleItemMessage xsltStyleItemMessage; |
| 916 typedef xsltStyleItemMessage *xsltStyleItemMessagePtr; | 921 typedef xsltStyleItemMessage *xsltStyleItemMessagePtr; |
| 917 | 922 |
| 918 struct _xsltStyleItemMessage { | 923 struct _xsltStyleItemMessage { |
| 919 XSLT_ITEM_COMMON_FIELDS | 924 XSLT_ITEM_COMMON_FIELDS |
| 920 int terminate; | 925 int terminate; |
| 921 }; | 926 }; |
| 922 | 927 |
| 923 /** | 928 /** |
| 924 * xsltStyleItemDocument: | 929 * xsltStyleItemDocument: |
| 925 * | 930 * |
| 926 * NOTE: This is not an instruction of XSLT 1.0. | 931 * NOTE: This is not an instruction of XSLT 1.0. |
| 927 */ | 932 */ |
| 928 typedef struct _xsltStyleItemDocument xsltStyleItemDocument; | 933 typedef struct _xsltStyleItemDocument xsltStyleItemDocument; |
| 929 typedef xsltStyleItemDocument *xsltStyleItemDocumentPtr; | 934 typedef xsltStyleItemDocument *xsltStyleItemDocumentPtr; |
| 930 | 935 |
| 931 struct _xsltStyleItemDocument { | 936 struct _xsltStyleItemDocument { |
| 932 XSLT_ITEM_COMMON_FIELDS | 937 XSLT_ITEM_COMMON_FIELDS |
| 933 int ver11; /* assigned: in xsltDocumentComp; | 938 int ver11; /* assigned: in xsltDocumentComp; |
| 934 read: nowhere; | 939 read: nowhere; |
| 935 TODO: Check if we need. */ | 940 TODO: Check if we need. */ |
| 936 const xmlChar *filename; /* document URL */ | 941 const xmlChar *filename; /* document URL */ |
| 937 int has_filename; | 942 int has_filename; |
| 938 }; | 943 }; |
| 939 | 944 |
| 940 /************************************************************************ | 945 /************************************************************************ |
| 941 * * | 946 * * |
| 942 * Non-instructions (actually properties of instructions/declarations) * | 947 * Non-instructions (actually properties of instructions/declarations) * |
| 943 * * | 948 * * |
| 944 ************************************************************************/ | 949 ************************************************************************/ |
| 945 | 950 |
| 946 /** | 951 /** |
| 947 * xsltStyleBasicItemVariable: | 952 * xsltStyleBasicItemVariable: |
| 948 * | 953 * |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 998 | 1003 |
| 999 struct _xsltStyleItemParam { | 1004 struct _xsltStyleItemParam { |
| 1000 XSLT_ITEM_COMMON_FIELDS | 1005 XSLT_ITEM_COMMON_FIELDS |
| 1001 | 1006 |
| 1002 const xmlChar *select; | 1007 const xmlChar *select; |
| 1003 xmlXPathCompExprPtr comp; | 1008 xmlXPathCompExprPtr comp; |
| 1004 | 1009 |
| 1005 const xmlChar *name; | 1010 const xmlChar *name; |
| 1006 int has_name; | 1011 int has_name; |
| 1007 const xmlChar *ns; | 1012 const xmlChar *ns; |
| 1008 int has_ns; | 1013 int has_ns; |
| 1009 }; | 1014 }; |
| 1010 | 1015 |
| 1011 /** | 1016 /** |
| 1012 * xsltStyleItemWithParam: | 1017 * xsltStyleItemWithParam: |
| 1013 * | 1018 * |
| 1014 * <xsl:with-param | 1019 * <xsl:with-param |
| 1015 * name = qname | 1020 * name = qname |
| 1016 * select = expression> | 1021 * select = expression> |
| 1017 * <!-- Content: template --> | 1022 * <!-- Content: template --> |
| 1018 * </xsl:with-param> | 1023 * </xsl:with-param> |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1054 int has_use; | 1059 int has_use; |
| 1055 | 1060 |
| 1056 const xmlChar *select; /* sort, copy-of, value-of, apply-templates */ | 1061 const xmlChar *select; /* sort, copy-of, value-of, apply-templates */ |
| 1057 | 1062 |
| 1058 xmlXPathCompExprPtr comp; /* a precompiled XPath expression */ | 1063 xmlXPathCompExprPtr comp; /* a precompiled XPath expression */ |
| 1059 }; | 1064 }; |
| 1060 | 1065 |
| 1061 | 1066 |
| 1062 /** | 1067 /** |
| 1063 * xsltStyleItemWhen: | 1068 * xsltStyleItemWhen: |
| 1064 * | 1069 * |
| 1065 * <xsl:when | 1070 * <xsl:when |
| 1066 * test = boolean-expression> | 1071 * test = boolean-expression> |
| 1067 * <!-- Content: template --> | 1072 * <!-- Content: template --> |
| 1068 * </xsl:when> | 1073 * </xsl:when> |
| 1069 * Allowed parent: xsl:choose | 1074 * Allowed parent: xsl:choose |
| 1070 */ | 1075 */ |
| 1071 typedef struct _xsltStyleItemWhen xsltStyleItemWhen; | 1076 typedef struct _xsltStyleItemWhen xsltStyleItemWhen; |
| 1072 typedef xsltStyleItemWhen *xsltStyleItemWhenPtr; | 1077 typedef xsltStyleItemWhen *xsltStyleItemWhenPtr; |
| 1073 | 1078 |
| 1074 struct _xsltStyleItemWhen { | 1079 struct _xsltStyleItemWhen { |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1137 * the xsltElemPreCompPtr. | 1142 * the xsltElemPreCompPtr. |
| 1138 * However the place where the structure is anchored in the node-tree, | 1143 * However the place where the structure is anchored in the node-tree, |
| 1139 * namely node->psvi, has beed already once been moved from node->_private | 1144 * namely node->psvi, has beed already once been moved from node->_private |
| 1140 * to node->psvi, so we have a precedent here, which, I think, should allow | 1145 * to node->psvi, so we have a precedent here, which, I think, should allow |
| 1141 * us to change such semantics without headaches. | 1146 * us to change such semantics without headaches. |
| 1142 */ | 1147 */ |
| 1143 typedef struct _xsltStyleItemExtElement xsltStyleItemExtElement; | 1148 typedef struct _xsltStyleItemExtElement xsltStyleItemExtElement; |
| 1144 typedef xsltStyleItemExtElement *xsltStyleItemExtElementPtr; | 1149 typedef xsltStyleItemExtElement *xsltStyleItemExtElementPtr; |
| 1145 struct _xsltStyleItemExtElement { | 1150 struct _xsltStyleItemExtElement { |
| 1146 XSLT_ITEM_COMMON_FIELDS | 1151 XSLT_ITEM_COMMON_FIELDS |
| 1147 xsltElemPreCompPtr item; | 1152 xsltElemPreCompPtr item; |
| 1148 }; | 1153 }; |
| 1149 | 1154 |
| 1150 /************************************************************************ | 1155 /************************************************************************ |
| 1151 * * | 1156 * * |
| 1152 * Literal result elements * | 1157 * Literal result elements * |
| 1153 * * | 1158 * * |
| 1154 ************************************************************************/ | 1159 ************************************************************************/ |
| 1155 | 1160 |
| 1156 typedef struct _xsltEffectiveNs xsltEffectiveNs; | 1161 typedef struct _xsltEffectiveNs xsltEffectiveNs; |
| 1157 typedef xsltEffectiveNs *xsltEffectiveNsPtr; | 1162 typedef xsltEffectiveNs *xsltEffectiveNsPtr; |
| 1158 struct _xsltEffectiveNs { | 1163 struct _xsltEffectiveNs { |
| 1159 xsltEffectiveNsPtr nextInStore; /* storage next */ | 1164 xsltEffectiveNsPtr nextInStore; /* storage next */ |
| 1160 xsltEffectiveNsPtr next; /* next item in the list */ | 1165 xsltEffectiveNsPtr next; /* next item in the list */ |
| 1161 const xmlChar *prefix; | 1166 const xmlChar *prefix; |
| 1162 const xmlChar *nsName; | 1167 const xmlChar *nsName; |
| 1163 /* | 1168 /* |
| 1164 * Indicates if eclared on the literal result element; dunno if really | 1169 * Indicates if eclared on the literal result element; dunno if really |
| 1165 * needed. | 1170 * needed. |
| 1166 */ | 1171 */ |
| 1167 int holdByElem; | 1172 int holdByElem; |
| 1168 }; | 1173 }; |
| 1169 | 1174 |
| 1170 /* | 1175 /* |
| 1171 * Info for literal result elements. | 1176 * Info for literal result elements. |
| 1172 * This will be set on the elem->psvi field and will be | 1177 * This will be set on the elem->psvi field and will be |
| 1173 * shared by literal result elements, which have the same | 1178 * shared by literal result elements, which have the same |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1189 */ | 1194 */ |
| 1190 xsltEffectiveNsPtr effectiveNs; | 1195 xsltEffectiveNsPtr effectiveNs; |
| 1191 | 1196 |
| 1192 }; | 1197 }; |
| 1193 | 1198 |
| 1194 #ifdef XSLT_REFACTORED | 1199 #ifdef XSLT_REFACTORED |
| 1195 | 1200 |
| 1196 typedef struct _xsltNsAlias xsltNsAlias; | 1201 typedef struct _xsltNsAlias xsltNsAlias; |
| 1197 typedef xsltNsAlias *xsltNsAliasPtr; | 1202 typedef xsltNsAlias *xsltNsAliasPtr; |
| 1198 struct _xsltNsAlias { | 1203 struct _xsltNsAlias { |
| 1199 xsltNsAliasPtr next; /* next in the list */ | 1204 xsltNsAliasPtr next; /* next in the list */ |
| 1200 xmlNsPtr literalNs; | 1205 xmlNsPtr literalNs; |
| 1201 xmlNsPtr targetNs; | 1206 xmlNsPtr targetNs; |
| 1202 xmlDocPtr docOfTargetNs; | 1207 xmlDocPtr docOfTargetNs; |
| 1203 }; | 1208 }; |
| 1204 #endif | 1209 #endif |
| 1205 | 1210 |
| 1206 #ifdef XSLT_REFACTORED_XSLT_NSCOMP | 1211 #ifdef XSLT_REFACTORED_XSLT_NSCOMP |
| 1207 | 1212 |
| 1208 typedef struct _xsltNsMap xsltNsMap; | 1213 typedef struct _xsltNsMap xsltNsMap; |
| 1209 typedef xsltNsMap *xsltNsMapPtr; | 1214 typedef xsltNsMap *xsltNsMapPtr; |
| 1210 struct _xsltNsMap { | 1215 struct _xsltNsMap { |
| 1211 xsltNsMapPtr next; /* next in the list */ | 1216 xsltNsMapPtr next; /* next in the list */ |
| 1212 xmlDocPtr doc; | 1217 xmlDocPtr doc; |
| 1213 xmlNodePtr elem; /* the element holding the ns-decl */ | 1218 xmlNodePtr elem; /* the element holding the ns-decl */ |
| 1214 xmlNsPtr ns; /* the xmlNs structure holding the XML namespace name */ | 1219 xmlNsPtr ns; /* the xmlNs structure holding the XML namespace name */ |
| 1215 const xmlChar *origNsName; /* the original XML namespace name */ | 1220 const xmlChar *origNsName; /* the original XML namespace name */ |
| 1216 const xmlChar *newNsName; /* the mapped XML namespace name */ | 1221 const xmlChar *newNsName; /* the mapped XML namespace name */ |
| 1217 }; | 1222 }; |
| 1218 #endif | 1223 #endif |
| 1219 | 1224 |
| 1220 /************************************************************************ | 1225 /************************************************************************ |
| 1221 * * | 1226 * * |
| 1222 * Compile-time structures for *internal* use only * | 1227 * Compile-time structures for *internal* use only * |
| 1223 * * | 1228 * * |
| 1224 ************************************************************************/ | 1229 ************************************************************************/ |
| 1225 | 1230 |
| 1226 typedef struct _xsltPrincipalStylesheetData xsltPrincipalStylesheetData; | 1231 typedef struct _xsltPrincipalStylesheetData xsltPrincipalStylesheetData; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1261 xmlNodePtr node; | 1266 xmlNodePtr node; |
| 1262 int depth; | 1267 int depth; |
| 1263 xsltTemplatePtr templ; /* The owning template */ | 1268 xsltTemplatePtr templ; /* The owning template */ |
| 1264 int category; /* XSLT element, LR-element or | 1269 int category; /* XSLT element, LR-element or |
| 1265 extension element */ | 1270 extension element */ |
| 1266 xsltStyleType type; | 1271 xsltStyleType type; |
| 1267 xsltElemPreCompPtr item; /* The compiled information */ | 1272 xsltElemPreCompPtr item; /* The compiled information */ |
| 1268 /* The current in-scope namespaces */ | 1273 /* The current in-scope namespaces */ |
| 1269 xsltNsListContainerPtr inScopeNs; | 1274 xsltNsListContainerPtr inScopeNs; |
| 1270 /* The current excluded result namespaces */ | 1275 /* The current excluded result namespaces */ |
| 1271 xsltPointerListPtr exclResultNs; | 1276 xsltPointerListPtr exclResultNs; |
| 1272 /* The current extension instruction namespaces */ | 1277 /* The current extension instruction namespaces */ |
| 1273 xsltPointerListPtr extElemNs; | 1278 xsltPointerListPtr extElemNs; |
| 1274 | 1279 |
| 1275 /* The current info for literal result elements. */ | 1280 /* The current info for literal result elements. */ |
| 1276 xsltStyleItemLRElementInfoPtr litResElemInfo; | 1281 xsltStyleItemLRElementInfoPtr litResElemInfo; |
| 1277 /* | 1282 /* |
| 1278 * Set to 1 if in-scope namespaces changed, | 1283 * Set to 1 if in-scope namespaces changed, |
| 1279 * or excluded result namespaces changed, | 1284 * or excluded result namespaces changed, |
| 1280 * or extension element namespaces changed. | 1285 * or extension element namespaces changed. |
| 1281 * This will trigger creation of new infos | 1286 * This will trigger creation of new infos |
| 1282 * for literal result elements. | 1287 * for literal result elements. |
| 1283 */ | 1288 */ |
| 1284 int nsChanged; | 1289 int nsChanged; |
| 1285 int preserveWhitespace; | 1290 int preserveWhitespace; |
| 1286 int stripWhitespace; | 1291 int stripWhitespace; |
| 1287 int isRoot; /* whether this is the stylesheet's root node */ | 1292 int isRoot; /* whether this is the stylesheet's root node */ |
| 1288 int forwardsCompat; /* whether forwards-compatible mode is enabled */ | 1293 int forwardsCompat; /* whether forwards-compatible mode is enabled */ |
| 1289 /* whether the content of an extension element was processed */ | 1294 /* whether the content of an extension element was processed */ |
| 1290 int extContentHandled; | 1295 int extContentHandled; |
| 1291 /* the type of the current child */ | 1296 /* the type of the current child */ |
| 1292 xsltStyleType curChildType; | 1297 xsltStyleType curChildType; |
| 1293 }; | 1298 }; |
| 1294 | 1299 |
| 1295 /** | 1300 /** |
| 1296 * XSLT_CCTXT: | 1301 * XSLT_CCTXT: |
| 1297 * | 1302 * |
| 1298 * get pointer to compiler context | 1303 * get pointer to compiler context |
| 1299 */ | 1304 */ |
| 1300 #define XSLT_CCTXT(style) ((xsltCompilerCtxtPtr) style->compCtxt) | 1305 #define XSLT_CCTXT(style) ((xsltCompilerCtxtPtr) style->compCtxt) |
| 1301 | 1306 |
| 1302 typedef enum { | 1307 typedef enum { |
| 1303 XSLT_ERROR_SEVERITY_ERROR = 0, | 1308 XSLT_ERROR_SEVERITY_ERROR = 0, |
| 1304 XSLT_ERROR_SEVERITY_WARNING | 1309 XSLT_ERROR_SEVERITY_WARNING |
| 1305 } xsltErrorSeverityType; | 1310 } xsltErrorSeverityType; |
| 1306 | 1311 |
| 1307 typedef struct _xsltCompilerCtxt xsltCompilerCtxt; | 1312 typedef struct _xsltCompilerCtxt xsltCompilerCtxt; |
| 1308 typedef xsltCompilerCtxt *xsltCompilerCtxtPtr; | 1313 typedef xsltCompilerCtxt *xsltCompilerCtxtPtr; |
| 1309 struct _xsltCompilerCtxt { | 1314 struct _xsltCompilerCtxt { |
| 1310 void *errorCtxt; /* user specific error context */ | 1315 void *errorCtxt; /* user specific error context */ |
| 1311 /* | 1316 /* |
| 1312 * used for error/warning reports; e.g. XSLT_ERROR_SEVERITY_WARNING */ | 1317 * used for error/warning reports; e.g. XSLT_ERROR_SEVERITY_WARNING */ |
| 1313 xsltErrorSeverityType errSeverity;» » | 1318 xsltErrorSeverityType errSeverity; |
| 1314 int warnings; /* TODO: number of warnings found at | 1319 int warnings; /* TODO: number of warnings found at |
| 1315 compilation */ | 1320 compilation */ |
| 1316 int errors; /* TODO: number of errors found at | 1321 int errors; /* TODO: number of errors found at |
| 1317 compilation */ | 1322 compilation */ |
| 1318 xmlDictPtr dict; | 1323 xmlDictPtr dict; |
| 1319 xsltStylesheetPtr style; | 1324 xsltStylesheetPtr style; |
| 1320 int simplified; /* whether this is a simplified stylesheet */ | 1325 int simplified; /* whether this is a simplified stylesheet */ |
| 1321 /* TODO: structured/unstructured error contexts. */ | 1326 /* TODO: structured/unstructured error contexts. */ |
| 1322 int depth; /* Current depth of processing */ | 1327 int depth; /* Current depth of processing */ |
| 1323 | 1328 |
| 1324 xsltCompilerNodeInfoPtr inode; | 1329 xsltCompilerNodeInfoPtr inode; |
| 1325 xsltCompilerNodeInfoPtr inodeList; | 1330 xsltCompilerNodeInfoPtr inodeList; |
| 1326 xsltCompilerNodeInfoPtr inodeLast; | 1331 xsltCompilerNodeInfoPtr inodeLast; |
| 1327 xsltPointerListPtr tmpList; /* Used for various purposes */ | 1332 xsltPointerListPtr tmpList; /* Used for various purposes */ |
| 1328 /* | 1333 /* |
| 1329 * The XSLT version as specified by the stylesheet's root element. | 1334 * The XSLT version as specified by the stylesheet's root element. |
| 1330 */ | 1335 */ |
| 1331 int isInclude; | 1336 int isInclude; |
| 1332 int hasForwardsCompat; /* whether forwards-compatible mode was used | 1337 int hasForwardsCompat; /* whether forwards-compatible mode was used |
| 1333 in a parsing episode */ | 1338 in a parsing episode */ |
| 1334 int maxNodeInfos; /* TEMP TODO: just for the interest */ | 1339 int maxNodeInfos; /* TEMP TODO: just for the interest */ |
| 1335 int maxLREs; /* TEMP TODO: just for the interest */ | 1340 int maxLREs; /* TEMP TODO: just for the interest */ |
| 1336 /* | 1341 /* |
| 1337 * In order to keep the old behaviour, applying strict rules of | 1342 * In order to keep the old behaviour, applying strict rules of |
| 1338 * the spec can be turned off. This has effect only on special | 1343 * the spec can be turned off. This has effect only on special |
| 1339 * mechanisms like whitespace-stripping in the stylesheet. | 1344 * mechanisms like whitespace-stripping in the stylesheet. |
| 1340 */ | 1345 */ |
| 1341 int strict; | 1346 int strict; |
| 1342 xsltPrincipalStylesheetDataPtr psData; | 1347 xsltPrincipalStylesheetDataPtr psData; |
| 1343 #ifdef XSLT_REFACTORED_XPATHCOMP | 1348 #ifdef XSLT_REFACTORED_XPATHCOMP |
| 1344 xmlXPathContextPtr xpathCtxt; | 1349 xmlXPathContextPtr xpathCtxt; |
| 1345 #endif | 1350 #endif |
| 1346 xsltStyleItemUknownPtr unknownItem; | 1351 xsltStyleItemUknownPtr unknownItem; |
| 1347 int hasNsAliases; /* Indicator if there was an xsl:namespace-alias. */ | 1352 int hasNsAliases; /* Indicator if there was an xsl:namespace-alias. */ |
| 1348 xsltNsAliasPtr nsAliases; | 1353 xsltNsAliasPtr nsAliases; |
| 1349 xsltVarInfoPtr ivars; /* Storage of local in-scope variables/params. */ | 1354 xsltVarInfoPtr ivars; /* Storage of local in-scope variables/params. */ |
| 1350 xsltVarInfoPtr ivar; /* topmost local variable/param. */ | 1355 xsltVarInfoPtr ivar; /* topmost local variable/param. */ |
| 1351 }; | 1356 }; |
| 1352 | 1357 |
| 1353 #else /* XSLT_REFACTORED */ | 1358 #else /* XSLT_REFACTORED */ |
| 1354 /* | 1359 /* |
| 1355 * The old structures before refactoring. | 1360 * The old structures before refactoring. |
| 1356 */ | 1361 */ |
| 1357 | 1362 |
| 1358 /** | 1363 /** |
| 1359 * _xsltStylePreComp: | 1364 * _xsltStylePreComp: |
| 1360 * | 1365 * |
| 1361 * The in-memory structure corresponding to XSLT stylesheet constructs | 1366 * The in-memory structure corresponding to XSLT stylesheet constructs |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1464 xsltPointerListPtr extElemNamespaces; | 1469 xsltPointerListPtr extElemNamespaces; |
| 1465 xsltEffectiveNsPtr effectiveNs; | 1470 xsltEffectiveNsPtr effectiveNs; |
| 1466 #ifdef XSLT_REFACTORED_XSLT_NSCOMP | 1471 #ifdef XSLT_REFACTORED_XSLT_NSCOMP |
| 1467 /* | 1472 /* |
| 1468 * Namespace name map to get rid of string comparison of namespace names. | 1473 * Namespace name map to get rid of string comparison of namespace names. |
| 1469 */ | 1474 */ |
| 1470 xsltNsMapPtr nsMap; | 1475 xsltNsMapPtr nsMap; |
| 1471 #endif | 1476 #endif |
| 1472 }; | 1477 }; |
| 1473 | 1478 |
| 1474 | 1479 |
| 1475 #endif | 1480 #endif |
| 1476 /* | 1481 /* |
| 1477 * Note that we added a @compCtxt field to anchor an stylesheet compilation | 1482 * Note that we added a @compCtxt field to anchor an stylesheet compilation |
| 1478 * context, since, due to historical reasons, various compile-time function | 1483 * context, since, due to historical reasons, various compile-time function |
| 1479 * take only the stylesheet as argument and not a compilation context. | 1484 * take only the stylesheet as argument and not a compilation context. |
| 1480 */ | 1485 */ |
| 1481 struct _xsltStylesheet { | 1486 struct _xsltStylesheet { |
| 1482 /* | 1487 /* |
| 1483 * The stylesheet import relation is kept as a tree. | 1488 * The stylesheet import relation is kept as a tree. |
| 1484 */ | 1489 */ |
| (...skipping 24 matching lines...) Expand all Loading... |
| 1509 void *templatesHash; /* hash table or wherever compiled templates | 1514 void *templatesHash; /* hash table or wherever compiled templates |
| 1510 informations are stored */ | 1515 informations are stored */ |
| 1511 void *rootMatch; /* template based on / */ | 1516 void *rootMatch; /* template based on / */ |
| 1512 void *keyMatch; /* template based on key() */ | 1517 void *keyMatch; /* template based on key() */ |
| 1513 void *elemMatch; /* template based on * */ | 1518 void *elemMatch; /* template based on * */ |
| 1514 void *attrMatch; /* template based on @* */ | 1519 void *attrMatch; /* template based on @* */ |
| 1515 void *parentMatch; /* template based on .. */ | 1520 void *parentMatch; /* template based on .. */ |
| 1516 void *textMatch; /* template based on text() */ | 1521 void *textMatch; /* template based on text() */ |
| 1517 void *piMatch; /* template based on processing-instruction() */ | 1522 void *piMatch; /* template based on processing-instruction() */ |
| 1518 void *commentMatch; /* template based on comment() */ | 1523 void *commentMatch; /* template based on comment() */ |
| 1519 | 1524 |
| 1520 /* | 1525 /* |
| 1521 * Namespace aliases. | 1526 * Namespace aliases. |
| 1522 * NOTE: Not used in the refactored code. | 1527 * NOTE: Not used in the refactored code. |
| 1523 */ | 1528 */ |
| 1524 xmlHashTablePtr nsAliases; /* the namespace alias hash tables */ | 1529 xmlHashTablePtr nsAliases; /* the namespace alias hash tables */ |
| 1525 | 1530 |
| 1526 /* | 1531 /* |
| 1527 * Attribute sets. | 1532 * Attribute sets. |
| 1528 */ | 1533 */ |
| 1529 xmlHashTablePtr attributeSets;/* the attribute sets hash tables */ | 1534 xmlHashTablePtr attributeSets;/* the attribute sets hash tables */ |
| 1530 | 1535 |
| 1531 /* | 1536 /* |
| 1532 * Namespaces. | 1537 * Namespaces. |
| 1533 * TODO: Eliminate this. | 1538 * TODO: Eliminate this. |
| 1534 */ | 1539 */ |
| 1535 xmlHashTablePtr nsHash; /* the set of namespaces in use: | 1540 xmlHashTablePtr nsHash; /* the set of namespaces in use: |
| 1536 ATTENTION: This is used for | 1541 ATTENTION: This is used for |
| 1537 execution of XPath expressions; unfortunately | 1542 execution of XPath expressions; unfortunately |
| 1538 it restricts the stylesheet to have distinct | 1543 it restricts the stylesheet to have distinct |
| 1539 prefixes. | 1544 prefixes. |
| 1540 » » » » TODO: We need to get rid of this. | 1545 » » » » TODO: We need to get rid of this. |
| 1541 */ | 1546 */ |
| 1542 void *nsDefs; /* ATTENTION TODO: This is currently used to sto
re | 1547 void *nsDefs; /* ATTENTION TODO: This is currently used to sto
re |
| 1543 xsltExtDefPtr (in extensions.c) and | 1548 xsltExtDefPtr (in extensions.c) and |
| 1544 *not* xmlNsPtr. | 1549 *not* xmlNsPtr. |
| 1545 */ | 1550 */ |
| 1546 | 1551 |
| 1547 /* | 1552 /* |
| 1548 * Key definitions. | 1553 * Key definitions. |
| 1549 */ | 1554 */ |
| 1550 void *keys; /* key definitions */ | 1555 void *keys; /* key definitions */ |
| 1551 | 1556 |
| 1552 /* | 1557 /* |
| 1553 * Output related stuff. | 1558 * Output related stuff. |
| 1554 */ | 1559 */ |
| 1555 xmlChar *method; /* the output method */ | 1560 xmlChar *method; /* the output method */ |
| 1556 xmlChar *methodURI; /* associated namespace if any */ | 1561 xmlChar *methodURI; /* associated namespace if any */ |
| 1557 xmlChar *version; /* version string */ | 1562 xmlChar *version; /* version string */ |
| 1558 xmlChar *encoding; /* encoding string */ | 1563 xmlChar *encoding; /* encoding string */ |
| 1559 int omitXmlDeclaration; /* omit-xml-declaration = "yes" | "no" */ | 1564 int omitXmlDeclaration; /* omit-xml-declaration = "yes" | "no" */ |
| 1560 | 1565 |
| 1561 /* | 1566 /* |
| 1562 * Number formatting. | 1567 * Number formatting. |
| 1563 */ | 1568 */ |
| 1564 xsltDecimalFormatPtr decimalFormat; | 1569 xsltDecimalFormatPtr decimalFormat; |
| 1565 int standalone; /* standalone = "yes" | "no" */ | 1570 int standalone; /* standalone = "yes" | "no" */ |
| 1566 xmlChar *doctypePublic; /* doctype-public string */ | 1571 xmlChar *doctypePublic; /* doctype-public string */ |
| 1567 xmlChar *doctypeSystem; /* doctype-system string */ | 1572 xmlChar *doctypeSystem; /* doctype-system string */ |
| 1568 int indent; /* should output being indented */ | 1573 int indent; /* should output being indented */ |
| 1569 xmlChar *mediaType; /* media-type string */ | 1574 xmlChar *mediaType; /* media-type string */ |
| 1570 | 1575 |
| 1571 /* | 1576 /* |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1621 /* | 1626 /* |
| 1622 * The principal stylesheet | 1627 * The principal stylesheet |
| 1623 */ | 1628 */ |
| 1624 xsltStylesheetPtr principal; | 1629 xsltStylesheetPtr principal; |
| 1625 #ifdef XSLT_REFACTORED | 1630 #ifdef XSLT_REFACTORED |
| 1626 /* | 1631 /* |
| 1627 * Compilation context used during compile-time. | 1632 * Compilation context used during compile-time. |
| 1628 */ | 1633 */ |
| 1629 xsltCompilerCtxtPtr compCtxt; /* TODO: Change this to (void *). */ | 1634 xsltCompilerCtxtPtr compCtxt; /* TODO: Change this to (void *). */ |
| 1630 | 1635 |
| 1631 xsltPrincipalStylesheetDataPtr principalData; | 1636 xsltPrincipalStylesheetDataPtr principalData; |
| 1632 #endif | 1637 #endif |
| 1638 /* |
| 1639 * Forwards-compatible processing |
| 1640 */ |
| 1641 int forwards_compatible; |
| 1633 }; | 1642 }; |
| 1634 | 1643 |
| 1635 typedef struct _xsltTransformCache xsltTransformCache; | 1644 typedef struct _xsltTransformCache xsltTransformCache; |
| 1636 typedef xsltTransformCache *xsltTransformCachePtr; | 1645 typedef xsltTransformCache *xsltTransformCachePtr; |
| 1637 struct _xsltTransformCache { | 1646 struct _xsltTransformCache { |
| 1638 xmlDocPtr RVT; | 1647 xmlDocPtr RVT; |
| 1639 int nbRVT; | 1648 int nbRVT; |
| 1640 xsltStackElemPtr stackItems; | 1649 xsltStackElemPtr stackItems; |
| 1641 int nbStackItems; | 1650 int nbStackItems; |
| 1642 #ifdef XSLT_DEBUG_PROFILE_CACHE | 1651 #ifdef XSLT_DEBUG_PROFILE_CACHE |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1768 xmlNodePtr initialContextNode; | 1777 xmlNodePtr initialContextNode; |
| 1769 xmlDocPtr initialContextDoc; | 1778 xmlDocPtr initialContextDoc; |
| 1770 xsltTransformCachePtr cache; | 1779 xsltTransformCachePtr cache; |
| 1771 void *contextVariable; /* the current variable item */ | 1780 void *contextVariable; /* the current variable item */ |
| 1772 xmlDocPtr localRVT; /* list of local tree fragments; will be freed when | 1781 xmlDocPtr localRVT; /* list of local tree fragments; will be freed when |
| 1773 the instruction which created the fragment | 1782 the instruction which created the fragment |
| 1774 exits */ | 1783 exits */ |
| 1775 xmlDocPtr localRVTBase; | 1784 xmlDocPtr localRVTBase; |
| 1776 int keyInitLevel; /* Needed to catch recursive keys issues */ | 1785 int keyInitLevel; /* Needed to catch recursive keys issues */ |
| 1777 int funcLevel; /* Needed to catch recursive functions issues */ | 1786 int funcLevel; /* Needed to catch recursive functions issues */ |
| 1787 int maxTemplateDepth; |
| 1788 int maxTemplateVars; |
| 1778 }; | 1789 }; |
| 1779 | 1790 |
| 1780 /** | 1791 /** |
| 1781 * CHECK_STOPPED: | 1792 * CHECK_STOPPED: |
| 1782 * | 1793 * |
| 1783 * Macro to check if the XSLT processing should be stopped. | 1794 * Macro to check if the XSLT processing should be stopped. |
| 1784 * Will return from the function. | 1795 * Will return from the function. |
| 1785 */ | 1796 */ |
| 1786 #define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return; | 1797 #define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return; |
| 1787 | 1798 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1821 * so it is disabled now | 1832 * so it is disabled now |
| 1822 */ | 1833 */ |
| 1823 | 1834 |
| 1824 #define XML_CAST_FPTR(fptr) fptr | 1835 #define XML_CAST_FPTR(fptr) fptr |
| 1825 #endif | 1836 #endif |
| 1826 /* | 1837 /* |
| 1827 * Functions associated to the internal types | 1838 * Functions associated to the internal types |
| 1828 xsltDecimalFormatPtr xsltDecimalFormatGetByName(xsltStylesheetPtr sheet, | 1839 xsltDecimalFormatPtr xsltDecimalFormatGetByName(xsltStylesheetPtr sheet, |
| 1829 xmlChar *name); | 1840 xmlChar *name); |
| 1830 */ | 1841 */ |
| 1831 XSLTPUBFUN xsltStylesheetPtr XSLTCALL» | 1842 XSLTPUBFUN xsltStylesheetPtr XSLTCALL |
| 1832 xsltNewStylesheet (void); | 1843 xsltNewStylesheet (void); |
| 1833 XSLTPUBFUN xsltStylesheetPtr XSLTCALL» | 1844 XSLTPUBFUN xsltStylesheetPtr XSLTCALL |
| 1834 xsltParseStylesheetFile (const xmlChar* filename); | 1845 xsltParseStylesheetFile (const xmlChar* filename); |
| 1835 XSLTPUBFUN void XSLTCALL» » » | 1846 XSLTPUBFUN void XSLTCALL |
| 1836 xsltFreeStylesheet (xsltStylesheetPtr style); | 1847 xsltFreeStylesheet (xsltStylesheetPtr style); |
| 1837 XSLTPUBFUN int XSLTCALL»» » | 1848 XSLTPUBFUN int XSLTCALL |
| 1838 xsltIsBlank (xmlChar *str); | 1849 xsltIsBlank (xmlChar *str); |
| 1839 XSLTPUBFUN void XSLTCALL» » » | 1850 XSLTPUBFUN void XSLTCALL |
| 1840 xsltFreeStackElemList (xsltStackElemPtr elem); | 1851 xsltFreeStackElemList (xsltStackElemPtr elem); |
| 1841 XSLTPUBFUN xsltDecimalFormatPtr XSLTCALL» | 1852 XSLTPUBFUN xsltDecimalFormatPtr XSLTCALL |
| 1842 xsltDecimalFormatGetByName(xsltStylesheetPtr style, | 1853 xsltDecimalFormatGetByName(xsltStylesheetPtr style, |
| 1843 xmlChar *name); | 1854 xmlChar *name); |
| 1844 | 1855 |
| 1845 XSLTPUBFUN xsltStylesheetPtr XSLTCALL» | 1856 XSLTPUBFUN xsltStylesheetPtr XSLTCALL |
| 1846 xsltParseStylesheetProcess(xsltStylesheetPtr ret, | 1857 xsltParseStylesheetProcess(xsltStylesheetPtr ret, |
| 1847 xmlDocPtr doc); | 1858 xmlDocPtr doc); |
| 1848 XSLTPUBFUN void XSLTCALL» » » | 1859 XSLTPUBFUN void XSLTCALL |
| 1849 xsltParseStylesheetOutput(xsltStylesheetPtr style, | 1860 xsltParseStylesheetOutput(xsltStylesheetPtr style, |
| 1850 xmlNodePtr cur); | 1861 xmlNodePtr cur); |
| 1851 XSLTPUBFUN xsltStylesheetPtr XSLTCALL» | 1862 XSLTPUBFUN xsltStylesheetPtr XSLTCALL |
| 1852 xsltParseStylesheetDoc (xmlDocPtr doc); | 1863 xsltParseStylesheetDoc (xmlDocPtr doc); |
| 1853 XSLTPUBFUN xsltStylesheetPtr XSLTCALL» | 1864 XSLTPUBFUN xsltStylesheetPtr XSLTCALL |
| 1854 xsltParseStylesheetImportedDoc(xmlDocPtr doc, | 1865 xsltParseStylesheetImportedDoc(xmlDocPtr doc, |
| 1855 xsltStylesheetPtr style); | 1866 xsltStylesheetPtr style); |
| 1856 XSLTPUBFUN xsltStylesheetPtr XSLTCALL» | 1867 XSLTPUBFUN xsltStylesheetPtr XSLTCALL |
| 1857 xsltLoadStylesheetPI (xmlDocPtr doc); | 1868 xsltLoadStylesheetPI (xmlDocPtr doc); |
| 1858 XSLTPUBFUN void XSLTCALL » » » | 1869 XSLTPUBFUN void XSLTCALL |
| 1859 xsltNumberFormat (xsltTransformContextPtr ctxt, | 1870 xsltNumberFormat (xsltTransformContextPtr ctxt, |
| 1860 xsltNumberDataPtr data, | 1871 xsltNumberDataPtr data, |
| 1861 xmlNodePtr node); | 1872 xmlNodePtr node); |
| 1862 XSLTPUBFUN xmlXPathError XSLTCALL» » | 1873 XSLTPUBFUN xmlXPathError XSLTCALL |
| 1863 xsltFormatNumberConversion(xsltDecimalFormatPtr self, | 1874 xsltFormatNumberConversion(xsltDecimalFormatPtr self, |
| 1864 xmlChar *format, | 1875 xmlChar *format, |
| 1865 double number, | 1876 double number, |
| 1866 xmlChar **result); | 1877 xmlChar **result); |
| 1867 | 1878 |
| 1868 XSLTPUBFUN void XSLTCALL» » » | 1879 XSLTPUBFUN void XSLTCALL |
| 1869 xsltParseTemplateContent(xsltStylesheetPtr style, | 1880 xsltParseTemplateContent(xsltStylesheetPtr style, |
| 1870 xmlNodePtr templ); | 1881 xmlNodePtr templ); |
| 1871 XSLTPUBFUN int XSLTCALL»» » | 1882 XSLTPUBFUN int XSLTCALL |
| 1872 xsltAllocateExtra (xsltStylesheetPtr style); | 1883 xsltAllocateExtra (xsltStylesheetPtr style); |
| 1873 XSLTPUBFUN int XSLTCALL»» » | 1884 XSLTPUBFUN int XSLTCALL |
| 1874 xsltAllocateExtraCtxt (xsltTransformContextPtr ctxt); | 1885 xsltAllocateExtraCtxt (xsltTransformContextPtr ctxt); |
| 1875 /* | 1886 /* |
| 1876 * Extra functions for Result Value Trees | 1887 * Extra functions for Result Value Trees |
| 1877 */ | 1888 */ |
| 1878 XSLTPUBFUN xmlDocPtr XSLTCALL» » | 1889 XSLTPUBFUN xmlDocPtr XSLTCALL |
| 1879 xsltCreateRVT (xsltTransformContextPtr ctxt); | 1890 xsltCreateRVT (xsltTransformContextPtr ctxt); |
| 1880 XSLTPUBFUN int XSLTCALL»» » | 1891 XSLTPUBFUN int XSLTCALL |
| 1881 xsltRegisterTmpRVT (xsltTransformContextPtr ctxt, | 1892 xsltRegisterTmpRVT (xsltTransformContextPtr ctxt, |
| 1882 xmlDocPtr RVT); | 1893 xmlDocPtr RVT); |
| 1883 XSLTPUBFUN int XSLTCALL»» » | 1894 XSLTPUBFUN int XSLTCALL |
| 1884 xsltRegisterLocalRVT (xsltTransformContextPtr ctxt, | 1895 xsltRegisterLocalRVT (xsltTransformContextPtr ctxt, |
| 1885 xmlDocPtr RVT); | 1896 xmlDocPtr RVT); |
| 1886 XSLTPUBFUN int XSLTCALL»» » | 1897 XSLTPUBFUN int XSLTCALL |
| 1887 xsltRegisterPersistRVT (xsltTransformContextPtr ctxt, | 1898 xsltRegisterPersistRVT (xsltTransformContextPtr ctxt, |
| 1888 xmlDocPtr RVT); | 1899 xmlDocPtr RVT); |
| 1889 XSLTPUBFUN int XSLTCALL | 1900 XSLTPUBFUN int XSLTCALL |
| 1890 xsltExtensionInstructionResultRegister( | 1901 xsltExtensionInstructionResultRegister( |
| 1891 xsltTransformContextPtr ctxt, | 1902 xsltTransformContextPtr ctxt, |
| 1892 xmlXPathObjectPtr obj); | 1903 xmlXPathObjectPtr obj); |
| 1893 XSLTPUBFUN int XSLTCALL | 1904 XSLTPUBFUN int XSLTCALL |
| 1894 xsltExtensionInstructionResultFinalize( | 1905 xsltExtensionInstructionResultFinalize( |
| 1895 xsltTransformContextPtr ctxt); | 1906 xsltTransformContextPtr ctxt); |
| 1896 XSLTPUBFUN void XSLTCALL | 1907 XSLTPUBFUN void XSLTCALL |
| 1897 xsltFreeRVTs (xsltTransformContextPtr ctxt); | 1908 xsltFreeRVTs (xsltTransformContextPtr ctxt); |
| 1898 XSLTPUBFUN void XSLTCALL | 1909 XSLTPUBFUN void XSLTCALL |
| 1899 xsltReleaseRVT (xsltTransformContextPtr ctxt, | 1910 xsltReleaseRVT (xsltTransformContextPtr ctxt, |
| 1900 xmlDocPtr RVT); | 1911 xmlDocPtr RVT); |
| 1901 XSLTPUBFUN int XSLTCALL | |
| 1902 xsltTransStorageAdd (xsltTransformContextPtr ctxt, | |
| 1903 void *id, | |
| 1904 void *data); | |
| 1905 XSLTPUBFUN void * XSLTCALL | |
| 1906 xsltTransStorageRemove (xsltTransformContextPtr ctxt, | |
| 1907 void *id); | |
| 1908 | |
| 1909 /* | 1912 /* |
| 1910 * Extra functions for Attribute Value Templates | 1913 * Extra functions for Attribute Value Templates |
| 1911 */ | 1914 */ |
| 1912 XSLTPUBFUN void XSLTCALL | 1915 XSLTPUBFUN void XSLTCALL |
| 1913 xsltCompileAttr (xsltStylesheetPtr style, | 1916 xsltCompileAttr (xsltStylesheetPtr style, |
| 1914 xmlAttrPtr attr); | 1917 xmlAttrPtr attr); |
| 1915 XSLTPUBFUN xmlChar * XSLTCALL | 1918 XSLTPUBFUN xmlChar * XSLTCALL |
| 1916 xsltEvalAVT (xsltTransformContextPtr ctxt, | 1919 xsltEvalAVT (xsltTransformContextPtr ctxt, |
| 1917 void *avt, | 1920 void *avt, |
| 1918 xmlNodePtr node); | 1921 xmlNodePtr node); |
| 1919 XSLTPUBFUN void XSLTCALL | 1922 XSLTPUBFUN void XSLTCALL |
| 1920 xsltFreeAVTList (void *avt); | 1923 xsltFreeAVTList (void *avt); |
| 1921 | 1924 |
| 1922 /* | 1925 /* |
| 1923 * Extra function for successful xsltCleanupGlobals / xsltInit sequence. | 1926 * Extra function for successful xsltCleanupGlobals / xsltInit sequence. |
| 1924 */ | 1927 */ |
| 1925 | 1928 |
| 1926 XSLTPUBFUN void XSLTCALL | 1929 XSLTPUBFUN void XSLTCALL |
| 1927 xsltUninit (void); | 1930 xsltUninit (void); |
| 1928 | 1931 |
| 1929 /************************************************************************ | 1932 /************************************************************************ |
| 1930 * * | 1933 * * |
| 1931 * Compile-time functions for *internal* use only * | 1934 * Compile-time functions for *internal* use only * |
| 1932 * * | 1935 * * |
| 1933 ************************************************************************/ | 1936 ************************************************************************/ |
| 1934 | 1937 |
| 1935 #ifdef XSLT_REFACTORED | 1938 #ifdef XSLT_REFACTORED |
| 1936 XSLTPUBFUN void XSLTCALL | 1939 XSLTPUBFUN void XSLTCALL |
| 1937 xsltParseSequenceConstructor( | 1940 xsltParseSequenceConstructor( |
| 1938 xsltCompilerCtxtPtr cctxt, | 1941 xsltCompilerCtxtPtr cctxt, |
| 1939 xmlNodePtr start); | 1942 xmlNodePtr start); |
| 1940 XSLTPUBFUN int XSLTCALL | 1943 XSLTPUBFUN int XSLTCALL |
| 1941 xsltParseAnyXSLTElem (xsltCompilerCtxtPtr cctxt, | 1944 xsltParseAnyXSLTElem (xsltCompilerCtxtPtr cctxt, |
| 1942 xmlNodePtr elem); | 1945 xmlNodePtr elem); |
| 1943 #ifdef XSLT_REFACTORED_XSLT_NSCOMP | 1946 #ifdef XSLT_REFACTORED_XSLT_NSCOMP |
| 1944 XSLTPUBFUN int XSLTCALL | 1947 XSLTPUBFUN int XSLTCALL |
| 1945 xsltRestoreDocumentNamespaces( | 1948 xsltRestoreDocumentNamespaces( |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1958 xsltDocumentPtr doc, | 1961 xsltDocumentPtr doc, |
| 1959 xsltKeyDefPtr keyd); | 1962 xsltKeyDefPtr keyd); |
| 1960 XSLTPUBFUN int XSLTCALL | 1963 XSLTPUBFUN int XSLTCALL |
| 1961 xsltInitAllDocKeys (xsltTransformContextPtr ctxt); | 1964 xsltInitAllDocKeys (xsltTransformContextPtr ctxt); |
| 1962 #ifdef __cplusplus | 1965 #ifdef __cplusplus |
| 1963 } | 1966 } |
| 1964 #endif | 1967 #endif |
| 1965 | 1968 |
| 1966 #endif /* __XML_XSLT_H__ */ | 1969 #endif /* __XML_XSLT_H__ */ |
| 1967 | 1970 |
| OLD | NEW |