@blockml/xsd-target 0.1.0

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 (63) hide show
  1. package/blocks/org/blockml/bml/target/xsd/Library.bml +94 -0
  2. package/blocks/org/blockml/bml/target/xsd/README.bml +56 -0
  3. package/blocks/org/blockml/bml/target/xsd/XsdType.bml +31 -0
  4. package/blocks/org/blockml/bml/target/xsd/api/CatalogEntry.bml +33 -0
  5. package/blocks/org/blockml/bml/target/xsd/api/XsdOptions.bml +38 -0
  6. package/blocks/org/blockml/bml/target/xsd/api/XsdRenderOutput.bml +34 -0
  7. package/blocks/org/blockml/bml/target/xsd/capability/CatalogRelativePath.bml +42 -0
  8. package/blocks/org/blockml/bml/target/xsd/capability/EmitBlockXsd.bml +43 -0
  9. package/blocks/org/blockml/bml/target/xsd/capability/EmitCatalogXml.bml +43 -0
  10. package/blocks/org/blockml/bml/target/xsd/capability/EmitServiceXsd.bml +43 -0
  11. package/blocks/org/blockml/bml/target/xsd/capability/EmitTypesXsd.bml +43 -0
  12. package/blocks/org/blockml/bml/target/xsd/capability/ExtraElementNames.bml +43 -0
  13. package/blocks/org/blockml/bml/target/xsd/capability/MemberPrefersElement.bml +43 -0
  14. package/blocks/org/blockml/bml/target/xsd/capability/Render.bml +47 -0
  15. package/blocks/org/blockml/bml/target/xsd/capability/ResolveOptions.bml +44 -0
  16. package/blocks/org/blockml/bml/target/xsd/capability/VocabularyElements.bml +42 -0
  17. package/blocks/org/blockml/bml/target/xsd/config/DefaultXsdOptions.bml +33 -0
  18. package/blocks/org/blockml/bml/target/xsd/config/XsdConstants.bml +42 -0
  19. package/blocks/org/blockml/bml/target/xsd/documentation/ArchitectureOverview.bml +45 -0
  20. package/blocks/org/blockml/bml/target/xsd/documentation/CatalogAndOutputLayout.bml +45 -0
  21. package/blocks/org/blockml/bml/target/xsd/documentation/DesignDecisions.bml +49 -0
  22. package/blocks/org/blockml/bml/target/xsd/documentation/Diagnostics.bml +38 -0
  23. package/blocks/org/blockml/bml/target/xsd/documentation/DomainVocabularyRules.bml +41 -0
  24. package/blocks/org/blockml/bml/target/xsd/documentation/Introduction.bml +50 -0
  25. package/blocks/org/blockml/bml/target/xsd/documentation/LayerSeparation.bml +42 -0
  26. package/blocks/org/blockml/bml/target/xsd/documentation/PackageOwnership.bml +43 -0
  27. package/blocks/org/blockml/bml/target/xsd/documentation/ParticleMappingRules.bml +49 -0
  28. package/blocks/org/blockml/bml/target/xsd/documentation/PublicApi.bml +45 -0
  29. package/blocks/org/blockml/bml/target/xsd/documentation/ScopeExclusions.bml +41 -0
  30. package/blocks/org/blockml/bml/target/xsd/documentation/V1Scope.bml +46 -0
  31. package/dist/constants.d.ts +6 -0
  32. package/dist/constants.d.ts.map +1 -0
  33. package/dist/constants.js +6 -0
  34. package/dist/constants.js.map +1 -0
  35. package/dist/emit-block-xsd.d.ts +3 -0
  36. package/dist/emit-block-xsd.d.ts.map +1 -0
  37. package/dist/emit-block-xsd.js +122 -0
  38. package/dist/emit-block-xsd.js.map +1 -0
  39. package/dist/emit-catalog-xml.d.ts +7 -0
  40. package/dist/emit-catalog-xml.d.ts.map +1 -0
  41. package/dist/emit-catalog-xml.js +15 -0
  42. package/dist/emit-catalog-xml.js.map +1 -0
  43. package/dist/emit-service-xsd.d.ts +3 -0
  44. package/dist/emit-service-xsd.d.ts.map +1 -0
  45. package/dist/emit-service-xsd.js +34 -0
  46. package/dist/emit-service-xsd.js.map +1 -0
  47. package/dist/emit-types-xsd.d.ts +3 -0
  48. package/dist/emit-types-xsd.d.ts.map +1 -0
  49. package/dist/emit-types-xsd.js +34 -0
  50. package/dist/emit-types-xsd.js.map +1 -0
  51. package/dist/index.d.ts +8 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +8 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/options.d.ts +9 -0
  56. package/dist/options.d.ts.map +1 -0
  57. package/dist/options.js +12 -0
  58. package/dist/options.js.map +1 -0
  59. package/dist/xsd-target.d.ts +17 -0
  60. package/dist/xsd-target.d.ts.map +1 -0
  61. package/dist/xsd-target.js +53 -0
  62. package/dist/xsd-target.js.map +1 -0
  63. package/package.json +42 -0
