You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 547db78
Browse filesBrowse the repository at this point in the historyBrowse files
**Miért nem `item_key`.** A §2.3 jegyzete a fordítottját magyarázza (miért
272
+
kapott a Shape-collection összetett kulcsa `item_key` nevet) — ugyanaz a
273
+
válasz erről az oldalról nézve: a `key_fields` egy ENTITÁST azonosít a
274
+
saját Address-én keresztül, az `item_key` egy ELEMET egyetlen entitás
275
+
collection-mezőjén belül. A két fogalom nem esik egybe, csak a nevük
276
+
kollidált volna.
277
+
278
+
**Grammatikai kezelés** (`check_grammar.py`): a `key_fields` felkerült a
279
+
`NODE_CONTAINERS`-re, tehát minden eleme rendes Shape-node-ként validálódik
280
+
(S2, a JSON Schema réteg). Az `item_fields`-től eltérően — ahol csak
281
+
NÉHÁNY elem kulcs, és az `item_key`/egyetlen-`role:key` levezetés dönti el,
282
+
melyik — a `key_fields` MINDEN eleme kulcs a definíciójából adódóan, tehát
283
+
nincs "levezetés": minden elemnek EXPLICIT `role: key`-t kell hordoznia
284
+
(**C16**), és a hiányzó `role` itt hiba, nem levezethető alapértelmezés.
285
+
223
286
---
224
287
225
288
## 3. Role — kombinációs algebra (P0.2)
@@ -284,7 +347,7 @@ role:
284
347
| `volatile` **kizárja** a `config`-ot | nem perzisztens értéknek nincs kívánt állapota |
285
348
| `key` **megköveteli** a `config`-ot | a kulcsot a kérő adja meg |
286
349
| `key` **megköveteli** a `mandatory`-t | kulcs nem hiányozhat |
287
-
| `key` **csak** `collection.key_fields`-ben álló mezőn| máshol nincs mit azonosítania |
350
+
| `key` **csak** `item_key`-ben megnevezett/egyetlen-kulcsos `item_fields` mezőn, VAGY egy Address `key_fields` elemén | máshol nincs mit azonosítania. (Ez a sor korábban `collection.key_fields`-et mondott — a §2.3 döntés, ami az `item_key` nevet választotta pont azért, hogy ne ütközzön a §2.7-ben formalizált Address `key_fields`-szel, itt nem lett átvezetve. Javítva, amikor a §2.7 megszületett.) |
288
351
| `key` **kizárja** a `derived`-et és a `volatile`-t | a kulcs a létrehozás után nem változhat |
289
352
| `reference` **megköveteli** a `semantic_type: cic-reference`-t | különben nincs mire mutatnia |
290
353
@@ -327,6 +390,12 @@ külön dokumentum marad ahelyett, hogy egy nyelv lenne.
327
390
| **C8** | minden listának van kulcsa; összetett kulcsnál `item_key` kötelező, és minden eleme `role: key`-es `item_fields` elem | §2.3 |
328
391
| **C9** | `semantic_type: cic-reference` ⇔ `reference_target` | egyik sem állhat a másik nélkül |
329
392
| **C10** | `reference_target` MUST `{namespace}:{Kind}` alakú legyen, és a `{namespace}` MUST `cic:`-vel kezdődjön | §2.4 |
393
+
| **C16** | Address `key_fields` minden eleme MUST `role: key`-t hordozzon explicit | §2.7 — nincs "levezetés", mert nincs nem-kulcs elem, amitől meg kéne különböztetni |
394
+
395
+
(C11–C15 a kódban léteznek — `check_role_algebra`/`check_default_against_role`/
396
+
`check_role_against_surface`/`check_duplicate_names` — de sosem kerültek be
397
+
ebbe a táblázatba. Nem ez a szál pótolja őket; a C16-ot azért a valódi
398
+
következő szabad szám alá vettem fel, nem C11 alá, hogy ne ütközzön velük.)
0 commit comments