@blockml/bom 0.9.3 → 0.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/blocks/org/blockml/bml/bom/Library.bml +20 -28
  2. package/blocks/org/blockml/bml/bom/README.bml +14 -21
  3. package/blocks/org/blockml/bml/bom/UrmodellType.bml +16 -20
  4. package/blocks/org/blockml/bml/bom/api/ParseOptions.bml +19 -20
  5. package/blocks/org/blockml/bml/bom/api/ParseResult.bml +22 -21
  6. package/blocks/org/blockml/bml/bom/api/SerializeOptions.bml +19 -20
  7. package/blocks/org/blockml/bml/bom/api/SerializeResult.bml +22 -21
  8. package/blocks/org/blockml/bml/bom/api/TypeRegistryReader.bml +13 -17
  9. package/blocks/org/blockml/bml/bom/api/ValidateOptions.bml +25 -22
  10. package/blocks/org/blockml/bml/bom/api/ValidateResult.bml +22 -21
  11. package/blocks/org/blockml/bml/bom/block/AliasEntry.bml +28 -23
  12. package/blocks/org/blockml/bml/bom/block/BlockDefinition.bml +142 -57
  13. package/blocks/org/blockml/bml/bom/block/ChangelogEntry.bml +25 -22
  14. package/blocks/org/blockml/bml/bom/block/DocumentationExample.bml +34 -25
  15. package/blocks/org/blockml/bml/bom/block/DocumentationProseEntry.bml +28 -23
  16. package/blocks/org/blockml/bml/bom/block/DocumentationReference.bml +52 -31
  17. package/blocks/org/blockml/bml/bom/block/GenericType.bml +22 -21
  18. package/blocks/org/blockml/bml/bom/block/KeywordEntry.bml +28 -23
  19. package/blocks/org/blockml/bml/bom/block/TypeReferenceEntityInstance.bml +22 -21
  20. package/blocks/org/blockml/bml/bom/capability/BomEquals.bml +22 -21
  21. package/blocks/org/blockml/bml/bom/capability/StripProvenance.bml +19 -20
  22. package/blocks/org/blockml/bml/bom/common/CharacterDataForm.bml +16 -19
  23. package/blocks/org/blockml/bml/bom/common/Diagnostic.bml +25 -22
  24. package/blocks/org/blockml/bml/bom/common/DiagnosticSeverity.bml +16 -19
  25. package/blocks/org/blockml/bml/bom/common/EmptyElementForm.bml +16 -19
  26. package/blocks/org/blockml/bml/bom/common/HostValue.bml +13 -17
  27. package/blocks/org/blockml/bml/bom/common/MemberSectionName.bml +16 -19
  28. package/blocks/org/blockml/bml/bom/common/MetadataElementTrivia.bml +16 -19
  29. package/blocks/org/blockml/bml/bom/common/SourceInfo.bml +35 -23
  30. package/blocks/org/blockml/bml/bom/common/SourceLocation.bml +28 -23
  31. package/blocks/org/blockml/bml/bom/common/UnknownXmlNode.bml +28 -23
  32. package/blocks/org/blockml/bml/bom/common/XmlNodeKind.bml +16 -19
  33. package/blocks/org/blockml/bml/bom/common/XmlRenderingBlock.bml +16 -19
  34. package/blocks/org/blockml/bml/bom/common/XmlRenderingMember.bml +25 -22
  35. package/blocks/org/blockml/bml/bom/common/XmlTrivia.bml +19 -20
  36. package/blocks/org/blockml/bml/bom/composition/BlockInstance.bml +55 -32
  37. package/blocks/org/blockml/bml/bom/composition/BlockInstanceNode.bml +25 -22
  38. package/blocks/org/blockml/bml/bom/composition/CompositionNode.bml +16 -19
  39. package/blocks/org/blockml/bml/bom/composition/CompositionTemplate.bml +28 -23
  40. package/blocks/org/blockml/bml/bom/composition/DirectiveAttribute.bml +16 -19
  41. package/blocks/org/blockml/bml/bom/composition/EachDirective.bml +25 -22
  42. package/blocks/org/blockml/bml/bom/composition/GenericsBinding.bml +26 -23
  43. package/blocks/org/blockml/bml/bom/composition/IfDirective.bml +19 -20
  44. package/blocks/org/blockml/bml/bom/composition/InstanceAggregationComposition.bml +22 -21
  45. package/blocks/org/blockml/bml/bom/composition/UnlessDirective.bml +19 -20
  46. package/blocks/org/blockml/bml/bom/composition/VirtualContainerNode.bml +28 -23
  47. package/blocks/org/blockml/bml/bom/composition/WithBinding.bml +19 -20
  48. package/blocks/org/blockml/bml/bom/composition/WithDirective.bml +19 -20
  49. package/blocks/org/blockml/bml/bom/document/BomDocument.bml +25 -23
  50. package/blocks/org/blockml/bml/bom/documentation/AbstractionPrinciple.bml +16 -21
  51. package/blocks/org/blockml/bml/bom/documentation/ArchitectureOverview.bml +16 -21
  52. package/blocks/org/blockml/bml/bom/documentation/AuthoredSurfaceTable.bml +14 -17
  53. package/blocks/org/blockml/bml/bom/documentation/CalibratorExample.bml +19 -24
  54. package/blocks/org/blockml/bml/bom/documentation/CompositionDirectives.bml +16 -21
  55. package/blocks/org/blockml/bml/bom/documentation/DesignDecisions.bml +25 -29
  56. package/blocks/org/blockml/bml/bom/documentation/InstanceIdRules.bml +18 -22
  57. package/blocks/org/blockml/bml/bom/documentation/Introduction.bml +16 -21
  58. package/blocks/org/blockml/bml/bom/documentation/LayerSeparation.bml +17 -22
  59. package/blocks/org/blockml/bml/bom/documentation/MemberValueSemantics.bml +17 -22
  60. package/blocks/org/blockml/bml/bom/documentation/PackageOwnership.bml +24 -28
  61. package/blocks/org/blockml/bml/bom/documentation/PublicApi.bml +24 -27
  62. package/blocks/org/blockml/bml/bom/documentation/RelatedDiagnostics.bml +15 -19
  63. package/blocks/org/blockml/bml/bom/documentation/ScopeExclusions.bml +16 -20
  64. package/blocks/org/blockml/bml/bom/documentation/SubBlockAndEmbeddedBlocks.bml +17 -21
  65. package/blocks/org/blockml/bml/bom/documentation/TypeExpressionsOverview.bml +17 -22
  66. package/blocks/org/blockml/bml/bom/documentation/ValidationResponsibilities.bml +16 -21
  67. package/blocks/org/blockml/bml/bom/documentation/VersionRules.bml +16 -20
  68. package/blocks/org/blockml/bml/bom/documentation/XmlComments.bml +17 -21
  69. package/blocks/org/blockml/bml/bom/member/AggregationDefinition.bml +34 -25
  70. package/blocks/org/blockml/bml/bom/member/AssociationDefinition.bml +22 -21
  71. package/blocks/org/blockml/bml/bom/member/CapabilityDefinition.bml +37 -26
  72. package/blocks/org/blockml/bml/bom/member/ConstrainableDefinition.bml +16 -19
  73. package/blocks/org/blockml/bml/bom/member/EmbeddedExpression.bml +22 -21
  74. package/blocks/org/blockml/bml/bom/member/ImplementationBlock.bml +28 -23
  75. package/blocks/org/blockml/bml/bom/member/MemberDefinition.bml +16 -19
  76. package/blocks/org/blockml/bml/bom/member/MemberDefinitionBase.bml +79 -40
  77. package/blocks/org/blockml/bml/bom/member/PropertyDefinition.bml +37 -26
  78. package/blocks/org/blockml/bml/bom/member/PropertyValueEntry.bml +18 -21
  79. package/blocks/org/blockml/bml/bom/type/AnonymousStructType.bml +19 -20
  80. package/blocks/org/blockml/bml/bom/type/GenericParameterReference.bml +19 -20
  81. package/blocks/org/blockml/bml/bom/type/GroupedTypeExpression.bml +22 -21
  82. package/blocks/org/blockml/bml/bom/type/InstanceConfiguration.bml +19 -20
  83. package/blocks/org/blockml/bml/bom/type/Multiplicity.bml +19 -20
  84. package/blocks/org/blockml/bml/bom/type/NamedTypeReference.bml +28 -23
  85. package/blocks/org/blockml/bml/bom/type/SelfTypeReference.bml +16 -19
  86. package/blocks/org/blockml/bml/bom/type/StructField.bml +19 -20
  87. package/blocks/org/blockml/bml/bom/type/TypeDescriptor.bml +14 -19
  88. package/blocks/org/blockml/bml/bom/type/TypeExpression.bml +16 -19
  89. package/blocks/org/blockml/bml/bom/type/UnionTypeExpression.bml +19 -20
  90. package/blocks/org/blockml/bml/bom/value/Address.bml +31 -24
  91. package/blocks/org/blockml/bml/bom/value/AddressValue.bml +19 -20
  92. package/blocks/org/blockml/bml/bom/value/ExpressionValue.bml +25 -22
  93. package/blocks/org/blockml/bml/bom/value/InterpolatedTextValue.bml +26 -22
  94. package/blocks/org/blockml/bml/bom/value/LiteralValue.bml +25 -22
  95. package/blocks/org/blockml/bml/bom/value/MemberValue.bml +16 -19
  96. package/dist/types/block-definition.d.ts +10 -0
  97. package/dist/types/block-definition.d.ts.map +1 -1
  98. package/dist/types/common.d.ts +6 -0
  99. package/dist/types/common.d.ts.map +1 -1
  100. package/package.json +2 -2
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Documentation — PackageOwnership
3
- FQN: org.blockml.bml.bom.documentation.PackageOwnership
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Documentation — PackageOwnership
2
+ FQN: org.blockml.bml.bom.documentation.PackageOwnership-->
3
+ <bomdocumentation:PackageOwnership xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -24,34 +18,36 @@
24
18
  xmlns:type="org.blockml.bml.type"
