@techspokes/typescript-wsdl-client 1.1.4 → 1.1.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.
- package/README.md +49 -1
- package/dist/app/generateApp.d.ts.map +1 -1
- package/dist/app/generateApp.js +8 -6
- package/dist/cli.js +49 -5
- package/dist/client/checkedDirectRuntime.d.ts +59 -0
- package/dist/client/checkedDirectRuntime.d.ts.map +1 -0
- package/dist/client/checkedDirectRuntime.js +23 -0
- package/dist/client/directClientRuntime.d.ts +49 -0
- package/dist/client/directClientRuntime.d.ts.map +1 -0
- package/dist/client/directClientRuntime.js +112 -0
- package/dist/client/directClientVersion.d.ts +4 -0
- package/dist/client/directClientVersion.d.ts.map +1 -0
- package/dist/client/directClientVersion.js +3 -0
- package/dist/client/generateDirectClient.d.ts +14 -0
- package/dist/client/generateDirectClient.d.ts.map +1 -0
- package/dist/client/generateDirectClient.js +136 -0
- package/dist/compiler/buildCanonicalGraph.d.ts +7 -0
- package/dist/compiler/buildCanonicalGraph.d.ts.map +1 -0
- package/dist/compiler/buildCanonicalGraph.js +381 -0
- package/dist/compiler/canonicalGraph.d.ts +198 -0
- package/dist/compiler/canonicalGraph.d.ts.map +1 -0
- package/dist/compiler/canonicalGraph.js +37 -0
- package/dist/compiler/catalogErrors.d.ts +18 -0
- package/dist/compiler/catalogErrors.d.ts.map +1 -0
- package/dist/compiler/catalogErrors.js +86 -0
- package/dist/compiler/catalogProvenance.d.ts +15 -0
- package/dist/compiler/catalogProvenance.d.ts.map +1 -0
- package/dist/compiler/catalogProvenance.js +229 -0
- package/dist/compiler/checkedAssessment.d.ts +91 -0
- package/dist/compiler/checkedAssessment.d.ts.map +1 -0
- package/dist/compiler/checkedAssessment.js +300 -0
- package/dist/compiler/checkedSourcePreparation.d.ts +35 -0
- package/dist/compiler/checkedSourcePreparation.d.ts.map +1 -0
- package/dist/compiler/checkedSourcePreparation.js +131 -0
- package/dist/compiler/complexTypeContent.d.ts +59 -0
- package/dist/compiler/complexTypeContent.d.ts.map +1 -0
- package/dist/compiler/complexTypeContent.js +558 -0
- package/dist/compiler/composeCanonicalGraph.d.ts +69 -0
- package/dist/compiler/composeCanonicalGraph.d.ts.map +1 -0
- package/dist/compiler/composeCanonicalGraph.js +252 -0
- package/dist/compiler/dataOwnership.d.ts +22 -0
- package/dist/compiler/dataOwnership.d.ts.map +1 -0
- package/dist/compiler/dataOwnership.js +157 -0
- package/dist/compiler/datatypeValues.d.ts +47 -0
- package/dist/compiler/datatypeValues.d.ts.map +1 -0
- package/dist/compiler/datatypeValues.js +275 -0
- package/dist/compiler/directCodec.d.ts +59 -0
- package/dist/compiler/directCodec.d.ts.map +1 -0
- package/dist/compiler/directCodec.js +192 -0
- package/dist/compiler/directExecutionPolicy.d.ts +10 -0
- package/dist/compiler/directExecutionPolicy.d.ts.map +1 -0
- package/dist/compiler/directExecutionPolicy.js +17 -0
- package/dist/compiler/directOperation.d.ts +72 -0
- package/dist/compiler/directOperation.d.ts.map +1 -0
- package/dist/compiler/directOperation.js +282 -0
- package/dist/compiler/directSoap.d.ts +42 -0
- package/dist/compiler/directSoap.d.ts.map +1 -0
- package/dist/compiler/directSoap.js +298 -0
- package/dist/compiler/directSoapSource.d.ts +15 -0
- package/dist/compiler/directSoapSource.d.ts.map +1 -0
- package/dist/compiler/directSoapSource.js +86 -0
- package/dist/compiler/directSourceCapsule.d.ts +97 -0
- package/dist/compiler/directSourceCapsule.d.ts.map +1 -0
- package/dist/compiler/directSourceCapsule.js +305 -0
- package/dist/compiler/directStructure.d.ts +51 -0
- package/dist/compiler/directStructure.d.ts.map +1 -0
- package/dist/compiler/directStructure.js +252 -0
- package/dist/compiler/directStructurePlan.d.ts +16 -0
- package/dist/compiler/directStructurePlan.d.ts.map +1 -0
- package/dist/compiler/directStructurePlan.js +58 -0
- package/dist/compiler/directValues.d.ts +69 -0
- package/dist/compiler/directValues.d.ts.map +1 -0
- package/dist/compiler/directValues.js +282 -0
- package/dist/compiler/finiteRe01Verification.d.ts +140 -0
- package/dist/compiler/finiteRe01Verification.d.ts.map +1 -0
- package/dist/compiler/finiteRe01Verification.js +830 -0
- package/dist/compiler/graphTraversal.d.ts +11 -0
- package/dist/compiler/graphTraversal.d.ts.map +1 -0
- package/dist/compiler/graphTraversal.js +37 -0
- package/dist/compiler/hypotheticalScopedIdentity.d.ts +23 -0
- package/dist/compiler/hypotheticalScopedIdentity.d.ts.map +1 -0
- package/dist/compiler/hypotheticalScopedIdentity.js +81 -0
- package/dist/compiler/occurrenceAnalysis.d.ts +65 -0
- package/dist/compiler/occurrenceAnalysis.d.ts.map +1 -0
- package/dist/compiler/occurrenceAnalysis.js +300 -0
- package/dist/compiler/originalSourceMembership.d.ts +6 -0
- package/dist/compiler/originalSourceMembership.d.ts.map +1 -0
- package/dist/compiler/originalSourceMembership.js +31 -0
- package/dist/compiler/particleAttribution.d.ts +17 -0
- package/dist/compiler/particleAttribution.d.ts.map +1 -0
- package/dist/compiler/particleAttribution.js +474 -0
- package/dist/compiler/particleDeclarationConsistency.d.ts +24 -0
- package/dist/compiler/particleDeclarationConsistency.d.ts.map +1 -0
- package/dist/compiler/particleDeclarationConsistency.js +197 -0
- package/dist/compiler/particleExtension.d.ts +22 -0
- package/dist/compiler/particleExtension.d.ts.map +1 -0
- package/dist/compiler/particleExtension.js +119 -0
- package/dist/compiler/particleLocalAssessment.d.ts +20 -0
- package/dist/compiler/particleLocalAssessment.d.ts.map +1 -0
- package/dist/compiler/particleLocalAssessment.js +92 -0
- package/dist/compiler/particleRestriction.d.ts +24 -0
- package/dist/compiler/particleRestriction.d.ts.map +1 -0
- package/dist/compiler/particleRestriction.js +489 -0
- package/dist/compiler/particleSemanticView.d.ts +50 -0
- package/dist/compiler/particleSemanticView.d.ts.map +1 -0
- package/dist/compiler/particleSemanticView.js +297 -0
- package/dist/compiler/particleWildcardRelation.d.ts +88 -0
- package/dist/compiler/particleWildcardRelation.d.ts.map +1 -0
- package/dist/compiler/particleWildcardRelation.js +143 -0
- package/dist/compiler/re01CandidateCorrespondence.d.ts +64 -0
- package/dist/compiler/re01CandidateCorrespondence.d.ts.map +1 -0
- package/dist/compiler/re01CandidateCorrespondence.js +572 -0
- package/dist/compiler/re01TypeProperties.d.ts +71 -0
- package/dist/compiler/re01TypeProperties.d.ts.map +1 -0
- package/dist/compiler/re01TypeProperties.js +120 -0
- package/dist/compiler/re01TypePropertyValidation.d.ts +23 -0
- package/dist/compiler/re01TypePropertyValidation.d.ts.map +1 -0
- package/dist/compiler/re01TypePropertyValidation.js +161 -0
- package/dist/compiler/resolveCanonicalGraph.d.ts +38 -0
- package/dist/compiler/resolveCanonicalGraph.d.ts.map +1 -0
- package/dist/compiler/resolveCanonicalGraph.js +170 -0
- package/dist/compiler/scalarSchemaAssessment.d.ts +425 -0
- package/dist/compiler/scalarSchemaAssessment.d.ts.map +1 -0
- package/dist/compiler/scalarSchemaAssessment.js +5198 -0
- package/dist/compiler/schemaAttributeGroupProperties.d.ts +17 -0
- package/dist/compiler/schemaAttributeGroupProperties.d.ts.map +1 -0
- package/dist/compiler/schemaAttributeGroupProperties.js +53 -0
- package/dist/compiler/schemaAttributeProperties.d.ts +10 -0
- package/dist/compiler/schemaAttributeProperties.d.ts.map +1 -0
- package/dist/compiler/schemaAttributeProperties.js +11 -0
- package/dist/compiler/schemaAttributeUses.d.ts +90 -0
- package/dist/compiler/schemaAttributeUses.d.ts.map +1 -0
- package/dist/compiler/schemaAttributeUses.js +725 -0
- package/dist/compiler/schemaBinaryWordReconstruction.d.ts +10 -0
- package/dist/compiler/schemaBinaryWordReconstruction.d.ts.map +1 -0
- package/dist/compiler/schemaBinaryWordReconstruction.js +33 -0
- package/dist/compiler/schemaBuiltinFacets.d.ts +14 -0
- package/dist/compiler/schemaBuiltinFacets.d.ts.map +1 -0
- package/dist/compiler/schemaBuiltinFacets.js +51 -0
- package/dist/compiler/schemaCalendarImages.d.ts +8 -0
- package/dist/compiler/schemaCalendarImages.d.ts.map +1 -0
- package/dist/compiler/schemaCalendarImages.js +204 -0
- package/dist/compiler/schemaCalendarLanguage.d.ts +11 -0
- package/dist/compiler/schemaCalendarLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaCalendarLanguage.js +227 -0
- package/dist/compiler/schemaComponentEquality.d.ts +28 -0
- package/dist/compiler/schemaComponentEquality.d.ts.map +1 -0
- package/dist/compiler/schemaComponentEquality.js +446 -0
- package/dist/compiler/schemaConstructionAssessment.d.ts +46 -0
- package/dist/compiler/schemaConstructionAssessment.d.ts.map +1 -0
- package/dist/compiler/schemaConstructionAssessment.js +663 -0
- package/dist/compiler/schemaDatatypeValues.d.ts +4 -0
- package/dist/compiler/schemaDatatypeValues.d.ts.map +1 -0
- package/dist/compiler/schemaDatatypeValues.js +2 -0
- package/dist/compiler/schemaDecimalLanguage.d.ts +7 -0
- package/dist/compiler/schemaDecimalLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaDecimalLanguage.js +102 -0
- package/dist/compiler/schemaDeclarationPrimitives.d.ts +34 -0
- package/dist/compiler/schemaDeclarationPrimitives.d.ts.map +1 -0
- package/dist/compiler/schemaDeclarationPrimitives.js +194 -0
- package/dist/compiler/schemaDocumentSyntax.d.ts +55 -0
- package/dist/compiler/schemaDocumentSyntax.d.ts.map +1 -0
- package/dist/compiler/schemaDocumentSyntax.js +294 -0
- package/dist/compiler/schemaDurationLanguage.d.ts +11 -0
- package/dist/compiler/schemaDurationLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaDurationLanguage.js +170 -0
- package/dist/compiler/schemaElementProperties.d.ts +16 -0
- package/dist/compiler/schemaElementProperties.d.ts.map +1 -0
- package/dist/compiler/schemaElementProperties.js +23 -0
- package/dist/compiler/schemaEndpointWordCapacity.d.ts +36 -0
- package/dist/compiler/schemaEndpointWordCapacity.d.ts.map +1 -0
- package/dist/compiler/schemaEndpointWordCapacity.js +39 -0
- package/dist/compiler/schemaExactCalendar.d.ts +73 -0
- package/dist/compiler/schemaExactCalendar.d.ts.map +1 -0
- package/dist/compiler/schemaExactCalendar.js +264 -0
- package/dist/compiler/schemaFacetAnnotation.d.ts +32 -0
- package/dist/compiler/schemaFacetAnnotation.d.ts.map +1 -0
- package/dist/compiler/schemaFacetAnnotation.js +199 -0
- package/dist/compiler/schemaGeneratedScalarShape.d.ts +35 -0
- package/dist/compiler/schemaGeneratedScalarShape.d.ts.map +1 -0
- package/dist/compiler/schemaGeneratedScalarShape.js +176 -0
- package/dist/compiler/schemaIdentityConstraints.d.ts +73 -0
- package/dist/compiler/schemaIdentityConstraints.d.ts.map +1 -0
- package/dist/compiler/schemaIdentityConstraints.js +362 -0
- package/dist/compiler/schemaIeeeLanguage.d.ts +43 -0
- package/dist/compiler/schemaIeeeLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaIeeeLanguage.js +759 -0
- package/dist/compiler/schemaIntegerImages.d.ts +11 -0
- package/dist/compiler/schemaIntegerImages.d.ts.map +1 -0
- package/dist/compiler/schemaIntegerImages.js +113 -0
- package/dist/compiler/schemaLexicalPredicates.d.ts +29 -0
- package/dist/compiler/schemaLexicalPredicates.d.ts.map +1 -0
- package/dist/compiler/schemaLexicalPredicates.js +63 -0
- package/dist/compiler/schemaNotationProperties.d.ts +32 -0
- package/dist/compiler/schemaNotationProperties.d.ts.map +1 -0
- package/dist/compiler/schemaNotationProperties.js +84 -0
- package/dist/compiler/schemaNumericImageConditions.d.ts +24 -0
- package/dist/compiler/schemaNumericImageConditions.d.ts.map +1 -0
- package/dist/compiler/schemaNumericImageConditions.js +66 -0
- package/dist/compiler/schemaParticleWildcardProperties.d.ts +20 -0
- package/dist/compiler/schemaParticleWildcardProperties.d.ts.map +1 -0
- package/dist/compiler/schemaParticleWildcardProperties.js +43 -0
- package/dist/compiler/schemaPattern.d.ts +1062 -0
- package/dist/compiler/schemaPattern.d.ts.map +1 -0
- package/dist/compiler/schemaPattern.js +581 -0
- package/dist/compiler/schemaRegularLanguage.d.ts +67 -0
- package/dist/compiler/schemaRegularLanguage.d.ts.map +1 -0
- package/dist/compiler/schemaRegularLanguage.js +1166 -0
- package/dist/compiler/schemaScalarContext.d.ts +81 -0
- package/dist/compiler/schemaScalarContext.d.ts.map +1 -0
- package/dist/compiler/schemaScalarContext.js +78 -0
- package/dist/compiler/schemaScalarKernel.d.ts +182 -0
- package/dist/compiler/schemaScalarKernel.d.ts.map +1 -0
- package/dist/compiler/schemaScalarKernel.js +391 -0
- package/dist/compiler/schemaScalarWitnesses.d.ts +6 -0
- package/dist/compiler/schemaScalarWitnesses.d.ts.map +1 -0
- package/dist/compiler/schemaScalarWitnesses.js +118 -0
- package/dist/compiler/schemaSimpleTypeProperties.d.ts +95 -0
- package/dist/compiler/schemaSimpleTypeProperties.d.ts.map +1 -0
- package/dist/compiler/schemaSimpleTypeProperties.js +103 -0
- package/dist/compiler/schemaSourceGrammar.d.ts +27 -0
- package/dist/compiler/schemaSourceGrammar.d.ts.map +1 -0
- package/dist/compiler/schemaSourceGrammar.js +290 -0
- package/dist/compiler/schemaSourceLexical.d.ts +4 -0
- package/dist/compiler/schemaSourceLexical.d.ts.map +1 -0
- package/dist/compiler/schemaSourceLexical.js +12 -0
- package/dist/compiler/schemaSourceValues.d.ts +51 -0
- package/dist/compiler/schemaSourceValues.d.ts.map +1 -0
- package/dist/compiler/schemaSourceValues.js +225 -0
- package/dist/compiler/schemaSourceWildcards.d.ts +28 -0
- package/dist/compiler/schemaSourceWildcards.d.ts.map +1 -0
- package/dist/compiler/schemaSourceWildcards.js +247 -0
- package/dist/compiler/schemaSymbolicSequences.d.ts +16 -0
- package/dist/compiler/schemaSymbolicSequences.d.ts.map +1 -0
- package/dist/compiler/schemaSymbolicSequences.js +99 -0
- package/dist/compiler/schemaSymbolicValueSets.d.ts +32 -0
- package/dist/compiler/schemaSymbolicValueSets.d.ts.map +1 -0
- package/dist/compiler/schemaSymbolicValueSets.js +149 -0
- package/dist/compiler/schemaSyntaxAssessment.d.ts +25 -0
- package/dist/compiler/schemaSyntaxAssessment.d.ts.map +1 -0
- package/dist/compiler/schemaSyntaxAssessment.js +361 -0
- package/dist/compiler/schemaTemporalAliases.d.ts +6 -0
- package/dist/compiler/schemaTemporalAliases.d.ts.map +1 -0
- package/dist/compiler/schemaTemporalAliases.js +195 -0
- package/dist/compiler/schemaTokenImages.d.ts +9 -0
- package/dist/compiler/schemaTokenImages.d.ts.map +1 -0
- package/dist/compiler/schemaTokenImages.js +142 -0
- package/dist/compiler/schemaTypeIdentity.d.ts +39 -0
- package/dist/compiler/schemaTypeIdentity.d.ts.map +1 -0
- package/dist/compiler/schemaTypeIdentity.js +78 -0
- package/dist/compiler/schemaTypeRelations.d.ts +38 -0
- package/dist/compiler/schemaTypeRelations.d.ts.map +1 -0
- package/dist/compiler/schemaTypeRelations.js +576 -0
- package/dist/compiler/schemaUri.d.ts +13 -0
- package/dist/compiler/schemaUri.d.ts.map +1 -0
- package/dist/compiler/schemaUri.js +103 -0
- package/dist/compiler/schemaValueContext.d.ts +26 -0
- package/dist/compiler/schemaValueContext.d.ts.map +1 -0
- package/dist/compiler/schemaValueContext.js +1 -0
- package/dist/compiler/schemaValueImages.d.ts +10 -0
- package/dist/compiler/schemaValueImages.d.ts.map +1 -0
- package/dist/compiler/schemaValueImages.js +142 -0
- package/dist/compiler/schemaValueSequences.d.ts +15 -0
- package/dist/compiler/schemaValueSequences.d.ts.map +1 -0
- package/dist/compiler/schemaValueSequences.js +19 -0
- package/dist/compiler/semanticBudget.d.ts +50 -0
- package/dist/compiler/semanticBudget.d.ts.map +1 -0
- package/dist/compiler/semanticBudget.js +178 -0
- package/dist/compiler/semanticCatalog.d.ts +122 -0
- package/dist/compiler/semanticCatalog.d.ts.map +1 -0
- package/dist/compiler/semanticCatalog.js +160 -0
- package/dist/compiler/semanticContext.d.ts +172 -0
- package/dist/compiler/semanticContext.d.ts.map +1 -0
- package/dist/compiler/semanticContext.js +1168 -0
- package/dist/compiler/semanticTypeDependencies.d.ts +8 -0
- package/dist/compiler/semanticTypeDependencies.d.ts.map +1 -0
- package/dist/compiler/semanticTypeDependencies.js +64 -0
- package/dist/compiler/semanticTypeReference.d.ts +24 -0
- package/dist/compiler/semanticTypeReference.d.ts.map +1 -0
- package/dist/compiler/semanticTypeReference.js +36 -0
- package/dist/compiler/shapeResolver.d.ts +1 -0
- package/dist/compiler/shapeResolver.d.ts.map +1 -1
- package/dist/compiler/shapeResolver.js +7 -9
- package/dist/compiler/sourceSchemaBinding.d.ts +26 -0
- package/dist/compiler/sourceSchemaBinding.d.ts.map +1 -0
- package/dist/compiler/sourceSchemaBinding.js +39 -0
- package/dist/compiler/structuralCompanions.d.ts +16 -0
- package/dist/compiler/structuralCompanions.d.ts.map +1 -0
- package/dist/compiler/structuralCompanions.js +232 -0
- package/dist/compiler/validateSemanticGraph.d.ts +5 -0
- package/dist/compiler/validateSemanticGraph.d.ts.map +1 -0
- package/dist/compiler/validateSemanticGraph.js +376 -0
- package/dist/compiler/wildcardAlgebra.d.ts +26 -0
- package/dist/compiler/wildcardAlgebra.d.ts.map +1 -0
- package/dist/compiler/wildcardAlgebra.js +155 -0
- package/dist/gateway/generateGateway.d.ts.map +1 -1
- package/dist/gateway/generateGateway.js +2 -2
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/loader/orderedSyntax.d.ts +77 -0
- package/dist/loader/orderedSyntax.d.ts.map +1 -0
- package/dist/loader/orderedSyntax.js +202 -0
- package/dist/loader/resolutionDepth.d.ts +7 -0
- package/dist/loader/resolutionDepth.d.ts.map +1 -0
- package/dist/loader/resolutionDepth.js +65 -0
- package/dist/loader/schemaInput.d.ts +53 -0
- package/dist/loader/schemaInput.d.ts.map +1 -0
- package/dist/loader/schemaInput.js +212 -0
- package/dist/loader/schemaResources.d.ts +59 -0
- package/dist/loader/schemaResources.d.ts.map +1 -0
- package/dist/loader/schemaResources.js +292 -0
- package/dist/openapi/generateOpenAPI.d.ts.map +1 -1
- package/dist/openapi/generateOpenAPI.js +2 -2
- package/dist/test/generateTests.d.ts.map +1 -1
- package/dist/test/generateTests.js +2 -2
- package/dist/util/xmlWhitespace.d.ts +3 -0
- package/dist/util/xmlWhitespace.d.ts.map +1 -0
- package/dist/util/xmlWhitespace.js +4 -0
- package/docs/README.md +14 -1
- package/docs/architecture.md +9 -0
- package/docs/cli-reference.md +21 -1
- package/docs/content-model-analysis.md +92 -0
- package/docs/content-model-baseline.md +121 -0
- package/docs/content-model-catalog.md +116 -0
- package/docs/content-model-companions.md +90 -0
- package/docs/content-model-composition.md +103 -0
- package/docs/content-model-decisions.md +79 -0
- package/docs/content-model-gateway-feasibility.md +169 -0
- package/docs/content-model-graph.md +121 -0
- package/docs/content-model-loading.md +163 -0
- package/docs/content-model-matching.md +85 -0
- package/docs/content-model-readiness.md +144 -0
- package/docs/content-model-resolution.md +81 -0
- package/docs/content-model-s02-handoff.md +98 -0
- package/docs/content-model-s06-au-01.md +425 -0
- package/docs/content-model-s06-dt-01.md +386 -0
- package/docs/content-model-s06-pw-01.md +350 -0
- package/docs/content-model-s06-re-01-resolver-implementation.md +869 -0
- package/docs/content-model-s06-re-01-resolver.md +513 -0
- package/docs/content-model-s06-re-01-scalar-witnesses.md +1423 -0
- package/docs/content-model-s06-re-01-support-reconstruction.md +6337 -0
- package/docs/content-model-s06-re-01.md +7477 -0
- package/docs/content-model-s06-research-handoff.md +909 -0
- package/docs/content-model-shipped-fix.md +83 -0
- package/docs/content-model-soap-feasibility.md +165 -0
- package/docs/decisions/002-streamable-responses.md +2 -0
- package/docs/decisions/003-content-model-contracts.md +280 -0
- package/docs/direct-values.md +311 -0
- package/docs/reference-validation.md +243 -0
- package/docs/releases/v1.1.5.md +38 -0
- package/docs/roadmap/README.md +2 -2
- package/docs/supported-patterns.md +13 -5
- package/package.json +26 -13
- package/src/generation/preambles/direct-client/typescript.preamble +3 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
# PW01: Group-to-Wildcard Restriction
|
|
2
|
+
|
|
3
|
+
Research contract, competing interpretations and independent evidence for S06-PW-01. See the root [README](../README.md).
|
|
4
|
+
|
|
5
|
+
## Disposition and decision request
|
|
6
|
+
|
|
7
|
+
Recovery #270 moves the shared group-to-wildcard control flow into `src/compiler/particleWildcardRelation.ts`.
|
|
8
|
+
The fixed `restrictParticleToWildcard` source entry uses the caller's authenticated context/budget, accepted #178 exact arithmetic and #269's normative wildcard relation; the historical research entry becomes an adapter.
|
|
9
|
+
Its result is a conditional local relation with explicit normalized-view, occurrence, construction and attribution prerequisites, not full particle/schema validity.
|
|
10
|
+
|
|
11
|
+
The source entry does not infer the actual ur-type wildcard identity from caller-supplied spelling.
|
|
12
|
+
Recovery now implements normalization, full restriction dispatch, raw extension and UPA/EDC in separate shared owners, while aggregate candidate acceptance remains #271.
|
|
13
|
+
The complete universal witness theorem remains #234.
|
|
14
|
+
|
|
15
|
+
### Recovery particle authorities
|
|
16
|
+
|
|
17
|
+
`particleSemanticView.ts` distinguishes authenticated declared views from restriction-normalized comparison views.
|
|
18
|
+
It uses the existing #178 occurrence implementation with the caller's shared budget; it does not replace formal ranges with accepted-count intervals.
|
|
19
|
+
`particleRestriction.ts` implements the specified dispatch and ordered/unmatched mappings, using the shared scalar/type and wildcard owners.
|
|
20
|
+
The [accepted implicit-order interpretation](content-model-s06-re-01.md#selected-raw-matching-implicit-order-and-generated-scalar-properties) asks whether some coherent enumeration satisfies the ordered mapping.
|
|
21
|
+
Explicit lists keep their original order, and one implicit head uses one enumeration throughout a root comparison under the shared budget.
|
|
22
|
+
|
|
23
|
+
`particleExtension.ts` checks the original raw extension relation.
|
|
24
|
+
The same particle identity is a primitive case; a unit sequence with the required recursively equal first member is checked through concrete component properties.
|
|
25
|
+
Annotations and diagnostic storage do not substitute for semantic properties, and normalized language equivalence does not establish raw extension.
|
|
26
|
+
`schemaComponentEquality.ts` owns the recursive property comparison, with scalar and component-validity prerequisites kept explicit.
|
|
27
|
+
|
|
28
|
+
`particleAttribution.ts` constructs one marked counter automaton from particle-use positions and exact occurrence bounds.
|
|
29
|
+
Finite counts remain `bigint` guards and counter values; numeric bounds do not duplicate event structure.
|
|
30
|
+
Unbounded counters saturate only after their minimum, where the transition guards no longer distinguish larger values.
|
|
31
|
+
The finite alphabet partition distinguishes named elements, remaining names in each mentioned namespace and unmentioned namespaces.
|
|
32
|
+
Effective substitution members and wildcard namespace operations use the same context-qualified owners as restriction.
|
|
33
|
+
Attribution checks overlapping marked transitions at every reachable prefix, including branches whose later required suffix cannot complete.
|
|
34
|
+
The normative requirement to choose without the remainder is corroborated by Appendix H's untrimmed automaton construction; Appendix H is explicitly nonnormative guidance.
|
|
35
|
+
A suffix behind an unreachable required empty choice has no reachable transition and does not create a prefix ambiguity.
|
|
36
|
+
|
|
37
|
+
Determinization explores exact counter configurations under the shared budget.
|
|
38
|
+
Reviewed acceleration skips only a deterministic counter cycle below its next minimum guard, with the same consuming position, unchanged other counters and no intervening reset or exit.
|
|
39
|
+
It is not an arbitrary cap on repetition counts.
|
|
40
|
+
All finite counters have finite value domains, unbounded counters have the justified saturated domain, and the structural state graph is finite; exploration therefore terminates with sufficient resources.
|
|
41
|
+
Resource interruption yields no UPA verdict or accepted candidate.
|
|
42
|
+
|
|
43
|
+
`particleDeclarationConsistency.ts` checks EDC across positions, including implicit substitution members and named-type identity.
|
|
44
|
+
`particleLocalAssessment.ts` combines local all/UPA/EDC checks without assuming the containing schema is valid.
|
|
45
|
+
The aggregate owner also checks unused original named groups and compositors; legality cannot depend on whether a complex type happens to reference them.
|
|
46
|
+
|
|
47
|
+
Independent restriction, extension, EDC and UPA suites use real canonical/resolved inputs.
|
|
48
|
+
The nested-repeat ambiguity `((a?, b, a?)){1,2}` exposed an unsound path heuristic; exact counted attribution now checks that contrast and huge-range boundaries without event duplication.
|
|
49
|
+
Finite language comparisons remain separate bounded review evidence, not proofs of full RE01 coverage.
|
|
50
|
+
|
|
51
|
+
[Issue #235](https://github.com/TechSpokes/typescript-wsdl-client/issues/235) has a complete research contract and executable evidence.
|
|
52
|
+
The maintainer [selected option B on October 10, 2026](https://github.com/TechSpokes/typescript-wsdl-client/issues/235#issuecomment-6095922074); final independent semantic review and delivery govern local acceptance.
|
|
53
|
+
The published XSD 1.0 text and proposed R-240 correction yield different answers for 13 cases below.
|
|
54
|
+
The literal alternative remains comparison evidence, while B is the selected project interpretation.
|
|
55
|
+
|
|
56
|
+
The selected project interpretation is option B, the proposed R-240 zero member minimum.
|
|
57
|
+
Its authority is a documented WG proposal, not an adopted XSD 1.0 erratum.
|
|
58
|
+
Its explicit selection does not authorize product guard removal before #179 integration.
|
|
59
|
+
|
|
60
|
+
| Option | Member comparisons | Whole retained group | Compatibility consequence |
|
|
61
|
+
|---|---|---|---|
|
|
62
|
+
| A: Literal 2004 member bounds | Original wildcard minimum and maximum | Original wildcard range | Rejects optional/unit members even when the total fits |
|
|
63
|
+
| B: Proposed R-240 zero member minimum | Zero minimum; original maximum | Original wildcard range | Admits those contrasts; preserves namespace, maximum and processing checks |
|
|
64
|
+
|
|
65
|
+
Option B is monotone relative to A on the same normalized operands: lowering only member-view minima cannot turn a passing A comparison into a failure.
|
|
66
|
+
It preserves every result in the already discharged original `0..unbounded` subset and additionally settles finite and positive-minimum cases once selected.
|
|
67
|
+
It also admits the formally dead `dead-sequence` contrast; accepting B does not authorize a payload-language claim.
|
|
68
|
+
|
|
69
|
+
A term-only interpretation that drops both member bounds differs from the actual R-240 proposal and has no adopted wording here.
|
|
70
|
+
Adopting the XSD 1.1 restriction system changes the approved profile and is outside this decision.
|
|
71
|
+
No narrower permanent profile, persisted format change, public activation or removal of the #179 guard is delivered.
|
|
72
|
+
|
|
73
|
+
The [joint handoff](content-model-s06-research-handoff.md) owns exact delivery/review revisions and final combined validation.
|
|
74
|
+
Production implementation remains #179; [RE01 #234](https://github.com/TechSpokes/typescript-wsdl-client/issues/234) receives the parameterized predicate below.
|
|
75
|
+
#180/#181 retain payload matching, count gaps and independent model enumeration.
|
|
76
|
+
|
|
77
|
+
## Source authority and applicable clauses
|
|
78
|
+
|
|
79
|
+
The governing source is [XSD 1.0 Structures, Recommendation 28 October 2004](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/).
|
|
80
|
+
The complete XML source was read through the [pinned mirror](https://github.com/jacoelho/xsd/blob/142f25ee187e17f041af87b6bfcfc82385254520/docs/spec/xml/structures.xml), SHA-256 `e496af408b14853e6169ac7c1fca09d55a81bd73771758ad6be020960e1317ba`.
|
|
81
|
+
Editorial deletions in that source are excluded from the final clauses.
|
|
82
|
+
|
|
83
|
+
[NSRecurseCheckCardinality](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#rcase-NSRecurseCheckCardinality) invokes “Every member of the {particles} of the group” and separately the “effective total range of the group”.
|
|
84
|
+
Its first clause calls the member a “valid restriction” of the wildcard through `cos-particle-restrict`, although that relation compares particles.
|
|
85
|
+
This particle/term ambiguity is the specific defect recorded by R-240.
|
|
86
|
+
|
|
87
|
+
| Clause | Operand and required comparison |
|
|
88
|
+
|---|---|
|
|
89
|
+
| [NSCompat](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#rcase-NSCompat) | Element particle: namespace membership and local occurrence range |
|
|
90
|
+
| [NSSubset](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#rcase-NSSubset) | Wildcard particle: occurrence range, namespace subset and processing strength |
|
|
91
|
+
| [NSRecurseCheckCardinality](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#rcase-NSRecurseCheckCardinality) | Group particle: recursively valid members and effective total range |
|
|
92
|
+
| [Occurrence Range OK](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#range-ok) | Exact lower-bound and upper-bound containment |
|
|
93
|
+
| [Sequence/all range](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cos-seq-range) | Formal sum followed by the group's local repetition |
|
|
94
|
+
| [Choice range](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cos-choice-range) | Formal alternative extrema followed by local repetition |
|
|
95
|
+
| [Particle restriction](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cos-particle-restrict) | Component mapping and specified pointless-compositor rules precede dispatch |
|
|
96
|
+
|
|
97
|
+
The [published second-edition errata](https://www.w3.org/2004/03/xmlschema-errata), including E1-56, do not amend this restriction rule.
|
|
98
|
+
[WG issue 2232](https://www.w3.org/Bugs/Public/show_bug.cgi?id=2232), reported September 14, 2005, remains `ASSIGNED` and `1.0 only` in the archived tracker.
|
|
99
|
+
Its proposed constructed comparison particle has “min occurs: 0” and “max occurs: the same as the max occurs of the wildcard particle”.
|
|
100
|
+
|
|
101
|
+
The September 23, 2006 WG comment says the constraint was deleted from XSD 1.1.
|
|
102
|
+
That statement records a later-version change; it does not adopt either proposed correction into XSD 1.0.
|
|
103
|
+
Official errata and WG pages were independently retrieved through the web connector on October 10, 2026 after direct W3C shell retrieval returned HTTP 403.
|
|
104
|
+
|
|
105
|
+
## Pure predicate consumed by RE01 and #179
|
|
106
|
+
|
|
107
|
+
Let `P` be a restriction-normalized element, wildcard or group particle and `W` the original base wildcard particle.
|
|
108
|
+
`within(R, W)` means exact `R.min >= W.min` and `R.max <= W.max`, with `unbounded` a distinct maximum.
|
|
109
|
+
For a group, `ETR(P)` is the formal effective total range supplied by [#178](content-model-analysis.md), not its accepted-count interval.
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
restrictToWildcard(P, W, interpretation):
|
|
113
|
+
element:
|
|
114
|
+
within(P.localOccurs, W) AND namespaceAllowed(P.elementNamespace, W.term)
|
|
115
|
+
wildcard:
|
|
116
|
+
within(P.localOccurs, W)
|
|
117
|
+
AND namespaceSubset(P.term, W.term)
|
|
118
|
+
AND (W is actual ur-type content wildcard OR P.process >= W.process)
|
|
119
|
+
sequence / choice / legal all:
|
|
120
|
+
within(ETR(P), W)
|
|
121
|
+
AND every member C satisfies restrictToWildcard(C, memberView(W), interpretation)
|
|
122
|
+
|
|
123
|
+
memberView(W):
|
|
124
|
+
option A: W
|
|
125
|
+
option B: original term/context/max, minimum replaced by zero
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Every nested group receives its current member-view wildcard for its own total comparison.
|
|
129
|
+
Under B, only the outer selected group checks the original positive minimum; nested totals and terminal members compare against `0..original W.max`.
|
|
130
|
+
Declared group/use-site/member bounds never change, and maximum checks are never omitted.
|
|
131
|
+
Under A, every recursive comparison retains the original minimum.
|
|
132
|
+
|
|
133
|
+
The complete preconditions are independently validated/resolved graphs, legal source-local ranges, UPA/EDC and legal `all` placement, cycle-free containment/group edges, and the owning derivation's other constraints.
|
|
134
|
+
Legal element/type recursion stops at the element terminal; this predicate never descends into its value type.
|
|
135
|
+
`inputNodes` must be the actual immutable accepted graph node count supplied by the input owner, rather than a guessed reachable count.
|
|
136
|
+
|
|
137
|
+
The caller supplies the restriction-normalized particle view, its #178 formal ranges, original operands/provenance, and exact namespace constraints.
|
|
138
|
+
The base wildcard's identity distinguishes the actual ur-type exception; neither `##any` spelling nor `lax` alone implies that exception.
|
|
139
|
+
A positive relation result certifies this particle relation only, not complete schema legality, runtime support, finite recursive payload existence or language inclusion.
|
|
140
|
+
|
|
141
|
+
The historical [prototype adapter](../test/research/s06-pw01/predicate.ts) now imports the shared source control flow.
|
|
142
|
+
Its [test adapter](../test/research/s06-pw01/predicate.test.ts) injects accepted main's occurrence arithmetic and namespace relations as the subject under test; all expected outcomes are independently authored in the fixture file.
|
|
143
|
+
Neither file imports the unaccepted #231 assessment code, recalculates effective ranges with a second algorithm, or creates the #181 enumeration harness.
|
|
144
|
+
|
|
145
|
+
The current [TypeScript reference suite](../test/conformance/reference/s06-pw01-contract.test.ts) also invokes the pure prototype with an independent [fixture syntax adapter](../test/conformance/reference/scoped-pw.ts).
|
|
146
|
+
That adapter computes exact ranges and namespace constraints only for these fixed source fixtures, using original source identities and literal expectations.
|
|
147
|
+
It supplies scoped reference assertions; #179 still consumes the single #178 evaluator for production occurrence analysis.
|
|
148
|
+
|
|
149
|
+
The prototype returns `answer {validRestriction, steps}` or `failure {diagnostic, steps}`.
|
|
150
|
+
Malformed operand callbacks report `invalid-schema`; exhaustion reports `resource-limit` with original component/source and no relation result.
|
|
151
|
+
A research consumer uses selected option B; production retains its qualification until #179 implements and validates that contract.
|
|
152
|
+
Budget exhaustion must never become an invalidity answer.
|
|
153
|
+
|
|
154
|
+
## Normalization, emptiness and original operands
|
|
155
|
+
|
|
156
|
+
XSD component mapping removes zero-maximum particles before the particle relation, while their original syntax remains available for diagnostics and reference/cycle checks.
|
|
157
|
+
`zero-group` maps both contents to empty and is checked by the owning complex-content restriction rule, rather than by pretending an absent wildcard has members.
|
|
158
|
+
The fixed fixture adapter takes that route explicitly.
|
|
159
|
+
|
|
160
|
+
A required empty choice is not pointless: its formal `ETR=0..0` and `schemaEmptiable=true` coexist with `nullable=false` and `hasRealization=false`.
|
|
161
|
+
Against an original `0..unbounded` wildcard its universal member check is vacuous and its formal total fits, so both candidate relations pass.
|
|
162
|
+
Against a positive-minimum wildcard both fail the original total check.
|
|
163
|
+
|
|
164
|
+
An epsilon alternative built from a non-disabled optional element remains a real choice alternative.
|
|
165
|
+
`epsilon-choice-failure` therefore retains `ETR=0..1` and fails original minimum 1 under both candidates.
|
|
166
|
+
`nested-epsilon-choice` has outer total `1..2`; its nested `0..1` group fails A and passes B.
|
|
167
|
+
|
|
168
|
+
`removable-epsilon-control` uses an empty sequence plus a single element alternative.
|
|
169
|
+
The published pointless-compositor rules ignore that empty sequence and singleton choice for restriction, dispatching the surviving element through NSCompat.
|
|
170
|
+
Its original `ETR=0..1` and original epsilon payload alternative remain recorded; both candidate relations pass without inferring payload containment.
|
|
171
|
+
|
|
172
|
+
#179 must distinguish original grammar/ranges from any normalized comparison view.
|
|
173
|
+
If normalization retains a group but changes its formal range, obtain that view's range from the single #178 evaluator over a non-mutating comparison graph; do not reuse a stale original range or introduce another occurrence algorithm.
|
|
174
|
+
The fixed probe's retained groups have unchanged ranges; singleton dispatch is independently covered by `removable-epsilon-control` and `zero-disabled-choice`.
|
|
175
|
+
|
|
176
|
+
Named-group definition bounds stay `1..1`; a group reference supplies its own repetition and provenance.
|
|
177
|
+
`shared-group-uses` and `repeated-group-use` cover shared definitions and different use-site multiplicities without expanding finite repetitions.
|
|
178
|
+
Forbidden group cycles remain S05 invalid schemas even beneath zero bounds; element/type recursion stays legal.
|
|
179
|
+
|
|
180
|
+
## Namespace and processing requirements
|
|
181
|
+
|
|
182
|
+
The base wildcard is decoded using its original lexical/effective namespace context, including imports and chameleon inclusion.
|
|
183
|
+
`##other` excludes that effective namespace and the absent namespace; it is never rebound to the restricting schema's namespace.
|
|
184
|
+
Imported `##other` therefore accepts `urn:pw01`, excludes `urn:pw01:base` and excludes unqualified elements in the three imported controls.
|
|
185
|
+
|
|
186
|
+
The chameleon control binds `##other` to its included effective `urn:pw01` namespace and rejects the caller's qualified members.
|
|
187
|
+
Prefixes, declaration identity, source path and the original lexical wildcard are retained beside the decoded namespace constraint.
|
|
188
|
+
No flattened S05 attribute-wildcard processing plan is substituted for these particle operands.
|
|
189
|
+
|
|
190
|
+
NSCompat imposes namespace and occurrence comparisons on an element particle; it does not compare an element's nonexistent `processContents` property.
|
|
191
|
+
Nested wildcard members use NSSubset, with `strict > lax > skip` and the precise ur-type exception.
|
|
192
|
+
Optional members still require namespace and wildcard processing checks; their zero minimum does not excuse a disallowed namespace or weakened mode.
|
|
193
|
+
|
|
194
|
+
The existing [S05 imported/processing evidence](content-model-composition.md#independent-disagreements-and-remaining-obligations) remains separate, particularly attribute-group/local wildcard processing qualifications.
|
|
195
|
+
These PW01 particle controls do not settle those other obligations or change their owners.
|
|
196
|
+
|
|
197
|
+
## Independent fixtures and engine investigation
|
|
198
|
+
|
|
199
|
+
[The fixed fixture expectations](../test/conformance/fixtures/xsd/s06-pw01/expectations.json) separate `literal2004`, `proposed2232`, `primarySchema`, and historical engine answers.
|
|
200
|
+
`primarySchema=unresolved` means the candidate rules differ; neither engine observation fills that field.
|
|
201
|
+
Payload primary entries describe the original particle language independently of whether a validator accepted the derivation declaration.
|
|
202
|
+
|
|
203
|
+
The exact [pinned nested fixture](../test/conformance/fixtures/xsd/s06-pw01/pinned-nested-optional.xsd) was copied from #231 revision `460f5b8379c68ffef79917284e445b5ab046429e`, path `test/conformance/fixtures/xsd/assessment/nested-group-wildcard-cardinality.xsd`.
|
|
204
|
+
Its SHA-256 is `1795040f9bdb7b592f389340262167d56927e9ec4a5735b1955366e305ed93ca`.
|
|
205
|
+
All other fixtures in this family are independently authored research contrasts.
|
|
206
|
+
|
|
207
|
+
Historical XMLSchema 4.2.0 observations accept `direct-optional-member` but reject the otherwise equivalent `nested-optional-member` and the pinned fixture.
|
|
208
|
+
Its [groups.py at v4.2.0](https://github.com/sissaschool/xmlschema/blob/v4.2.0/xmlschema/validators/groups.py) `XsdGroup.is_element_restriction`, lines 685-714, first checks group occurrence compatibility, then rejects a retained `XsdGroup` member at lines 697-698.
|
|
209
|
+
The nested fixture reaches that branch with direct members `[sequence 0..1, element 1..1, element 1..1]`; the rejection is not proof that the published rule requires each leaf minimum 2.
|
|
210
|
+
|
|
211
|
+
That same method bypasses member restriction checking for a zero-minimum terminal at line 699.
|
|
212
|
+
The optional namespace and wildcard-strength controls expose its resulting acceptance of primary-invalid comparisons.
|
|
213
|
+
Empty-group early success also explains acceptance of `empty-required-positive-min` despite its zero formal total.
|
|
214
|
+
|
|
215
|
+
Historical libxml2 2.14.6 observations accept the nested fixture and every ordinary negative particle restriction control here.
|
|
216
|
+
Its [versioned xmlschemas.c](https://github.com/GNOME/libxml2/blob/v2.14.6/xmlschemas.c), lines 16521-16528, leaves the owning derivation particle check as an urgent TODO.
|
|
217
|
+
The separate particle restriction code is guarded by `ENABLE_PARTICLE_RESTRICTION`; `xmlSchemaCheckRCaseNSRecurseCheckCardinality` is additionally under `#if 0` at lines 17026-17079.
|
|
218
|
+
|
|
219
|
+
The fetched libxml2 source SHA-256 is `a74cd24a7ab2835a27abd5a0da7ff9343301aa284d29ef5ecd0b725fd00f433c`.
|
|
220
|
+
The historically inspected XMLSchema `groups.py` SHA-256 is `c49a47da49d3146bbfd692da02e138f084cd50b8d52212e24cd4b63d2de9e063`.
|
|
221
|
+
Source inspection and independently executed negative controls explain the disagreement without promoting either validator to semantic authority.
|
|
222
|
+
|
|
223
|
+
Historical libxml2 2.14.6 rejected the huge exact fixture during `maxOccurs` parsing; the archived reference record calls this `parse-range-limit` rather than a validity verdict.
|
|
224
|
+
The source integer is legal and exact; the TypeScript predicate and accepted #178 arithmetic decide the proposed comparison without repetition expansion.
|
|
225
|
+
Reference engines' finite representations do not redefine the schema's allowed integer domain.
|
|
226
|
+
|
|
227
|
+
### Fixed schema truth table
|
|
228
|
+
|
|
229
|
+
`A/B` are relation outcomes after owning component mapping and restriction normalization.
|
|
230
|
+
`ETR` is the independently specified original formal range; the removable epsilon row deliberately dispatches a surviving element instead.
|
|
231
|
+
Engine columns retain historical schema-load observations, including cases both candidates classify invalid.
|
|
232
|
+
|
|
233
|
+
| Case | Original ETR | A | B | XMLSchema 4.2.0 | libxml2 2.14.6 |
|
|
234
|
+
|---|---|---|---|---|---|
|
|
235
|
+
| `zero-min-control` | 2..3 | true | true | accepted | accepted |
|
|
236
|
+
| `direct-optional-member` | 2..3 | false | true | accepted | accepted |
|
|
237
|
+
| `nested-optional-member` | 2..3 | false | true | rejected | accepted |
|
|
238
|
+
| `literal-positive-control` | 4..4 | true | true | accepted | accepted |
|
|
239
|
+
| `whole-minimum-failure` | 1..2 | false | false | rejected | accepted |
|
|
240
|
+
| `whole-maximum-failure` | 4..4 | false | false | rejected | accepted |
|
|
241
|
+
| `choice-positive-control` | 2..3 | true | true | accepted | accepted |
|
|
242
|
+
| `repeated-choice` | 2..2 | false | true | accepted | accepted |
|
|
243
|
+
| `epsilon-choice-failure` | 0..1 | false | false | rejected | accepted |
|
|
244
|
+
| `nested-epsilon-choice` | 1..2 | false | true | rejected | accepted |
|
|
245
|
+
| `removable-epsilon-control` | 0..1 | true | true | accepted | accepted |
|
|
246
|
+
| `required-wildcard-strength-failure` | 2..2 | false | false | rejected | accepted |
|
|
247
|
+
| `optional-namespace-failure` | 1..2 | false | false | accepted | accepted |
|
|
248
|
+
| `all-optional-member` | 2..3 | false | true | accepted | accepted |
|
|
249
|
+
| `all-positive-control` | 2..2 | true | true | accepted | accepted |
|
|
250
|
+
| `repeated-sequence` | 4..6 | false | true | rejected | accepted |
|
|
251
|
+
| `shared-group-uses` | 4..4 | false | true | rejected | accepted |
|
|
252
|
+
| `count-gap` | 2..4 | false | true | accepted | accepted |
|
|
253
|
+
| `unbounded-control` | 1..unbounded | true | true | rejected | accepted |
|
|
254
|
+
| `unbounded-member-failure` | 1..unbounded | false | false | rejected | accepted |
|
|
255
|
+
| `empty-required-choice` | 0..0 | true | true | accepted | accepted |
|
|
256
|
+
| `empty-required-positive-min` | 0..0 | false | false | accepted | accepted |
|
|
257
|
+
| `dead-sequence` | 2..2 | false | true | accepted | accepted |
|
|
258
|
+
| `zero-disabled-choice` | 1..1 | true | true | rejected | accepted |
|
|
259
|
+
| `zero-group` | 0..0 | true | true | rejected | accepted |
|
|
260
|
+
| `wildcard-strength-valid` | 1..2 | true | true | accepted | accepted |
|
|
261
|
+
| `wildcard-strength-failure` | 1..2 | false | false | accepted | accepted |
|
|
262
|
+
| `namespace-failure` | 2..2 | false | false | rejected | accepted |
|
|
263
|
+
| `recursive-element-control` | 1..2 | true | true | accepted | accepted |
|
|
264
|
+
| `huge-exact-repetition` | 2H..2H | false | true | rejected | parse-range-limit |
|
|
265
|
+
| `imported-other-valid` | 2..2 | true | true | accepted | accepted |
|
|
266
|
+
| `imported-other-base-failure` | 2..2 | false | false | rejected | accepted |
|
|
267
|
+
| `imported-other-absent-failure` | 2..2 | false | false | rejected | accepted |
|
|
268
|
+
| `chameleon-other-failure` | 2..2 | false | false | rejected | accepted |
|
|
269
|
+
| `pinned-nested-optional` | 2..3 | false | true | rejected | accepted |
|
|
270
|
+
| `all-optional-root-failure` | 0..2 | false | false | rejected | accepted |
|
|
271
|
+
| `positive-unbounded-members` | 2..2 | false | true | accepted | accepted |
|
|
272
|
+
| `repeated-group-use` | 4..6 | false | true | rejected | accepted |
|
|
273
|
+
|
|
274
|
+
`H=900719925474099312345678901234567890`; `2H=1801439850948198624691357802469135780`.
|
|
275
|
+
The count-gap fixture admits counts 2 and 4 while rejecting count 3 despite its formal `2..4` range.
|
|
276
|
+
Its repeated sequence also retains order; no interval proves admission of `a,a,b,b`.
|
|
277
|
+
|
|
278
|
+
The eight fixed payload contrasts include the required empty choice, the dead sequence, zero content and recursive element values.
|
|
279
|
+
In the historical observations, both engines reject the isolated required empty choice payload, while XMLSchema accepts the dead sequence payload that the primary language rule and libxml2 reject.
|
|
280
|
+
Historical XMLSchema could not run the two zero-group payload checks because it rejected that schema; those two observations remain explicitly `unavailable-schema`, not skipped passes.
|
|
281
|
+
|
|
282
|
+
### Current reference evidence
|
|
283
|
+
|
|
284
|
+
The accepted [NT-CONT-01 evidence policy](reference-validation.md) runs `libxml2-wasm@0.7.2` with libxml2 2.15.1 as the current primary, scoped TypeScript assertions of selected option B, and pinned historical external observations.
|
|
285
|
+
The current reference suite attempts all 38 original schemas and validates all eight original payloads after their schemas construct.
|
|
286
|
+
The primary classifies the original huge occurrence as `unsupported-capability`; the selected exact predicate still evaluates its original integer without expansion.
|
|
287
|
+
|
|
288
|
+
Current primary results, selected contract answers, historical XMLSchema/libxml2 answers and unqualified capabilities have separate identities in the report.
|
|
289
|
+
The historical source and tables remain hash-verified [non-executable data](../test/conformance/reference/legacy-source-snapshot.json).
|
|
290
|
+
Fresh second-engine full-schema construction, including validity of the original huge schema, remains unqualified under the accepted policy.
|
|
291
|
+
|
|
292
|
+
## Bounded implementation and completeness
|
|
293
|
+
|
|
294
|
+
For either selected candidate, an iterative postorder traversal checks every retained member and uses supplied exact formal ranges.
|
|
295
|
+
Memoization keys are particle use identity, original base wildcard identity and member-view minimum; there are at most two minimum views per base pair.
|
|
296
|
+
The prototype fixes one original base per invocation and retains that identity implicitly; #179 must include it explicitly in any cross-call cache.
|
|
297
|
+
|
|
298
|
+
The prevalidated group/containment DAG is finite and acyclic, so each pair finishes after finitely many outgoing members.
|
|
299
|
+
Shared groups reuse established pair results; element/type recursion ends at a terminal.
|
|
300
|
+
Given sufficient resources this procedure exhaustively decides the stated relation for arbitrary legal sequence/choice/all operands, finite or unbounded counts, empty required groups and original namespace contexts.
|
|
301
|
+
|
|
302
|
+
Every frame push, memo insertion, member visit and exact arithmetic digit comparison is charged before allocation or operation.
|
|
303
|
+
The injected namespace adapter charges character scans, conservative membership work and shared-helper set copying before executing those operations.
|
|
304
|
+
The prototype consumes supplied views; bounded normalization/indexing/copying remains a separately charged #179 integration obligation, not hidden prototype work.
|
|
305
|
+
|
|
306
|
+
Inclusive defaults remain independently applied `100,000` input nodes and `1,000,000` work steps.
|
|
307
|
+
Exhaustion produces no relation answer and never proves invalidity, even when one candidate finished earlier.
|
|
308
|
+
S03/S04 loading/catalog limits, conservative cyclic depth, D09 owner boundaries, later matcher/payload/output budgets and #208 production qualification remain unchanged.
|
|
309
|
+
|
|
310
|
+
| Measurement | Result | Charged work | Observed elapsed |
|
|
311
|
+
|---|---|---|---|
|
|
312
|
+
| Exact huge fixture, 10 nodes / 726 allowed steps | B relation true | 726 | 0.041 ms |
|
|
313
|
+
| Same fixture, 725 allowed steps | resource-limit | 725 | 0.060 ms |
|
|
314
|
+
| Same fixture, 9 allowed nodes | resource-limit before traversal | 0 | 0.131 ms |
|
|
315
|
+
| Synthetic source array, 100,000 nodes | B relation true | 726 | 0.087 ms |
|
|
316
|
+
| Synthetic source array, 100,001 nodes | resource-limit before traversal | 0 | 0.096 ms |
|
|
317
|
+
| Synthetic padded callback at default work limit | B relation true | 1,000,000 | 1.700 ms |
|
|
318
|
+
| Supplied 500,000-digit operand beyond default work | resource-limit | 1,000,000 | 10.487 ms |
|
|
319
|
+
|
|
320
|
+
These are narrow development measurements, not production capacity claims.
|
|
321
|
+
The synthetic node and padded callback rows test the prototype's supplied-count/work contract; their input construction is outside the measured predicate.
|
|
322
|
+
The exact huge fixture is a useful nontrivial successful decision, unlike a probe that returns resource-limit for every difficult operand.
|
|
323
|
+
|
|
324
|
+
## Reproduction and handoff
|
|
325
|
+
|
|
326
|
+
Use Node 24 as the supported floor and Node 26 for current-line qualification from a fresh delivery checkout.
|
|
327
|
+
The current [reference setup and evidence contract](reference-validation.md) uses normal `npm ci`; both reference commands discover the strict TypeScript suite.
|
|
328
|
+
The committed literal fixtures and historical source snapshot establish the fixed results without an ignored log.
|
|
329
|
+
|
|
330
|
+
```bash
|
|
331
|
+
npm ci
|
|
332
|
+
npm run typecheck:research
|
|
333
|
+
npm run typecheck:reference
|
|
334
|
+
npx vitest run test/conformance/reference/s06-pw01-contract.test.ts test/research/s06-pw01
|
|
335
|
+
npm run test:reference:full
|
|
336
|
+
npm run ci
|
|
337
|
+
npm run test:conformance
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
At the historical leaf checkpoint, scoped TypeScript passed and focused Vitest passed 40 tests in one file.
|
|
341
|
+
The retired reference suite passed two methods with 76 historical schema-load observations and 16 historical payload observations; two are explicit unavailable-schema results.
|
|
342
|
+
The current TypeScript suite preserves those two method families and every historical answer while adding current primary and independent scoped checks.
|
|
343
|
+
|
|
344
|
+
The historical leaf environment used Node 24.19.0, npm 11.9.0, TypeScript 6.0.3, Vitest 5.0.3, Python 3.12.14, XMLSchema 4.2.0, lxml 6.1.0 and libxml2 2.14.6.
|
|
345
|
+
The exact final combined commands, versions, result counts and reviewer revision belong to the [joint execution record](content-model-s06-research-handoff.md).
|
|
346
|
+
IDE inspections were unavailable; terminal TypeScript, fixture/reference and repository documentation checks supply local verification.
|
|
347
|
+
|
|
348
|
+
The delivered research does not claim #179 production guard removal, complete S06 acceptance, #180 matching, #181 enumeration, #184 payload enforcement or downstream activation.
|
|
349
|
+
To resume the PW01 part of #179 after local acceptance, implement selected B in the existing assessment path, preserve original/normalized ranges, and requalify the affected selected-operation plans.
|
|
350
|
+
The final issue handoff records independent semantic review, exact delivered revisions and normal delivery acceptance; sibling or parent closure is not a local prerequisite.
|