tDOM

Check-in [ddad141351]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Save work.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | localkey
Files: files | file ages | folders
SHA3-256: ddad141351e6fcb0d55fa01d8aa4b42c00ed93909d5cb18566cb8792aabe4628
User & Date: rolf 2019-05-21 23:56:04
Context
2019-05-22
22:22
Added the XPath step "." as allowed step in restricted schema XPath Expressions. check-in: ab18265ee0 user: rolf tags: localkey
2019-05-21
23:56
Save work. check-in: ddad141351 user: rolf tags: localkey
22:37
Merged from schema. check-in: 72ce7820c1 user: rolf tags: localkey
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/schema.c.

808
809
810
811
812
813
814
815



816
817
818
819
820
821


822
823
824





825
826

827
828
829
830
831
832
833
        memset (stackElm->interleaveState, 0, sizeof (int) * pattern->nc);
    }
    if (pattern->type == SCHEMA_CTYPE_NAME && se) {
        /* Handle local key contraint matches */
        ks = se->keyState;
        while (ks) {
            if (ks->selector->name != pattern->name
                || ks->selector->ns == pattern->namespace) continue;



            if (ks->selector->child) {
                getKeyState(newks);
                newks->keyTable = ks->keyTable;
                newks->ownTable = 0;
                newks->selector = ks->selector->child;
                newks->fields = ks->fields;


                if (ks->type == SCHEMA_STEP_DESCENDANT_ELEMENT) {
                    
                }





                newks->next = stackElm->keyState;
                stackElm->keyState = newks;

            } else {
                /* Selector has matched, grab the fields */
            }
        }
        
        /* And open new local key contraints, if necessary. */
        kc = pattern->localkeys;






|
>
>
>






>
>

<
<
>
>
>
>
>
|
|
>







808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827


828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
        memset (stackElm->interleaveState, 0, sizeof (int) * pattern->nc);
    }
    if (pattern->type == SCHEMA_CTYPE_NAME && se) {
        /* Handle local key contraint matches */
        ks = se->keyState;
        while (ks) {
            if (ks->selector->name != pattern->name
                || ks->selector->ns != pattern->namespace) {
                ks = ks->next;
                continue;
            }
            if (ks->selector->child) {
                getKeyState(newks);
                newks->keyTable = ks->keyTable;
                newks->ownTable = 0;
                newks->selector = ks->selector->child;
                newks->fields = ks->fields;
                newks->next = stackElm->keyState;
                stackElm->keyState = newks;
                if (ks->type == SCHEMA_STEP_DESCENDANT_ELEMENT) {


                    getKeyState(newks);
                    newks->keyTable = ks->keyTable;
                    newks->ownTable = 0;
                    newks->selector = ks->selector;
                    newks->fields = ks->fields;
                    newks->next = stackElm->keyState;
                    stackElm->keyState = newks;                    
                }
            } else {
                /* Selector has matched, grab the fields */
            }
        }
        
        /* And open new local key contraints, if necessary. */
        kc = pattern->localkeys;