25
19
  xmlns:doc="org.blockml.bml.documentation">
26
20
 
27
- <name>PackageOwnership</name>
28
- <type>bomdocumentation:PackageOwnership</type>
29
- <baseType>core:Documentation</baseType>
30
- <is>Toolchain package responsibilities for the Urmodell</is>
31
-
32
- <documentation>@blockml/bom — all Urmodell interfaces, ParseResult/SerializeResult/ValidateResult (B26 + Stage 2),
21
+ <baseType>
22
+ core:Documentation
23
+ </baseType>
24
+ <is>
25
+ Toolchain package responsibilities for the Urmodell
26
+ </is>
27
+ <documentation>
28
+ @blockml/bom — all Urmodell interfaces, ParseResult/SerializeResult/ValidateResult (B26 + Stage 2),
33
29
  ValidateOptions, TypeRegistryReader, Diagnostic (compiler result type), bomEquals/stripProvenance (B20).
34
-
30
+
35
31
  @blockml/builder — BomBuilder writable session; seal() → BomDocument.
36
-
32
+
37
33
  @blockml/framework — TypeRegistry, forkBom, resolveEffectiveMembers, validateTypes, parseExpression.
38
34
  Utilities never mutate Urmodell.
39
-
35
+
40
36
  @blockml/core — BlockML language BML corpus (org.blockml.bml.*); npm SSOT in node_modules.
