@blockml/bom 0.9.4 → 0.9.6
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.
- package/blocks/org/blockml/bml/bom/Library.bml +20 -28
- package/blocks/org/blockml/bml/bom/README.bml +14 -21
- package/blocks/org/blockml/bml/bom/UrmodellType.bml +16 -20
- package/blocks/org/blockml/bml/bom/api/ParseOptions.bml +19 -20
- package/blocks/org/blockml/bml/bom/api/ParseResult.bml +22 -21
- package/blocks/org/blockml/bml/bom/api/SerializeOptions.bml +19 -20
- package/blocks/org/blockml/bml/bom/api/SerializeResult.bml +22 -21
- package/blocks/org/blockml/bml/bom/api/TypeRegistryReader.bml +13 -17
- package/blocks/org/blockml/bml/bom/api/ValidateOptions.bml +25 -22
- package/blocks/org/blockml/bml/bom/api/ValidateResult.bml +22 -21
- package/blocks/org/blockml/bml/bom/block/AliasEntry.bml +28 -23
- package/blocks/org/blockml/bml/bom/block/BlockDefinition.bml +142 -57
- package/blocks/org/blockml/bml/bom/block/ChangelogEntry.bml +25 -22
- package/blocks/org/blockml/bml/bom/block/DocumentationExample.bml +34 -25
- package/blocks/org/blockml/bml/bom/block/DocumentationProseEntry.bml +28 -23
- package/blocks/org/blockml/bml/bom/block/DocumentationReference.bml +52 -31
- package/blocks/org/blockml/bml/bom/block/GenericType.bml +22 -21
- package/blocks/org/blockml/bml/bom/block/KeywordEntry.bml +28 -23
- package/blocks/org/blockml/bml/bom/block/TypeReferenceEntityInstance.bml +22 -21
- package/blocks/org/blockml/bml/bom/capability/BomEquals.bml +22 -21
- package/blocks/org/blockml/bml/bom/capability/StripProvenance.bml +19 -20
- package/blocks/org/blockml/bml/bom/common/CharacterDataForm.bml +16 -19
- package/blocks/org/blockml/bml/bom/common/Diagnostic.bml +25 -22
- package/blocks/org/blockml/bml/bom/common/DiagnosticSeverity.bml +16 -19
- package/blocks/org/blockml/bml/bom/common/EmptyElementForm.bml +16 -19
- package/blocks/org/blockml/bml/bom/common/HostValue.bml +13 -17
- package/blocks/org/blockml/bml/bom/common/MemberSectionName.bml +16 -19
- package/blocks/org/blockml/bml/bom/common/MetadataElementTrivia.bml +16 -19
- package/blocks/org/blockml/bml/bom/common/SourceInfo.bml +35 -23
- package/blocks/org/blockml/bml/bom/common/SourceLocation.bml +28 -23
- package/blocks/org/blockml/bml/bom/common/UnknownXmlNode.bml +28 -23
- package/blocks/org/blockml/bml/bom/common/XmlNodeKind.bml +16 -19
- package/blocks/org/blockml/bml/bom/common/XmlRenderingBlock.bml +16 -19
- package/blocks/org/blockml/bml/bom/common/XmlRenderingMember.bml +25 -22
- package/blocks/org/blockml/bml/bom/common/XmlTrivia.bml +19 -20
- package/blocks/org/blockml/bml/bom/composition/BlockInstance.bml +55 -32
- package/blocks/org/blockml/bml/bom/composition/BlockInstanceNode.bml +25 -22
- package/blocks/org/blockml/bml/bom/composition/CompositionNode.bml +16 -19
- package/blocks/org/blockml/bml/bom/composition/CompositionTemplate.bml +28 -23
- package/blocks/org/blockml/bml/bom/composition/DirectiveAttribute.bml +16 -19
- package/blocks/org/blockml/bml/bom/composition/EachDirective.bml +25 -22
- package/blocks/org/blockml/bml/bom/composition/GenericsBinding.bml +26 -23
- package/blocks/org/blockml/bml/bom/composition/IfDirective.bml +19 -20
- package/blocks/org/blockml/bml/bom/composition/InstanceAggregationComposition.bml +22 -21
- package/blocks/org/blockml/bml/bom/composition/UnlessDirective.bml +19 -20
- package/blocks/org/blockml/bml/bom/composition/VirtualContainerNode.bml +28 -23
- package/blocks/org/blockml/bml/bom/composition/WithBinding.bml +19 -20
- package/blocks/org/blockml/bml/bom/composition/WithDirective.bml +19 -20
- package/blocks/org/blockml/bml/bom/document/BomDocument.bml +25 -23
- package/blocks/org/blockml/bml/bom/documentation/AbstractionPrinciple.bml +16 -21
- package/blocks/org/blockml/bml/bom/documentation/ArchitectureOverview.bml +16 -21
- package/blocks/org/blockml/bml/bom/documentation/AuthoredSurfaceTable.bml +14 -17
- package/blocks/org/blockml/bml/bom/documentation/CalibratorExample.bml +19 -24
- package/blocks/org/blockml/bml/bom/documentation/CompositionDirectives.bml +16 -21
- package/blocks/org/blockml/bml/bom/documentation/DesignDecisions.bml +25 -29
- package/blocks/org/blockml/bml/bom/documentation/InstanceIdRules.bml +18 -22
- package/blocks/org/blockml/bml/bom/documentation/Introduction.bml +16 -21
- package/blocks/org/blockml/bml/bom/documentation/LayerSeparation.bml +17 -22
- package/blocks/org/blockml/bml/bom/documentation/MemberValueSemantics.bml +20 -22
- package/blocks/org/blockml/bml/bom/documentation/PackageOwnership.bml +24 -28
- package/blocks/org/blockml/bml/bom/documentation/PublicApi.bml +24 -27
- package/blocks/org/blockml/bml/bom/documentation/RelatedDiagnostics.bml +15 -19
- package/blocks/org/blockml/bml/bom/documentation/ScopeExclusions.bml +16 -20
- package/blocks/org/blockml/bml/bom/documentation/SubBlockAndEmbeddedBlocks.bml +17 -21
- package/blocks/org/blockml/bml/bom/documentation/TypeExpressionsOverview.bml +17 -22
- package/blocks/org/blockml/bml/bom/documentation/ValidationResponsibilities.bml +16 -21
- package/blocks/org/blockml/bml/bom/documentation/VersionRules.bml +16 -20
- package/blocks/org/blockml/bml/bom/documentation/XmlComments.bml +17 -21
- package/blocks/org/blockml/bml/bom/member/AggregationDefinition.bml +34 -25
- package/blocks/org/blockml/bml/bom/member/AssociationDefinition.bml +22 -21
- package/blocks/org/blockml/bml/bom/member/CapabilityDefinition.bml +37 -26
- package/blocks/org/blockml/bml/bom/member/ConstrainableDefinition.bml +16 -19
- package/blocks/org/blockml/bml/bom/member/EmbeddedExpression.bml +22 -21
- package/blocks/org/blockml/bml/bom/member/ImplementationBlock.bml +28 -23
- package/blocks/org/blockml/bml/bom/member/MemberDefinition.bml +16 -19
- package/blocks/org/blockml/bml/bom/member/MemberDefinitionBase.bml +79 -40
- package/blocks/org/blockml/bml/bom/member/PropertyDefinition.bml +37 -26
- package/blocks/org/blockml/bml/bom/member/PropertyValueEntry.bml +18 -21
- package/blocks/org/blockml/bml/bom/type/AnonymousStructType.bml +19 -20
- package/blocks/org/blockml/bml/bom/type/GenericParameterReference.bml +19 -20
- package/blocks/org/blockml/bml/bom/type/GroupedTypeExpression.bml +22 -21
- package/blocks/org/blockml/bml/bom/type/InstanceConfiguration.bml +19 -20
- package/blocks/org/blockml/bml/bom/type/Multiplicity.bml +19 -20
- package/blocks/org/blockml/bml/bom/type/NamedTypeReference.bml +28 -23
- package/blocks/org/blockml/bml/bom/type/SelfTypeReference.bml +16 -19
- package/blocks/org/blockml/bml/bom/type/StructField.bml +19 -20
- package/blocks/org/blockml/bml/bom/type/TypeDescriptor.bml +14 -19
- package/blocks/org/blockml/bml/bom/type/TypeExpression.bml +16 -19
- package/blocks/org/blockml/bml/bom/type/UnionTypeExpression.bml +19 -20
- package/blocks/org/blockml/bml/bom/value/Address.bml +31 -24
- package/blocks/org/blockml/bml/bom/value/AddressValue.bml +19 -20
- package/blocks/org/blockml/bml/bom/value/ExpressionValue.bml +25 -22
- package/blocks/org/blockml/bml/bom/value/InterpolatedTextValue.bml +26 -22
- package/blocks/org/blockml/bml/bom/value/LiteralValue.bml +25 -22
- package/blocks/org/blockml/bml/bom/value/MemberValue.bml +16 -19
- package/dist/types/block-definition.d.ts +10 -0
- package/dist/types/block-definition.d.ts.map +1 -1
- package/dist/types/common.d.ts +6 -0
- package/dist/types/common.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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 — MemberValueSemantics
|
|
2
|
+
FQN: org.blockml.bml.bom.documentation.MemberValueSemantics-->
|
|
3
|
+
<bomdocumentation:MemberValueSemantics 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,26 +18,30 @@
|
|
|
24
18
|
xmlns:type="org.blockml.bml.type"
|
|
25
19
|
xmlns:doc="org.blockml.bml.documentation">
|
|
26
20
|
|
|
27
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
<baseType>
|
|
22
|
+
core:Documentation
|
|
23
|
+
</baseType>
|
|
24
|
+
<is>
|
|
25
|
+
Property value deep-copy rules
|
|
26
|
+
</is>
|
|
27
|
+
<documentation>
|
|
28
|
+
Property values are never linked — always deep copies on instances and definitions.
|
|
33
29
|
Cross-instance FQN::id references exist only on associations (basePresets, Step.part, …).
|
|
34
|
-
|
|
30
|
+
Collection payloads (type multiplicity) use a JSON-like ['a', 'b'] array in one
|
|
31
|
+
attribute or element, or repeated instance elements of the same member name.
|
|
32
|
+
Space-separated association tokens are not a value form.
|
|
33
|
+
|
|
35
34
|
EnumType tokens (Standard, FQN::id) are resolution keys — BOM stores id + typeFqn only.
|
|
36
35
|
Struct/primitive literals stay inline in authored form — not normalized at parse time.
|
|
37
|
-
|
|
36
|
+
|
|
38
37
|
LiteralValue: kind literal, opaque value, typeFqn, optional authoredPlacement (D9).
|
|
39
38
|
ExpressionValue: kind expression, raw ${} text only in BOM; AST via parseExpression().
|
|
40
39
|
InterpolatedTextValue: kind interpolated, full authored text with ${} holes; AST via parseInterpolatedText().
|
|
41
40
|
AddressValue: parsed org.blockml.bml.type.Address shape.
|
|
42
|
-
|
|
43
|
-
Preset/config merge copies into render-time view — never writes references back to BomDocument
|
|
44
|
-
|
|
41
|
+
|
|
42
|
+
Preset/config merge copies into render-time view — never writes references back to BomDocument.
|
|
43
|
+
</documentation>
|
|
45
44
|
<references>
|
|
46
45
|
<see type="bomvalue:MemberValue" relation="Defines" />
|
|
47
46
|
</references>
|
|
48
|
-
|
|
49
|
-
</block>
|
|
47
|
+
</bomdocumentation:MemberValueSemantics>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
56
|
-
|
|
57
|
-
</
|
|
50
|
+
|
|
51
|
+
@machineblocks/core — domain BML; extends TypeRegistry bootstrap.
|
|
52
|
+
</documentation>
|
|
53
|
+
</bomdocumentation:PackageOwnership>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
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.
|
|
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
|
-
|
|
3
|
-
|
|
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
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
50
|
-
|
|
51
|
-
</
|
|
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
|
-
|
|
3
|
-
|
|
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
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
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)
|
|
46
|
-
|
|
47
|
-
</
|
|
40
|
+
|
|
41
|
+
Also outside Urmodell: EffectiveMemberSet, TypeRegistry (core utilities).
|
|
42
|
+
</documentation>
|
|
43
|
+
</bomdocumentation:ScopeExclusions>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
44
|
-
|
|
45
|
-
</
|
|
38
|
+
|
|
39
|
+
Composition references to embeds must use fully qualified block type.
|
|
40
|
+
</documentation>
|
|
41
|
+
</bomdocumentation:SubBlockAndEmbeddedBlocks>
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
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
|
-
|
|
3
|
-
|
|
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
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
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
|
-
|
|
3
|
-
|
|
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
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
40
|
-
|
|
41
|
-
</
|
|
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
|
-
|
|
3
|
-
|
|
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
|
-
<
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<is>
|
|
31
|
-
|
|
32
|
-
|
|
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)
|
|
46
|
-
|
|
47
|
-
</
|
|
41
|
+
Sibling order follows B12. Layout whitespace not part of BOM equality (B10/B13).
|
|
42
|
+
</documentation>
|
|
43
|
+
</bomdocumentation:XmlComments>
|