@@ -0,0 +1,44 @@
1
+ <!--
2
+ XSD Capability — ResolveOptions
3
+ FQN: org.blockml.bml.target.xsd.capability.ResolveOptions
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:core="org.blockml.bml.core"
15
+ xmlns:def="org.blockml.bml.definition"
16
+ xmlns:xsd="org.blockml.bml.target.xsd"
17
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
18
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
19
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
20
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>ResolveOptions</name>
24
+ <type>xsdcap:ResolveOptions</type>
25
+ <baseType>core:Capability</baseType>
26
+ <is>Merge opaque targetOptions into required XsdOptions</is>
27
+
28
+ <documentation>XSD15/XSD16: defaults includeNonExported=true, emitDomainSchemas=true. includeNonExported has no V1 emit effect.</documentation>
29
+
30
+ <references>
31
+ <see type="xsddocumentation:PublicApi" relation="SeeAlso" />
32
+ <see type="xsdconfig:DefaultXsdOptions" relation="SeeAlso" />
33
+ </references>
34
+
35
+ <properties>
36
+ <targetOptions type="type:Text">
37
+ <documentation>Opaque CompileRequest.targetOptions. (optional)</documentation>
38
+ </targetOptions>
39
+ <result type="xsdapi:XsdOptions">
40
+ <documentation>Fully resolved options. (required)</documentation>
41
+ </result>
42
+ </properties>
43
+
44
+ </block>
@@ -0,0 +1,42 @@
1
+ <!--
2
+ XSD Capability — VocabularyElements
3
+ FQN: org.blockml.bml.target.xsd.capability.VocabularyElements
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:core="org.blockml.bml.core"
15
+ xmlns:def="org.blockml.bml.definition"
16
+ xmlns:xsd="org.blockml.bml.target.xsd"
17
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
18
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
19
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
20
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>VocabularyElements</name>
24
+ <type>xsdcap:VocabularyElements</type>
25
+ <baseType>core:Capability</baseType>
26
+ <is>List sorted short names under an FQN prefix</is>
27
+
28
+ <documentation>Shared helper for types/service emit: filter registry.keys by prefix; take last segment after dot; sort.</documentation>
29
+
30
+ <properties>
31
+ <typeRegistry type="type:Text">
32
+ <documentation>TypeRegistry. (required)</documentation>
33
+ </typeRegistry>
34
+ <prefix type="type:Text">
35
+ <documentation>FQN prefix. (required)</documentation>
36
+ </prefix>
37
+ <result type="type:Text">
38
+ <documentation>Sorted short names. (required)</documentation>
39
+ </result>
40
+ </properties>
41
+
42
+ </block>
@@ -0,0 +1,33 @@
1
+ <!--
2
+ XSD Config — DefaultXsdOptions
3
+ FQN: org.blockml.bml.target.xsd.config.DefaultXsdOptions
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:core="org.blockml.bml.core"
15
+ xmlns:def="org.blockml.bml.definition"
16
+ xmlns:xsd="org.blockml.bml.target.xsd"
17
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
18
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
19
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
20
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>DefaultXsdOptions</name>
24
+ <type>xsdconfig:DefaultXsdOptions</type>
25
+ <baseType>xsd:XsdType</baseType>
26
+ <is>Defaults applied by ResolveOptions</is>
27
+
28
+ <properties>
29
+ <includeNonExported type="type:Boolean"><documentation>true</documentation></includeNonExported>
30
+ <emitDomainSchemas type="type:Boolean"><documentation>true</documentation></emitDomainSchemas>
31
+ </properties>
32
+
33
+ </block>
@@ -0,0 +1,42 @@
1
+ <!--
2
+ XSD Config — XsdConstants
3
+ FQN: org.blockml.bml.target.xsd.config.XsdConstants
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:core="org.blockml.bml.core"
15
+ xmlns:def="org.blockml.bml.definition"
16
+ xmlns:xsd="org.blockml.bml.target.xsd"
17
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
18
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
19
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
20
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
21
+ xmlns:type="org.blockml.bml.type">
22
+
23
+ <name>XsdConstants</name>
24
+ <type>xsdconfig:XsdConstants</type>
25
+ <baseType>xsd:XsdType</baseType>
26
+ <is>Well-known namespace URIs, FQN prefixes, and D1 particle lists</is>
27
+
28
+ <documentation>XSD4–XSD9 constants. D1 identity and container element name lists are normative for V1 bml.xsd emit.</documentation>
29
+ <properties>
30
+ <BML_DOCUMENT_NS type="type:Text"><documentation>http://blockml.org/bml</documentation></BML_DOCUMENT_NS>
31
+ <BML_TYPES_NS type="type:Text"><documentation>http://blockml.org/schema/types</documentation></BML_TYPES_NS>
32
+ <BML_SERVICE_NS type="type:Text"><documentation>http://blockml.org/schema/service</documentation></BML_SERVICE_NS>
33
+ <TYPE_FQN_PREFIX type="type:Text"><documentation>org.blockml.bml.type.</documentation></TYPE_FQN_PREFIX>
34
+ <SERVICE_FQN_PREFIX type="type:Text"><documentation>org.blockml.bml.service.</documentation></SERVICE_FQN_PREFIX>
35
+ <D1_IDENTITY_ELEMENTS type="type:Text"><documentation>Hardcoded identity particle names including both isNot and isnot.</documentation></D1_IDENTITY_ELEMENTS>
36
+ <D1_CONTAINER_ELEMENTS type="type:Text"><documentation>Hardcoded container particle names.</documentation></D1_CONTAINER_ELEMENTS>
37
+ <META_DEFINITION_FQNS type="type:Text"><documentation>Definition FQNs walked for extra element names.</documentation></META_DEFINITION_FQNS>
38
+ <REGISTRY_NAME type="type:Text"><documentation>xsd</documentation></REGISTRY_NAME>
39
+ <ACCEPTS type="type:Text"><documentation>library, corpus, auto</documentation></ACCEPTS>
40
+ </properties>
41
+
42
+ </block>
@@ -0,0 +1,45 @@
1
+ <!--
2
+ XSD Documentation — ArchitectureOverview
3
+ FQN: org.blockml.bml.target.xsd.documentation.ArchitectureOverview
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>ArchitectureOverview</name>
26
+ <type>xsddocumentation:ArchitectureOverview</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>Modules and data flow</is>
29
+
30
+ <documentation>Public entry: XsdTarget.render → ResolveOptions then emit helpers.
31
+ Modules map 1:1 to capabilities:
32
+ options.ts → ResolveOptions; constants.ts → XsdConstants;
33
+ emit-block-xsd.ts → EmitBlockXsd / MemberPrefersElement / ExtraElementNames;
34
+ emit-types-xsd.ts / emit-service-xsd.ts → EmitTypesXsd / EmitServiceXsd / VocabularyElements;
35
+ emit-catalog-xml.ts → EmitCatalogXml / CatalogRelativePath;
36
+ xsd-target.ts → Render.
37
+
38
+ Accepts library|corpus|auto (XSD2). Always emits bml.xsd (XSD1/XSD3). Domain schemas
39
+ gated by emitDomainSchemas (XSD15). Catalog always in rootFiles (XSD14).</documentation>
40
+ <references>
41
+ <see type="xsddocumentation:V1Scope" relation="ReadNext"></see>
42
+ <see type="xsdcap:Render" relation="SeeAlso"></see>
43
+ </references>
44
+
45
+ </block>
@@ -0,0 +1,45 @@
1
+ <!--
2
+ XSD Documentation — CatalogAndOutputLayout
3
+ FQN: org.blockml.bml.target.xsd.documentation.CatalogAndOutputLayout
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>CatalogAndOutputLayout</name>
26
+ <type>xsddocumentation:CatalogAndOutputLayout</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>Output files and OASIS catalog (XSD14)</is>
29
+
30
+ <documentation>files[]: always bml.xsd; if emitDomainSchemas also types.xsd and service.xsd
31
+ (paths relative to session outputBasePath / CLI default schemas/).
32
+ rootFiles[]: always catalog.xml at project root (CLI writes separately).
33
+
34
+ XSD14: OASIS xmlns urn:oasis:names:tc:entity:xmlns:xml:catalog;
35
+ one uri per CatalogEntry (name=namespaceUri, uri=CatalogRelativePath).
36
+ CatalogRelativePath: normalize slashes, strip trailing, return ./outDir/file.
37
+
38
+ IDE catalog usage is host/docs 15; generation rules live here.</documentation>
39
+ <references>
40
+ <see type="xsddocumentation:Diagnostics" relation="ReadNext"></see>
41
+ <see type="xsdcap:EmitCatalogXml" relation="SeeAlso"></see>
42
+ <see type="cli:Library" relation="SeeAlso"></see>
43
+ </references>
44
+
45
+ </block>
@@ -0,0 +1,49 @@
1
+ <!--
2
+ XSD Documentation — DesignDecisions
3
+ FQN: org.blockml.bml.target.xsd.documentation.DesignDecisions
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>DesignDecisions</name>
26
+ <type>xsddocumentation:DesignDecisions</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>Normative XSD decisions XSD1–XSD18</is>
29
+
30
+ <documentation>XSD1 Always emit bml.xsd.
31
+ XSD2 accepts library|corpus|auto; registry name xsd.
32
+ XSD3 Render uses session typeRegistry and outputBasePath.
33
+ XSD4–XSD7 bml.xsd shell: NS, block root, mixed, choice elements, no xs:any, lax anyAttribute.
34
+ XSD8 Hardcoded D1 identity + container name lists (including isNot and isnot).
35
+ XSD9 META_DEFINITION_FQNS walk for extras.
36
+ XSD10 MemberPrefersElement weak filter.
37
+ XSD11 Extras unique sorted minus D1 lists.
38
+ XSD12 types.xsd string vocabulary.
39
+ XSD13 service.xsd string vocabulary.
40
+ XSD14 Always catalog.xml in rootFiles; relative ./outDir/file paths.
41
+ XSD15 emitDomainSchemas default true.
42
+ XSD16 includeNonExported reserved unused in V1.
43
+ XSD17 No package-local emit diagnostics.
44
+ XSD18 Authoring XSD validation is CLI ScopeExclusion — not an XSD capability.</documentation>
45
+ <references>
46
+ <see type="xsddocumentation:PackageOwnership" relation="ReadNext"></see>
47
+ </references>
48
+
49
+ </block>
@@ -0,0 +1,38 @@
1
+ <!--
2
+ XSD Documentation — Diagnostics
3
+ FQN: org.blockml.bml.target.xsd.documentation.Diagnostics
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>Diagnostics</name>
26
+ <type>xsddocumentation:Diagnostics</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>Emit path has no package-local diagnostics</is>
29
+
30
+ <documentation>V1 XSD target emits without package diagnostics codes. Failures surface as host/CLI
31
+ or empty/malformed output only if upstream session is broken.
32
+ Authoring validation diagnostics (--no-xsd) are CLI-owned, not modeled here.
33
+ Scope mismatch for accepts is compiler/CLI (BML_TARGET_SCOPE_MISMATCH).</documentation>
34
+ <references>
35
+ <see type="xsddocumentation:DesignDecisions" relation="ReadNext"></see>
36
+ </references>
37
+
38
+ </block>
@@ -0,0 +1,41 @@
1
+ <!--
2
+ XSD Documentation — DomainVocabularyRules
3
+ FQN: org.blockml.bml.target.xsd.documentation.DomainVocabularyRules
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>DomainVocabularyRules</name>
26
+ <type>xsddocumentation:DomainVocabularyRules</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>types.xsd and service.xsd vocabularies (XSD12–XSD13)</is>
29
+
30
+ <documentation>XSD12: EmitTypesXsd — VocabularyElements under TYPE_FQN_PREFIX as xs:element type=xs:string
31
+ in BML_TYPES_NS (http://blockml.org/schema/types).
32
+ XSD13: EmitServiceXsd — same for SERVICE_FQN_PREFIX under BML_SERVICE_NS.
33
+ Short name = last FQN segment after dot; sorted.
34
+ Gated by emitDomainSchemas (XSD15). Not MachineBlocks domain schemas.</documentation>
35
+ <references>
36
+ <see type="xsddocumentation:CatalogAndOutputLayout" relation="ReadNext"></see>
37
+ <see type="xsdcap:EmitTypesXsd" relation="SeeAlso"></see>
38
+ <see type="xsdcap:EmitServiceXsd" relation="SeeAlso"></see>
39
+ </references>
40
+
41
+ </block>
@@ -0,0 +1,50 @@
1
+ <!--
2
+ XSD Documentation — Introduction
3
+ FQN: org.blockml.bml.target.xsd.documentation.Introduction
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>Introduction</name>
26
+ <type>xsddocumentation:Introduction</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>Purpose and scope of the XSD render target</is>
29
+
30
+ <documentation>The @blockml/xsd-target package implements RenderTarget registry name xsd.
31
+ It emits universal bml.xsd from D1 defaults plus meta Definition extras, optional
32
+ types.xsd and service.xsd vocabularies, and a root catalog.xml.
33
+
34
+ This library (org.blockml.bml.target.xsd.*) is the SSOT. TypeScript in
35
+ packages/xsd-target/src/ implements it. Tests in packages/xsd-target/test/
36
+ encode behavioral contracts (XSD1–XSD18).
37
+
38
+ Generate vs Validation: this library models schema GENERATE only. Authoring
39
+ validation against generated XSDs (--no-xsd / xsdValidation) lives in
40
+ org.blockml.bml.cli ScopeExclusions — never as an XSD target capability.
41
+
42
+ Pipeline: ResolveOptions → EmitBlockXsd [+ EmitTypesXsd / EmitServiceXsd] →
43
+ EmitCatalogXml → files under outDir plus rootFiles catalog.xml.
44
+ Host CLI wiring (default outDir schemas/, write) lives in org.blockml.bml.cli.*</documentation>
45
+ <references>
46
+ <see type="xsddocumentation:LayerSeparation" relation="ReadNext"></see>
47
+ <see type="xsdcap:Render" relation="SeeAlso"></see>
48
+ </references>
49
+
50
+ </block>
@@ -0,0 +1,42 @@
1
+ <!--
2
+ XSD Documentation — LayerSeparation
3
+ FQN: org.blockml.bml.target.xsd.documentation.LayerSeparation
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>LayerSeparation</name>
26
+ <type>xsddocumentation:LayerSeparation</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>What this library owns versus neighbors</is>
29
+
30
+ <documentation>Layers:
31
+ • org.blockml.bml.definition / docs 19 D1 — bml:xml particle grammar SSOT (XSD consumes)
32
+ • org.blockml.bml.target.xsd.* (this library) — emit bml.xsd / types.xsd / service.xsd / catalog
33
+ • org.blockml.bml.cli.* — default outDir=schemas, rootFiles write, --no-xsd authoring validation
34
+ • MachineBlocks domain XSDs — out of scope (product schemas)
35
+
36
+ Do not double-maintain CLI flags or D1 grammar here; link via SeeAlso.</documentation>
37
+ <references>
38
+ <see type="xsddocumentation:ArchitectureOverview" relation="ReadNext"></see>
39
+ <see type="cli:Library" relation="SeeAlso"></see>
40
+ </references>
41
+
42
+ </block>
@@ -0,0 +1,43 @@
1
+ <!--
2
+ XSD Documentation — PackageOwnership
3
+ FQN: org.blockml.bml.target.xsd.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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>PackageOwnership</name>
26
+ <type>xsddocumentation:PackageOwnership</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>What belongs in @blockml/xsd-target vs neighbors</is>
29
+
30
+ <documentation>Owns: registry name xsd, accepts, Options, emit of bml.xsd/types.xsd/service.xsd/catalog.xml,
31
+ D1 hardcoded lists + registry extras, MemberPrefersElement, NS/FQN constants.
32
+
33
+ Does not own: CLI default outDir=schemas, rootFiles write, exit codes (cli);
34
+ D1/bml:xml grammar SSOT (Definition / docs 19);
35
+ --no-xsd / xsdValidation (cli ScopeExclusion);
36
+ MachineBlocks domain XSDs.
37
+ Phase C IDE catalog narrative pointers in docs 15 stay host docs; generation here.</documentation>
38
+ <references>
39
+ <see type="xsddocumentation:ScopeExclusions" relation="ReadNext"></see>
40
+ <see type="cli:Library" relation="SeeAlso"></see>
41
+ </references>
42
+
43
+ </block>
@@ -0,0 +1,49 @@
1
+ <!--
2
+ XSD Documentation — ParticleMappingRules
3
+ FQN: org.blockml.bml.target.xsd.documentation.ParticleMappingRules
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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>ParticleMappingRules</name>
26
+ <type>xsddocumentation:ParticleMappingRules</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>bml.xsd particle construction (XSD4–XSD11)</is>
29
+
30
+ <documentation>Consumes D1 / bml:xml grammar from Definition (docs 19); does not redefine it.
31
+
32
+ XSD4: targetNamespace http://blockml.org/bml; single root element block; mixed=true.
33
+ XSD5: choice of unbounded optional xs:element particles only.
34
+ XSD6: no element-level xs:any.
35
+ XSD7: anyAttribute processContents=lax.
36
+ XSD8: D1_IDENTITY_ELEMENTS and D1_CONTAINER_ELEMENTS hardcoded sorted unique.
37
+ XSD9: ExtraElementNames from META_DEFINITION_FQNS via MemberPrefersElement.
38
+ XSD10: MemberPrefersElement — element/raw element true; sole attribute false;
39
+ aggregations/associations true; default true.
40
+ XSD11: extras exclude names already in D1 identity or containers.
41
+
42
+ Later: full D1 fidelity (attributes, text, nested models); pure Definition-driven lists.</documentation>
43
+ <references>
44
+ <see type="xsddocumentation:DomainVocabularyRules" relation="ReadNext"></see>
45
+ <see type="xsdcap:EmitBlockXsd" relation="SeeAlso"></see>
46
+ <see type="def:BlockDefinition" relation="SeeAlso"></see>
47
+ </references>
48
+
49
+ </block>
@@ -0,0 +1,45 @@
1
+ <!--
2
+ XSD Documentation — PublicApi
3
+ FQN: org.blockml.bml.target.xsd.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
+ "
10
+ xmlns:blockml="org.blockml.bml"
11
+ xmlns:bom="org.blockml.bml.bom"
12
+ xmlns:bomblock="org.blockml.bml.bom.block"
13
+ xmlns:bomcommon="org.blockml.bml.bom.common"
14
+ xmlns:cli="org.blockml.bml.cli"
15
+ xmlns:core="org.blockml.bml.core"
16
+ xmlns:def="org.blockml.bml.definition"
17
+ xmlns:xsd="org.blockml.bml.target.xsd"
18
+ xmlns:xsdapi="org.blockml.bml.target.xsd.api"
19
+ xmlns:xsdcap="org.blockml.bml.target.xsd.capability"
20
+ xmlns:xsdconfig="org.blockml.bml.target.xsd.config"
21
+ xmlns:xsddocumentation="org.blockml.bml.target.xsd.documentation"
22
+ xmlns:type="org.blockml.bml.type"
23
+ xmlns:doc="org.blockml.bml.documentation">
24
+
25
+ <name>PublicApi</name>
26
+ <type>xsddocumentation:PublicApi</type>
27
+ <baseType>core:Documentation</baseType>
28
+ <is>Public TypeScript surface mirrored in this library</is>
29
+
30
+ <documentation>Exports (packages/xsd-target/src/index.ts):
31
+ XsdTarget, XsdRenderOutput; XsdOptions, resolveXsdOptions, DEFAULT_XSD_OPTIONS;
32
+ emitBlockXsd, emitTypesXsd, emitServiceXsd; emitCatalogXml, catalogRelativePath, CatalogEntry;
33
+ BML_DOCUMENT_NS, BML_TYPES_NS, BML_SERVICE_NS, TYPE_FQN_PREFIX, SERVICE_FQN_PREFIX.
34
+
35
+ Modeled as: api/XsdOptions, XsdRenderOutput, CatalogEntry; config/XsdConstants,
36
+ DefaultXsdOptions; capabilities listed on Library.blocks.
37
+ Defines relation: this doc ↔ Options and Render.</documentation>
38
+ <references>
39
+ <see type="xsddocumentation:ParticleMappingRules" relation="ReadNext"></see>
40
+ <see type="xsdapi:XsdOptions" relation="SeeAlso"></see>
41
+ <see type="xsdcap:Render" relation="SeeAlso"></see>
42
+ <see type="xsdconfig:DefaultXsdOptions" relation="SeeAlso"></see>
43
+ </references>
44
+
45
+ </block>