41
-
37
+
42
38
  @blockml/parser — BML → BomDocument mapper; single file per invocation; parse() → ParseResult.
43
39
  Does not own BOM interfaces or expand directives.
44
-
40
+
45
41
  @blockml/serializer — BomDocument → canonical BML XML; serialize() → SerializeResult.
46
-
42
+
47
43
  @blockml/validator — checks on BomDocument using framework utilities.
48
-
44
+
49
45
  @blockml/cli — TypeRegistry bootstrap, validateTypes/validateConstraints, compile pipeline.
50
-
46
+
51
47
  @blockml/lsp (V2) — reuses parser, validator, serializer; no parallel IDE AST.
52
-
48
+
53
49
  @blockml/compiler — Target Registry facade.
54
-
55
- @machineblocks/core — domain BML; extends TypeRegistry bootstrap.</documentation>
56
-
57
- </block>
50
+
51
+ @machineblocks/core — domain BML; extends TypeRegistry bootstrap.
52
+ </documentation>
53
+ </bomdocumentation:PackageOwnership>
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Documentation — PublicApi
3
- FQN: org.blockml.bml.bom.documentation.PublicApi
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Documentation — PublicApi
2
+ FQN: org.blockml.bml.bom.documentation.PublicApi-->
3
+ <bomdocumentation:PublicApi xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -24,37 +18,40 @@
24
18
  xmlns:type="org.blockml.bml.type"
25
19
  xmlns:doc="org.blockml.bml.documentation">
