Commit 20f5a51
fix(pages): expand multi-hop association XPath paths to avoid CE1613
A datasource constrained two associations away with the natural shorthand
database from Travel.Activity where [Travel.Day_Activity/Travel.Trip_Day = $Trip]
failed with CE1613 'The selected entity Travel.Trip_Day no longer exists': Mendix
XPath requires the intermediate entity between two association hops
(Assoc1/Entity/Assoc2), and mxcli stored the shorthand verbatim so mxbuild read
the second association as an entity.
buildDataSourceV3 now expands consecutive association segments, inserting the
intermediate entity resolved from each association's target
(resolveAssociationDestination). Safe by construction: only runs of slash-joined
qualified names anchored at an association from the datasource entity are touched,
and an entity is inserted only between two segments that both resolve as
associations — so the already-correct full form, single-hop constraints, and
attribute paths are returned verbatim. Verified against the reporter's Travel
schema: the two-hop Timeline datasource resolves, mx check 0 errors.
Known related (separate): attribute-over-association shorthand
([Assoc/Attribute = x], needs [Assoc/Entity/Attribute = x]) is not yet expanded.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JXnEgoc2NQP1Y2TWMCMXC41 parent 91b054b commit 20f5a51
2 files changed
Lines changed: 114 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 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 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
663 | 664 | | |
664 | 665 | | |
665 | 666 | | |
666 | | - | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
667 | 670 | | |
668 | | - | |
| 671 | + | |
669 | 672 | | |
670 | 673 | | |
671 | 674 | | |
| |||
787 | 790 | | |
788 | 791 | | |
789 | 792 | | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 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 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
790 | 846 | | |
791 | 847 | | |
792 | 848 | | |
| |||
0 commit comments