author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 02 Jul 2018 08:46:01 +0200 | |
changeset 305 | bad21c4f64bf |
parent 296 | ea3dbc023c80 |
permissions | -rw-r--r-- |
241
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
"{ Package: 'stx:goodies/xmlsuite/xquery' }" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
"{ NameSpace: XQuery }" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
XDMAccessors subclass:#ElementAccessor |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
instanceVariableNames:'' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
classVariableNames:'' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
poolDictionaries:'' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
category:'XQuery-Sequence' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
!ElementAccessor methodsFor:'private'! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
descendants: xdm |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
| children descendants | |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
descendants := OrderedCollection new. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
children := self dmChildrenFor: xdm. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
descendants addAll: children. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
children do: [ :child | |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
descendants addAll: (self descendants: child). |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
^ descendants. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
"Created: / 03-10-2009 / 14:46:05 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
! ! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
!ElementAccessor methodsFor:'xdm accessors - private'! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
primDmAttributesFor: xdm |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
xdm attributes ifNil: |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
[ |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
^ XQuerySequence new. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
] |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
ifNotNil: |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
[ |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
^ xdm attributes. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
"Created: / 03-10-2009 / 14:16:59 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
"Modified: / 06-10-2009 / 13:07:57 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
47 |
primDmChildrenFor: xdm |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
48 |
xdm children ifNil: |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
49 |
[ |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
50 |
^ OrderedCollection new. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
51 |
] |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
52 |
ifNotNil: |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
53 |
[ |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
54 |
^ xdm children. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
55 |
]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
56 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
57 |
"Created: / 03-10-2009 / 14:13:35 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
58 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
59 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
60 |
primDmDocumentUriFor: xdm |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
61 |
^ XQuerySequence new. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
62 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
63 |
"Created: / 03-10-2009 / 14:13:30 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
64 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
65 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
66 |
primDmStringValueFor: xdm |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
67 |
"The string-value property of an Element Node must be the concatenation of the |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
68 |
string-values of all its Text Node descendants in document order or, if the |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
69 |
element has no such descendants, the zero-length string." |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
70 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
71 |
| stringValue descendants | |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
72 |
stringValue := ''. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
73 |
descendants := self descendants: xdm. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
74 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
75 |
descendants do: [ :descendant | |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
76 |
descendant nodeKind = 'text' ifTrue: |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
77 |
[ |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
78 |
stringValue := stringValue, (self dmStringValueFor: descendant). |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
79 |
] |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
80 |
]. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
81 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
82 |
^ stringValue. |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
83 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
84 |
"Created: / 03-10-2009 / 14:38:54 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
85 |
"Modified: / 06-10-2009 / 16:47:13 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
86 |
! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
87 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
88 |
primDmTypedValueFor: xdm |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
89 |
^ AtomicItem withValue: (self dmStringValueFor: xdm). |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
90 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
91 |
"Created: / 06-10-2009 / 15:43:44 / Jan Kurs <kursj1@fel.cvut.cz>" |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
92 |
! ! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
93 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
94 |
!ElementAccessor class methodsFor:'documentation'! |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
95 |
|
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
96 |
version_SVN |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
97 |
^ '$Id$' |
e28ef0f20186
Branch datatypes reintegrated
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
98 |
! ! |