26
20
 
27
- <name>PublicApi</name>
28
- <type>bomdocumentation:PublicApi</type>
29
- <baseType>core:Documentation</baseType>
30
- <is>Shared parse/serialize/validate results (B26 + Stage 2)</is>
31
-
32
- <documentation><![CDATA[ParseResult: document (BomDocument | null), diagnostics[], success (false if any error).
33
-
21
+ <baseType>
22
+ core:Documentation
23
+ </baseType>
24
+ <is>
25
+ Shared parse/serialize/validate results (B26 + Stage 2)
26
+ </is>
27
+ <documentation>
28
+ <![CDATA[
29
+ ParseResult: document (BomDocument | null), diagnostics[], success (false if any error).
30
+
34
31
  SerializeResult: text (string | null), diagnostics[], success.
35
-
32
+
36
33
  ValidateResult: optional pragmaticModel (forked BomDocument), diagnostics[], success.
37
-
34
+
38
35
  ParseOptions: filePath (default "<memory>"), continueOnError (default true),
39
36
  optional parseValue host hook (injected after TypeRegistry bootstrap).
40
-
37
+
41
38
  SerializeOptions: indent (default 2; 0=compact B13), xmlDeclaration (default false B17/B24).
42
-
39
+
43
40
  ValidateOptions: typeRegistry (TypeRegistryReader), bootstrapPaths, libraryPaths, continueOnError (default true).
44
-
41
+
45
42
  TypeRegistryReader: minimal get/has surface for ValidateOptions — implemented by @blockml/framework.
46
-
43
+
47
44
  bomEquals(a, b): structural equality modulo provenance (B20).
48
45
  stripProvenance(node): deep-clone omitting sourceLocation, endLine, endColumn, provenance source.
49
46
  Drops SourceLocation-shaped fields such as typeSource/baseTypeSource.
50
47
  Preserves ImplementationBlock.source (code body).
51
-
52
- Sync only. No throw on recoverable diagnostics. Diagnostic distinct from org.blockml.bml.core.Diagnostic.]]></documentation>
53
-
48
+
49
+ Sync only. No throw on recoverable diagnostics. Diagnostic distinct from org.blockml.bml.core.Diagnostic.
50
+ ]]>
51
+ </documentation>
54
52
  <references>
55
53
  <see type="bomapi:ParseResult" relation="Defines" />
56
54
  <see type="bomapi:ValidateResult" relation="Defines" />
57
55
  <see type="bomcap:BomEquals" relation="Defines" />
58
56
  </references>
59
-
60
- </block>
57
+ </bomdocumentation:PublicApi>
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Documentation — RelatedDiagnostics
3
- FQN: org.blockml.bml.bom.documentation.RelatedDiagnostics
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Documentation — RelatedDiagnostics
2
+ FQN: org.blockml.bml.bom.documentation.RelatedDiagnostics-->
3
+ <bomdocumentation:RelatedDiagnostics xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -24,12 +18,14 @@
24
18
  xmlns:type="org.blockml.bml.type"
25
19
  xmlns:doc="org.blockml.bml.documentation">
26
20
 
27
- <name>RelatedDiagnostics</name>
28
- <type>bomdocumentation:RelatedDiagnostics</type>
29
- <baseType>core:Documentation</baseType>
30
- <is>BOM-relevant diagnostic codes</is>
31
-
32
- <documentation>BML_MISSING_BASE_TYPE, BML_MISSING_BLOCK_TYPE, BML_BLOCK_NAME_TYPE_MISMATCH,
21
+ <baseType>
22
+ core:Documentation
23
+ </baseType>
24
+ <is>
25
+ BOM-relevant diagnostic codes
26
+ </is>
27
+ <documentation>
28
+ BML_MISSING_BASE_TYPE, BML_MISSING_BLOCK_TYPE, BML_BLOCK_NAME_TYPE_MISMATCH,
33
29
  BML_MISSING_SUBBLOCK_NAME, BML_SUBBLOCK_TYPE_MISMATCH, BML_EMBEDDED_BLOCKS_ON_SUBBLOCK,
34
30
  BML_NESTED_EMBEDDED_BLOCKS, BML_DUPLICATE_EMBEDDED_BLOCK, BML_DEFINITION_TYPE_MISMATCH,
