Zend_Ldap-API-Ldap-Node.xml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 20792 -->
  3. <!-- Reviewed: no -->
  4. <sect3 id="zend.ldap.api.reference.zend-ldap-node">
  5. <title>Zend_Ldap_Node</title>
  6. <para>
  7. <classname>Zend_Ldap_Node</classname> enthält die magischen Zugriffsmethoden
  8. <methodname>__set()</methodname>, <methodname>__get()</methodname>,
  9. <methodname>__unset()</methodname> und <methodname>__isset()</methodname> um auf die
  10. Attribute mit Ihrem Namen zugreifen zu können. Sie verweisen auf
  11. <methodname>Zend_Ldap_Node::setAttribute()</methodname>,
  12. <methodname>Zend_Ldap_Node::getAttribute()</methodname>,
  13. <methodname>Zend_Ldap_Node::deleteAttribute()</methodname> und
  14. <methodname>Zend_Ldap_Node::existsAttribute()</methodname>. Weiters implementiert die Klasse
  15. <code>ArrayAccess</code> für einen Array-artigen Zugriff auf die Attribute.
  16. <classname>Zend_Ldap_Node</classname> implementiert auch <code>Iterator</code> und
  17. <code>RecursiveIterator</code> um rekursive Suchen im Baum zu erlauben.
  18. </para>
  19. <table id="zend.ldap.api.reference.zend-ldap-node.table">
  20. <title>Zend_Ldap_Node API</title>
  21. <tgroup cols="2">
  22. <thead>
  23. <row>
  24. <entry>Methode</entry>
  25. <entry>Beschreibung</entry>
  26. </row>
  27. </thead>
  28. <tbody>
  29. <row>
  30. <entry><code>Zend_Ldap getLdap()</code></entry>
  31. <entry>
  32. Gibt die aktuelle <acronym>LDAP</acronym> Verbindung zurück. Wirft eine
  33. <classname>Zend_Ldap_Exception</classname> wenn der aktuelle Node im
  34. abgehängten Modus ist (nicht mit einer <classname>Zend_Ldap</classname>
  35. Instanz verbunden).
  36. </entry>
  37. </row>
  38. <row>
  39. <entry><code>Zend_Ldap_Node attachLdap(Zend_Ldap$ldap)</code></entry>
  40. <entry>
  41. Hängt den aktuellen Node an die <classname>Zend_Ldap</classname> Instanz
  42. <varname>$ldap</varname> an. Wirft eine
  43. <classname>Zend_Ldap_Exception</classname> wenn <varname>$ldap</varname>
  44. für den aktuellen Node nicht verantwortlich ist (wenn der Node kein Kind
  45. der Basis DN von <varname>$ldap</varname> ist).
  46. </entry>
  47. </row>
  48. <row>
  49. <entry><code>Zend_Ldap_Node detachLdap()</code></entry>
  50. <entry>Hängt den Node von der <acronym>LDAP</acronym> Verbindung ab.</entry>
  51. </row>
  52. <row>
  53. <entry><code>boolean isAttached()</code></entry>
  54. <entry>
  55. Prüft ob der aktuelle Node an eine <acronym>LDAP</acronym> Verbindung
  56. angehängt ist.
  57. </entry>
  58. </row>
  59. <row>
  60. <entry>
  61. <emphasis>
  62. <code>Zend_Ldap_Node create(string|array|Zend_Ldap_Dn $dn, array
  63. $objectClass)</code>
  64. </emphasis>
  65. </entry>
  66. <entry>
  67. Factory Methode um einen neuen abgehängten
  68. <classname>Zend_Ldap_Node</classname> für einen angegebenen DN zu erstellen.
  69. Erstellt einen neuen <classname>Zend_Ldap_Node</classname> mit dem DN
  70. <varname>$dn</varname> und der Objektklasse <varname>$objectClass</varname>.
  71. </entry>
  72. </row>
  73. <row>
  74. <entry>
  75. <emphasis>
  76. <code>Zend_Ldap_Node fromLdap(string|array|Zend_Ldap_Dn $dn, Zend_Ldap
  77. $ldap)</code>
  78. </emphasis>
  79. </entry>
  80. <entry>
  81. Factory Methode um einen angehängten <classname>Zend_Ldap_Node</classname>
  82. für einen angegebenen DN zu erstellen. Lädt einen existierenden
  83. <classname>Zend_Ldap_Node</classname> mit dem DN <varname>$dn</varname> von
  84. der <acronym>LDAP</acronym> Verbindung <varname>$ldap</varname>.
  85. </entry>
  86. </row>
  87. <row>
  88. <entry>
  89. <emphasis>
  90. <code>Zend_Ldap_Node fromArray((array $data, boolean
  91. $fromDataSource)</code>
  92. </emphasis>
  93. </entry>
  94. <entry>
  95. Factory Methode um einen abgehängten <classname>Zend_Ldap_Node</classname>
  96. aus den Array Daten <varname>$data</varname> zu erstellen. Wenn
  97. <varname>$fromDataSource</varname> <constant>TRUE</constant> ist (der
  98. Standardwert ist <constant>FALSE</constant>), werden die Daten als, in einem
  99. <acronym>LDAP</acronym> Baum vorhanden, betrachtet.
  100. </entry>
  101. </row>
  102. <row>
  103. <entry><code>boolean isNew()</code></entry>
  104. <entry>
  105. Sagt ob der Node als Neu betrachtet wird (nicht auf dem Server vorhanden).
  106. Es ist zu beachten dass das nicht sagt ob der Node wirklich auf dem Server
  107. vorhanden ist. Man muss <methodname>Zend_Ldap_Node::exists()</methodname>
  108. verwenden um zu sehen ob der Node dort bereits existiert.
  109. </entry>
  110. </row>
  111. <row>
  112. <entry><code>boolean willBeDeleted()</code></entry>
  113. <entry>
  114. Sagt ob dieser Node gelöscht wird sobald
  115. <methodname>Zend_Ldap_Node::update()</methodname> aufgerufen wird.
  116. Tells if this node is going to be deleted once
  117. <methodname>Zend_Ldap_Node::update()</methodname> is called.
  118. </entry>
  119. </row>
  120. <row>
  121. <entry><code>Zend_Ldap_Node delete()</code></entry>
  122. <entry>
  123. Markiert den Node als gelöscht. Nodes werden beim Aufruf von
  124. <methodname>Zend_Ldap_Node::update()</methodname> gelöscht, wenn
  125. <methodname>Zend_Ldap_Node::willBeDeleted()</methodname>
  126. <constant>TRUE</constant> ist.
  127. </entry>
  128. </row>
  129. <row>
  130. <entry><code>boolean willBeMoved()</code></entry>
  131. <entry>
  132. Sagt ob dieser Node verschoben wird sobald
  133. <methodname>Zend_Ldap_Node::update()</methodname> aufgerufen wird.
  134. </entry>
  135. </row>
  136. <row>
  137. <entry><code>Zend_Ldap_Node update(Zend_Ldap $ldap)</code></entry>
  138. <entry>
  139. Sendet alle wartenden Änderungen an den <acronym>LDAP</acronym> Server. Wenn
  140. <varname>$ldap</varname> unterdrückt wird, dann wird die aktuelle
  141. <acronym>LDAP</acronym> Verbindung verwendet. Wenn der aktuelle Node von
  142. einer <acronym>LDAP</acronym> Verbindung getrennt ist, wird eine
  143. <classname>Zend_Ldap_Exception</classname> geworfen. Wenn
  144. <varname>$ldap</varname> angegeben wird, dann wird der aktuelle Node an die
  145. angegebene <acronym>LDAP</acronym> Verbindung angehängt.
  146. </entry>
  147. </row>
  148. <row>
  149. <entry><code>Zend_Ldap_Dn getCurrentDn()</code></entry>
  150. <entry>
  151. Gibt den aktuellen DN des aktuellen Nodes als Zend_Ldap_Dn zurück. Das
  152. reflektiert mögliche rename-Operationen.
  153. </entry>
  154. </row>
  155. <row>
  156. <entry><code>Zend_Ldap_Dn getDn()</code></entry>
  157. <entry>
  158. Gibt den originalen DN des aktuellen Nodes als Zend_Ldap_Dn zurück. Das
  159. reflektiert mögliche rename-Operationen.
  160. </entry>
  161. </row>
  162. <row>
  163. <entry><code>string getDnString(string $caseFold)</code></entry>
  164. <entry>
  165. Gibt den originalen DN des aktuellen Nodes als String zurück. Das
  166. reflektiert mögliche rename-Operationen.
  167. </entry>
  168. </row>
  169. <row>
  170. <entry><code>array getDnArray(string $caseFold)</code></entry>
  171. <entry>
  172. Gibt den originalen DN des aktuellen Nodes als Array zurück. Das reflektiert
  173. mögliche rename-Operationen.
  174. </entry>
  175. </row>
  176. <row>
  177. <entry><code>string getRdnString(string $caseFold)</code></entry>
  178. <entry>
  179. Gibt den <acronym>RDN</acronym> des aktuellen Nodes als String zurück. Das
  180. reflektiert mögliche rename-Operationen.
  181. </entry>
  182. </row>
  183. <row>
  184. <entry><code>array getRdnArray(string $caseFold)</code></entry>
  185. <entry>
  186. Gibt den <acronym>RDN</acronym> des aktuellen Nodes als Array zurück. Das
  187. reflektiert mögliche rename-Operationen.
  188. </entry>
  189. </row>
  190. <row>
  191. <entry>
  192. <code>Zend_Ldap_Node setDn(Zend_Ldap_Dn|string|array $newDn)</code>
  193. </entry>
  194. <entry>
  195. Setzt den neuen DB für diesen Node und verschiebt diesen Node effektiv
  196. sobald <methodname>Zend_Ldap_Node::update()</methodname> aufgerufen wird.
  197. </entry>
  198. </row>
  199. <row>
  200. <entry>
  201. <code>Zend_Ldap_Node move(Zend_Ldap_Dn|string|array $newDn)</code>
  202. </entry>
  203. <entry>
  204. Das ist ein Alias für <methodname>Zend_Ldap_Node::setDn()</methodname>.
  205. </entry>
  206. </row>
  207. <row>
  208. <entry>
  209. <code>Zend_Ldap_Node rename(Zend_Ldap_Dn|string|array $newDn)</code>
  210. </entry>
  211. <entry>
  212. Das ist ein Alias für <methodname>Zend_Ldap_Node::setDn()</methodname>.
  213. </entry>
  214. </row>
  215. <row>
  216. <entry><code>array getObjectClass()</code></entry>
  217. <entry>Gibt objectClass des Nodes zurück.</entry>
  218. </row>
  219. <row>
  220. <entry>
  221. <code>Zend_Ldap_Node setObjectClass(array|string $value)</code>
  222. </entry>
  223. <entry>Setzt das objectClass Attribut.</entry>
  224. </row>
  225. <row>
  226. <entry>
  227. <code>Zend_Ldap_Node appendObjectClass(array|string $value)</code>
  228. </entry>
  229. <entry>Stellt dem objectClass Attribut voran.</entry>
  230. </row>
  231. <row>
  232. <entry><code>string toLdif(array $options)</code></entry>
  233. <entry>
  234. Gibt eine <acronym>LDIF</acronym> Repräsentation des aktuellen Nodes zurück.
  235. <varname>$options</varname> wird an
  236. <classname>Zend_Ldap_Ldif_Encoder</classname> übergeben.
  237. </entry>
  238. </row>
  239. <row>
  240. <entry><code>array getChangedData()</code></entry>
  241. <entry>
  242. Gibt geänderte Node Daten zurück. Das Array enthält alle geänderten
  243. Attribute. Dieses format kann in <methodname>Zend_Ldap::add()</methodname>
  244. und <methodname>Zend_Ldap::update()</methodname> verwendet werden.
  245. </entry>
  246. </row>
  247. <row>
  248. <entry><code>array getChanges()</code></entry>
  249. <entry>Gibt alle gemachten Änderungen zurück.</entry>
  250. </row>
  251. <row>
  252. <entry><code>string toString()</code></entry>
  253. <entry>
  254. Gibt den DN des aktuellen Nodes zurück - leitet auf
  255. <methodname>Zend_Ldap_Dn::getDnString()</methodname> weiter.
  256. </entry>
  257. </row>
  258. <row>
  259. <entry><code>string __toString()</code></entry>
  260. <entry>
  261. Castet auf eine String Repräsentation - leitet auf
  262. <methodname>Zend_Ldap_Dn::toString()</methodname> weiter.
  263. </entry>
  264. </row>
  265. <row>
  266. <entry><code>array toArray(boolean $includeSystemAttributes)</code></entry>
  267. <entry>
  268. Gibt eine Array Repräsentation des aktuellen Nodes zurück. Wenn
  269. <varname>$includeSystemAttributes</varname> <constant>FALSE</constant> ist
  270. (der Standardwert ist <constant>TRUE</constant>), werden Systemspezifische
  271. Attribute vom Array entfernt. Anders als
  272. <methodname>Zend_Ldap_Node::getAttributes()</methodname> enthält das
  273. resultierende Array den DN mit dem Schlüssel <code>'dn'</code>.
  274. </entry>
  275. </row>
  276. <row>
  277. <entry><code>string toJson(boolean $includeSystemAttributes)</code></entry>
  278. <entry>
  279. Gibt eine <acronym>JSON</acronym> Repräsentation des aktuellen Nodes zurück
  280. wobei <methodname>Zend_Ldap_Node::toArray()</methodname> verwendet wird.
  281. </entry>
  282. </row>
  283. <row>
  284. <entry><code>array getData(boolean $includeSystemAttributes)</code></entry>
  285. <entry>
  286. Gibt die Attribute des Nodes zurück. Das Array enthält alle Attribute in
  287. Ihrem internen Format (keine Konvertierung).
  288. </entry>
  289. </row>
  290. <row>
  291. <entry>
  292. <code>boolean existsAttribute(string $name, boolean $emptyExists)</code>
  293. </entry>
  294. <entry>
  295. Prüft ob ein angegebenes Attribut existiert. Wenn
  296. <varname>$emptyExists</varname> <constant>FALSE</constant> ist werden leere
  297. Attrbute (welche nur array() enthalten) als nicht-existent betrachtet und es
  298. wird <constant>FALSE</constant> zurückgegeben. Wenn
  299. <varname>$emptyExists</varname> <constant>TRUE</constant> ist werden leere
  300. Attribute als existent betrachtet und es wird <constant>TRUE</constant>
  301. zurückgegeben. In diesem Fall gibt die Methode nur dann
  302. <constant>FALSE</constant> zurck wenn der Name des Attributs in der Sammlung
  303. der Schlüssel fehlt.
  304. </entry>
  305. </row>
  306. <row>
  307. <entry>
  308. <code>boolean attributeHasValue(string $name, mixed|array $value)</code>
  309. </entry>
  310. <entry>
  311. Prüft ob die angegebenen Werte im Attribut existieren. Die Methode gibt nur
  312. dann <constant>TRUE</constant> zurück wenn alle Werte von
  313. <varname>$value</varname> im Attribut vorhanden sind. Der Vergleich wird
  314. strikt durchgeführt (er respektiert den Datentyp).
  315. </entry>
  316. </row>
  317. <row>
  318. <entry><code>integer count()</code></entry>
  319. <entry>
  320. Gibt die Anzahl der Attribute im Node zurück. Implementiert Countable.
  321. </entry>
  322. </row>
  323. <row>
  324. <entry>
  325. <code>mixed getAttribute(string $name, integer|null $index)</code>
  326. </entry>
  327. <entry>
  328. Holt ein <acronym>LDAP</acronym> Attribut. Die Datenkonvertierung wird
  329. angewendet durch Verwendung von
  330. <methodname>Zend_Ldap_Attribute::getAttribute()</methodname>.
  331. </entry>
  332. </row>
  333. <row>
  334. <entry>
  335. <code>array getAttributes(boolean $includeSystemAttributes)</code>
  336. </entry>
  337. <entry>
  338. Holt alle Attribute des Nodes. Wenn
  339. <varname>$includeSystemAttributes</varname> <constant>FALSE</constant> ist
  340. (der Standardwert ist <constant>TRUE</constant>) dann werden die System
  341. spezifischen Attribute vom Array entfernt.
  342. </entry>
  343. </row>
  344. <row>
  345. <entry>
  346. <code>Zend_Ldap_Node setAttribute(string $name, mixed $value)</code>
  347. </entry>
  348. <entry>
  349. Setzt ein <acronym>LDAP</acronym> Attribut. Die Datenkonvertierung wird
  350. angewendet durch Verwendung von
  351. <methodname>Zend_Ldap_Attribute::setAttribute()</methodname>.
  352. </entry>
  353. </row>
  354. <row>
  355. <entry>
  356. <code>Zend_Ldap_Node appendToAttribute(string $name, mixed $value)</code>
  357. </entry>
  358. <entry>
  359. Hängt etwas an ein <acronym>LDAP</acronym> Attribut an. Die
  360. Datenkonvertierung wird angewendet durch Verwendung von
  361. <methodname>Zend_Ldap_Attribute::setAttribute()</methodname>.
  362. </entry>
  363. </row>
  364. <row>
  365. <entry>
  366. <code>array|integer getDateTimeAttribute(string $name,
  367. integer|null $index)</code>
  368. </entry>
  369. <entry>
  370. Holt ein <acronym>LDAP</acronym> Date/Time Attribut. Die Datenkonvertierung
  371. wird angewendet durch Verwendung von
  372. <methodname>Zend_Ldap_Attribute::setDateTimeAttribute()</methodname>.
  373. </entry>
  374. </row>
  375. <row>
  376. <entry>
  377. <code>Zend_Ldap_Node setDateTimeAttribute(string $name,
  378. integer|array $value, boolean $utc)</code>
  379. </entry>
  380. <entry>
  381. Setzt ein <acronym>LDAP</acronym> Date/Time Attribut. Die Datenkonvertierung
  382. wird angewendet durch Verwendung von
  383. <methodname>Zend_Ldap_Attribute::setDateTimeAttribute()</methodname>.
  384. </entry>
  385. </row>
  386. <row>
  387. <entry>
  388. <code>Zend_Ldap_Node appendToDateTimeAttribute(string $name,
  389. integer|array $value, boolean $utc)</code>
  390. </entry>
  391. <entry>
  392. Hängt etwas an ein <acronym>LDAP</acronym> Date/Time Attribut an. Die
  393. Datenkonvertierung wird angewendet durch Verwendung von
  394. <methodname>Zend_Ldap_Attribute::setDateTimeAttribute()</methodname>.
  395. </entry>
  396. </row>
  397. <row>
  398. <entry>
  399. <code>Zend_Ldap_Node setPasswordAttribute(string $password,
  400. string $hashType, string $attribName)</code>
  401. </entry>
  402. <entry>
  403. Setzt ein <acronym>LDAP</acronym> Passwort bei
  404. <varname>$attribName</varname> (der Standardwert ist
  405. <code>'userPassword'</code>) auf <varname>$password</varname> mit dem
  406. Hashtyp <varname>$hashType</varname> (der Standardwert ist
  407. <constant>Zend_Ldap_Attribute::PASSWORD_HASH_MD5</constant>).
  408. </entry>
  409. </row>
  410. <row>
  411. <entry><code>Zend_Ldap_Node deleteAttribute(string $name)</code></entry>
  412. <entry>Löscht ein <acronym>LDAP</acronym> Attribut.</entry>
  413. </row>
  414. <row>
  415. <entry><code>void removeDuplicatesFromAttribute(string $name)</code></entry>
  416. <entry>
  417. Entfernt doppelte Werte von einem <acronym>LDAP</acronym> Attribut.
  418. </entry>
  419. </row>
  420. <row>
  421. <entry>
  422. <code>void removeFromAttribute(string $attribName,
  423. mixed|array $value)</code>
  424. </entry>
  425. <entry>
  426. Entfernt die angegebenen Werte von einem <acronym>LDAP</acronym> Attribut.
  427. </entry>
  428. </row>
  429. <row>
  430. <entry><code>boolean exists(Zend_Ldap $ldap)</code></entry>
  431. <entry>
  432. Prüft ob der aktuelle Node im angegebenen <acronym>LDAP</acronym> Server
  433. existiert (der aktuelle Server wird verwendet wenn
  434. <constant>NULL</constant> übergeben wird).
  435. </entry>
  436. </row>
  437. <row>
  438. <entry><code>Zend_Ldap_Node reload(Zend_Ldap $ldap)</code></entry>
  439. <entry>
  440. Lädt die Attribute des aktuellen Nodes nochmalig vom angegebenen
  441. <acronym>LDAP</acronym> Server (der aktuelle Server wird verwendet wenn
  442. <constant>NULL</constant> übergeben wird).
  443. </entry>
  444. </row>
  445. <row>
  446. <entry>
  447. <code>Zend_Ldap_Node_Collection
  448. searchSubtree(string|Zend_Ldap_Filter_Abstract $filter, integer
  449. $scope, string $sort)</code>
  450. </entry>
  451. <entry>
  452. Sucht den Unterbaum des Nodes mit dem angegebenen <varname>$filter</varname>
  453. und den angegebenen Suchparametern ab. Siehe
  454. <methodname>Zend_Ldap::search()</methodname> für Details über die
  455. Parameter <varname>$scope</varname> und <varname>$sort</varname>.
  456. </entry>
  457. </row>
  458. <row>
  459. <entry>
  460. <code>integer countSubtree(string|Zend_Ldap_Filter_Abstract
  461. $filter, integer $scope)</code>
  462. </entry>
  463. <entry>
  464. Zählt die Elemente des Unterbaums vom Node welche dem angegebenen
  465. <varname>$filter</varname> entsprechen und dem angegebenen Suchbereich.
  466. Siehe <methodname>Zend_Ldap::search()</methodname> für Details über den
  467. <varname>$scope</varname> Parameter.
  468. </entry>
  469. </row>
  470. <row>
  471. <entry><code>integer countChildren()</code></entry>
  472. <entry>Zählt die Kinder des Nodes.</entry>
  473. </row>
  474. <row>
  475. <entry>
  476. <code>Zend_Ldap_Node_Collection
  477. searchChildren(string|Zend_Ldap_Filter_Abstract $filter, string
  478. $sort)</code>
  479. </entry>
  480. <entry>
  481. Sucht nach Kindern des Nodes die dem angegebenen <varname>$filter</varname>
  482. entsprechen. Siehe <methodname>Zend_Ldap::search()</methodname> für Details
  483. über den <varname>$sort</varname> Parameter.
  484. </entry>
  485. </row>
  486. <row>
  487. <entry><code>boolean hasChildren()</code></entry>
  488. <entry>Gibt zurück ob der aktuelle Node Kinder hat.</entry>
  489. </row>
  490. <row>
  491. <entry><code>Zend_Ldap_Node_ChildrenIterator getChildren()</code></entry>
  492. <entry>Gibt alle Kinder des aktuellen Nodes zurück.</entry>
  493. </row>
  494. <row>
  495. <entry><code>Zend_Ldap_Node getParent(Zend_Ldap $ldap)</code></entry>
  496. <entry>
  497. Gibt den Elternteil des aktuellen Nodes zurück wobei die
  498. <acronym>LDAP</acronym> Verbindung <varname>$ldap</varname> verwendet wird
  499. (verwendet die aktuelle <acronym>LDAP</acronym> Verbindung wenn diese nicht
  500. angegeben wird).
  501. </entry>
  502. </row>
  503. </tbody>
  504. </tgroup>
  505. </table>
  506. </sect3>