35
31
  BML_MISSING_EMBEDDED_BLOCK_TYPE, BML_UNQUALIFIED_EMBEDDED_BLOCK_TYPE, BML_AMBIGUOUS_TYPE,
@@ -45,7 +41,7 @@
45
41
  BML_ABSTRACT_MEMBER_NOT_IMPLEMENTED, BML_READONLY_MEMBER_WRITE, BML_STANDALONE_COMPOSITION,
46
42
  BML_NESTED_COMPOSITION, BML_NAMESPACE_*, BML_XML_*, BML_PRESET_CYCLE, BML_GENERIC_*, BML_TYPE_BOUND_NOT_SATISFIED,
47
43
  BML_UNKNOWN_CONTRACT, BML_CONTRACT_*, BML_EXPR_UNKNOWN_PROPERTY.
48
-
49
- Full catalog: org.blockml.bml.diagnostic.* (@blockml/core) and 06_compiler.md.</documentation>
50
-
51
- </block>
44
+
45
+ Full catalog: org.blockml.bml.diagnostic.* (@blockml/core) and 06_compiler.md.
46
+ </documentation>
47
+ </bomdocumentation:RelatedDiagnostics>
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Documentation — ScopeExclusions
3
- FQN: org.blockml.bml.bom.documentation.ScopeExclusions
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Documentation — ScopeExclusions
2
+ FQN: org.blockml.bml.bom.documentation.ScopeExclusions-->
3
+ <bomdocumentation:ScopeExclusions xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -24,13 +18,15 @@
24
18
  xmlns:type="org.blockml.bml.type"
25
19
  xmlns:doc="org.blockml.bml.documentation">
26
20
 
27
- <name>ScopeExclusions</name>
28
- <type>bomdocumentation:ScopeExclusions</type>
29
- <baseType>core:Documentation</baseType>
30
- <is>Topics intentionally outside @blockml/bom</is>
31
-
32
- <documentation>Not specified in this library:
33
-
21
+ <baseType>
22
+ core:Documentation
23
+ </baseType>
24
+ <is>
25
+ Topics intentionally outside @blockml/bom
26
+ </is>
27
+ <documentation>
28
+ Not specified in this library:
29
+
34
30
  Expression AST node union → 10_expression_language.md
35
31
  Embedded expressions in implementations → 10_expression_language.md
36
32
  BML → BOM mapping algorithm → @blockml/parser, 13_bml_to_bom_mapping.md
@@ -41,7 +37,7 @@
41
37
  MBOM → SCAD → 04_types.md, 05_scad_renderer.md
42
38
  ManagedObject / synthetic accessors → 08_managed_object.md
43
39
  Built-in #math / #strings → @blockml/core services
44
-
45
- Also outside Urmodell: EffectiveMemberSet, TypeRegistry (core utilities).</documentation>
46
-
47
- </block>
40
+
41
+ Also outside Urmodell: EffectiveMemberSet, TypeRegistry (core utilities).
42
+ </documentation>
43
+ </bomdocumentation:ScopeExclusions>
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Documentation — SubBlockAndEmbeddedBlocks
3
- FQN: org.blockml.bml.bom.documentation.SubBlockAndEmbeddedBlocks
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Documentation — SubBlockAndEmbeddedBlocks
2
+ FQN: org.blockml.bml.bom.documentation.SubBlockAndEmbeddedBlocks-->
3
+ <bomdocumentation:SubBlockAndEmbeddedBlocks xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -24,22 +18,24 @@
24
18
  xmlns:type="org.blockml.bml.type"
25
19
  xmlns:doc="org.blockml.bml.documentation">
26
20
 
27
- <name>SubBlockAndEmbeddedBlocks</name>
28
- <type>bomdocumentation:SubBlockAndEmbeddedBlocks</type>
29
- <baseType>core:Documentation</baseType>
30
- <is>Sub-Block FQN derivation and inline library embeds</is>
31
-
32
- <documentation>Sub-Blocks omit type in BML by convention. FQN derived recursively:
21
+ <baseType>
22
+ core:Documentation
23
+ </baseType>
24
+ <is>
25
+ Sub-Block FQN derivation and inline library embeds
26
+ </is>
27
+ <documentation>
28
+ Sub-Blocks omit type in BML by convention. FQN derived recursively:
33
29
  parent.type + "." + name (BML_SUBBLOCK_TYPE_MISMATCH if explicit type differs).
34
-
30
+
35
31
  Sub-Blocks share one BomDocument; may nest arbitrarily. Must not declare embeddedBlocks
36
32
  (BML_EMBEDDED_BLOCKS_ON_SUBBLOCK).
37
-
33
+
38
34
  embeddedBlocks: Inline Library on document root only. Each entry is a virtual .bml file.
39
35
  FQN = fully qualified type element value — not nested under root. No nested embeds
40
36
  (BML_NESTED_EMBEDDED_BLOCKS). Duplicate FQNs → BML_DUPLICATE_EMBEDDED_BLOCK.
41
37
  Shadows library definitions within BomDocument; invisible externally.
42
-
43
- Composition references to embeds must use fully qualified block type.</documentation>
44
-
45
- </block>
38
+
39
+ Composition references to embeds must use fully qualified block type.
40
+ </documentation>
41
+ </bomdocumentation:SubBlockAndEmbeddedBlocks>
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Documentation — TypeExpressionsOverview
3
- FQN: org.blockml.bml.bom.documentation.TypeExpressionsOverview
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Documentation — TypeExpressionsOverview
2
+ FQN: org.blockml.bml.bom.documentation.TypeExpressionsOverview-->
3
+ <bomdocumentation:TypeExpressionsOverview xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -24,25 +18,26 @@
24
18
  xmlns:type="org.blockml.bml.type"
25
19
  xmlns:doc="org.blockml.bml.documentation">
26
20
 
27
- <name>TypeExpressionsOverview</name>
28
- <type>bomdocumentation:TypeExpressionsOverview</type>
29
- <baseType>core:Documentation</baseType>
30
- <is>Parse-time type expression model</is>
31
-
32
- <documentation>TypeExpression (alias TypeDescriptor in V1) — structured parse-time AST, not a ValueType.
21
+ <baseType>
22
+ core:Documentation
23
+ </baseType>
24
+ <is>
25
+ Parse-time type expression model
26
+ </is>
27
+ <documentation>
28
+ TypeExpression (alias TypeDescriptor in V1) — structured parse-time AST, not a ValueType.
33
29
  Used for Capability inputType/outputType and Property type attributes.
34
-
30
+
35
31
  Union variants: named, union, grouped, genericParam, self, anonymousStruct.
36
32
  grouped wraps a TypeExpression for nested multiplicity: (T[])[] or (A | B)[].
37
-
33
+
38
34
  Anonymous struct = shorthand for inline class with ordered fields (FunctionMapping positional order).
39
35
  Single primitive = NamedTypeReference directly — not wrapped in one-field struct.
40
-
36
+
41
37
  Union variant discrimination and AST are validateTypes()/parseExpression() utility results —
42
- not stored in Canonical BOM.</documentation>
43
-
38
+ not stored in Canonical BOM.
39
+ </documentation>
44
40
  <references>
45
41
  <see type="bomtype:TypeExpression" relation="Defines" />
46
42
  </references>
47
-
48
- </block>
43
+ </bomdocumentation:TypeExpressionsOverview>
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Documentation — ValidationResponsibilities
3
- FQN: org.blockml.bml.bom.documentation.ValidationResponsibilities
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Documentation — ValidationResponsibilities
2
+ FQN: org.blockml.bml.bom.documentation.ValidationResponsibilities-->
3
+ <bomdocumentation:ValidationResponsibilities xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -24,13 +18,15 @@
24
18
  xmlns:type="org.blockml.bml.type"
25
19
  xmlns:doc="org.blockml.bml.documentation">
26
20
 
27
- <name>ValidationResponsibilities</name>
28
- <type>bomdocumentation:ValidationResponsibilities</type>
29
- <baseType>core:Documentation</baseType>
30
- <is>Full validator checklist on BomDocument</is>
31
-
32
- <documentation>Parser produces BomDocument. Validator (@blockml/validator + @blockml/framework) checks:
33
-
21
+ <baseType>
22
+ core:Documentation
23
+ </baseType>
24
+ <is>
25
+ Full validator checklist on BomDocument
26
+ </is>
27
+ <documentation>
28
+ Parser produces BomDocument. Validator (@blockml/validator + @blockml/framework) checks:
29
+
34
30
  Member namespace uniqueness; baseType in TypeRegistry; property values inline deep copies;
35
31
  resolveEffectiveMembers for expression refs; effective version (BML_MISSING_VERSION);
36
32
  library block.version >= library.version; bml:version asserts (BML_UNKNOWN_VERSION);
@@ -41,11 +37,10 @@
41
37
  contracts merge order; validateConstraints after resolveEffectiveMembers;
42
38
  readOnly enforcement (BML_READONLY_MEMBER_WRITE); library blocks/deps resolve;
43
39
  no outer library re-export from inner library (BML_LIBRARY_NESTING_VIOLATION).
44
-
45
- Validator does NOT expand directives, assign auto-IDs, or interpret aggregations.</documentation>
46
-
40
+
41
+ Validator does NOT expand directives, assign auto-IDs, or interpret aggregations.
42
+ </documentation>
47
43
  <references>
48
44
  <see type="bomdocumentation:RelatedDiagnostics" relation="SeeAlso" />
49
45
  </references>
50
-
51
- </block>
46
+ </bomdocumentation:ValidationResponsibilities>
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Documentation — VersionRules
3
- FQN: org.blockml.bml.bom.documentation.VersionRules
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Documentation — VersionRules
2
+ FQN: org.blockml.bml.bom.documentation.VersionRules-->
3
+ <bomdocumentation:VersionRules xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -24,18 +18,20 @@
24
18
  xmlns:type="org.blockml.bml.type"
25
19
  xmlns:doc="org.blockml.bml.documentation">
26
20
 
27
- <name>VersionRules</name>
28
- <type>bomdocumentation:VersionRules</type>
29
- <baseType>core:Documentation</baseType>
30
- <is>Effective block version and instance version asserts</is>
31
-
32
- <documentation>Definition effectiveBlockVersion = own version | library.version (if exported) | BML_MISSING_VERSION.
21
+ <baseType>
22
+ core:Documentation
23
+ </baseType>
24
+ <is>
25
+ Effective block version and instance version asserts
26
+ </is>
27
+ <documentation>
28
+ Definition effectiveBlockVersion = own version | library.version (if exported) | BML_MISSING_VERSION.
33
29
  Block in library: version >= library.version when both declared.
34
-
30
+
35
31
  Same-document Sub-Block refs: bml:version not allowed as resolution hint.
36
32
  External refs: bml:version omitted → registry context; present → exact assert (BML_UNKNOWN_VERSION).
37
33
  Library catalog sugar (readMe, bootstrap, dependencies, blocks): same bml:version rules.
38
-
39
- Framework convention: version only on Library.bml for org.blockml.bml.* / com.machineblocks.bml.*</documentation>
40
-
41
- </block>
34
+
35
+ Framework convention: version only on Library.bml for org.blockml.bml.* / com.machineblocks.bml.*
36
+ </documentation>
37
+ </bomdocumentation:VersionRules>
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Documentation — XmlComments
3
- FQN: org.blockml.bml.bom.documentation.XmlComments
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Documentation — XmlComments
2
+ FQN: org.blockml.bml.bom.documentation.XmlComments-->
3
+ <bomdocumentation:XmlComments xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -24,24 +18,26 @@
24
18
  xmlns:type="org.blockml.bml.type"
25
19
  xmlns:doc="org.blockml.bml.documentation">
26
20
 
27
- <name>XmlComments</name>
28
- <type>bomdocumentation:XmlComments</type>
29
- <baseType>core:Documentation</baseType>
30
- <is>XML comment binding rules (B11, B22)</is>
31
-
32
- <documentation>Comments are part of maximum authored surface — parser binds, never drops.
33
-
21
+ <baseType>
22
+ core:Documentation
23
+ </baseType>
24
+ <is>
25
+ XML comment binding rules (B11, B22)
26
+ </is>
27
+ <documentation>
28
+ Comments are part of maximum authored surface — parser binds, never drops.
29
+
34
30
  1. Comment(s) before element E → E.xmlTrivia.leadingComments[] (document order)
35
31
  2. Comment(s) after E end tag before next sibling → trailingComments[] (incl. same-line)
36
32
  3. File-header before root block → root BlockDefinition.xmlTrivia.leadingComments
37
33
  4. Before member-section container → memberSectionTrivia[section]
38
34
  5. Before metadata child (name, final, …) → metadataTrivia[localName]
39
35
  6. Dangling comment → trailingComments of previous sibling or root
40
-
36
+
41
37
  NOT preserved (Phase A): processing instructions; formatting whitespace (B13); attribute order.
42
38
  DO preserve: comments (B11); dual placement (D9); CDATA form (D8).
43
-
39
+
44
40
  Serializer: re-emit leading before element; trailing on next line after end tag + blank line (B22).
45
- Sibling order follows B12. Layout whitespace not part of BOM equality (B10/B13).</documentation>
46
-
47
- </block>
41
+ Sibling order follows B12. Layout whitespace not part of BOM equality (B10/B13).
42
+ </documentation>
43
+ </bomdocumentation:XmlComments>
@@ -1,12 +1,6 @@
1
- <!--
2
- BOM Urmodell — AggregationDefinition
3
- FQN: org.blockml.bml.bom.member.AggregationDefinition
4
- -->
5
- <block
6
- xmlns="http://blockml.org/bml"
7
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
8
- xsi:schemaLocation="http://blockml.org/bml https://blockml.org/schemas/bml.xsd
9
- "
1
+ <!--BOM Urmodell — AggregationDefinition
2
+ FQN: org.blockml.bml.bom.member.AggregationDefinition-->
3
+ <bommember:AggregationDefinition xmlns="http://blockml.org/bml"
10
4
  xmlns:blockml="org.blockml.bml"
11
5
  xmlns:bom="org.blockml.bml.bom"
12
6
  xmlns:bomapi="org.blockml.bml.bom.api"
@@ -23,36 +17,51 @@
23
17
  xmlns:def="org.blockml.bml.definition"
24
18
  xmlns:type="org.blockml.bml.type">
25
19
 
26
- <name>AggregationDefinition</name>
27
- <type>bommember:AggregationDefinition</type>
28
- <baseType>bommember:MemberDefinitionBase</baseType>
29
- <is>Aggregation member definition (kind: aggregation)</is>
30
-
31
- <documentation>Aggregation member definition (kind: aggregation)</documentation>
32
-
20
+ <baseType>
21
+ bommember:MemberDefinitionBase
22
+ </baseType>
23
+ <is>
24
+ Aggregation member definition (kind: aggregation)
25
+ </is>
26
+ <documentation>
27
+ Aggregation member definition (kind: aggregation)
28
+ </documentation>
33
29
  <properties>
34
30
  <kind type="type:Text">
35
- <documentation>kind (required). TS type: type:Text.</documentation>
31
+ <documentation>
32
+ kind (required). TS type: type:Text.
33
+ </documentation>
36
34
  <value>aggregation</value>
37
35
  </kind>
38
36
  <type type="bomtype:TypeExpression">
39
- <documentation>type (optional). TS type: bomtype:TypeExpression.</documentation>
37
+ <documentation>
38
+ type (optional). TS type: bomtype:TypeExpression.
39
+ </documentation>
40
40
  </type>
41
41
  <cardinality type="type:Text">
42
- <documentation>"0..1" | "0..n" | "1..1" | "1..n". (optional)</documentation>
42
+ <documentation>
43
+ "0..1" | "0..n" | "1..1" | "1..n". (optional)
44
+ </documentation>
43
45
  </cardinality>
44
46
  <default type="type:Boolean">
45
- <documentation>default (optional). TS type: type:Boolean.</documentation>
47
+ <documentation>
48
+ default (optional). TS type: type:Boolean.
49
+ </documentation>
46
50
  </default>
47
51
  <composition type="bomcomp:CompositionTemplate">
48
- <documentation>composition (optional). TS type: bomcomp:CompositionTemplate.</documentation>
52
+ <documentation>
53
+ composition (optional). TS type: bomcomp:CompositionTemplate.
54
+ </documentation>
49
55
  </composition>
50
56
  <groups type="bomblock:TypeReferenceEntityInstance[]">
51
- <documentation>groups (optional). TS type: bomblock:TypeReferenceEntityInstance[].</documentation>
57
+ <documentation>
58
+ groups (optional). TS type: bomblock:TypeReferenceEntityInstance[].
59
+ </documentation>
52
60
  </groups>
53
61
  <authoredInAggregationsSection type="type:Boolean">
54
- <documentation>authoredInAggregationsSection (optional). TS type: type:Boolean.</documentation>
62
+ <documentation>
63
+ authoredInAggregationsSection (optional). TS type: type:Boolean.
64
+ </documentation>
55
65
  </authoredInAggregationsSection>
56
66
  </properties>
57
-
58
- </block>
67
+ </bommember:AggregationDefinition>