@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,425 @@
|
|
|
1
|
+
# S06 AU01 Repeated Attribute Uses
|
|
2
|
+
|
|
3
|
+
Research rule tables, original-operand interfaces and independently reproducible evidence for #233. See the root [README](../README.md).
|
|
4
|
+
|
|
5
|
+
## Disposition and delivery boundary
|
|
6
|
+
|
|
7
|
+
The #269 recovery implementation adds `src/compiler/schemaAttributeUses.ts::assessSourceAttributeUses` for actual source contexts.
|
|
8
|
+
It retains original AU/declaration identities, checked typed own/declaration operands, all fixed predicates and a C1 absent plan, using the single shared scalar/type/declaration owners.
|
|
9
|
+
Its result carries outstanding aggregate type and source syntax obligations; hypothetical contexts return unresolved at the source-construction boundary.
|
|
10
|
+
|
|
11
|
+
Source replacement checks every matching original base use; omitted uses preserve their identities and direct prohibitions remain distinct from group-internal prohibitions.
|
|
12
|
+
Checked declaration receipts retain global declaration evidence even when a prohibited reference contributes no AU.
|
|
13
|
+
Conflicting optional augmentation candidates produce a plan-level conflict, not an invented schema-invalidity rule.
|
|
14
|
+
|
|
15
|
+
The companion `assessRawAttributeUses` consumes explicit complete abstract properties under domain B, using the same original operand and C1 machinery.
|
|
16
|
+
Literal extension implements `cos-ct-extends` 1.2's declaration QName/type-identity matching and 1.3's normative base-to-derived wildcard subset; neither source identity union nor an extra processing-strength comparison is imposed.
|
|
17
|
+
Literal restriction may omit an optional AU and must cover every required base name with a required use.
|
|
18
|
+
An explicit source default on a required use is source-invalid; that XML mapping condition is not invented for a source-independent abstract AU.
|
|
19
|
+
|
|
20
|
+
The [accepted raw matching interpretation](content-model-s06-re-01.md#selected-raw-matching-implicit-order-and-generated-scalar-properties) selects one compatible base use for a same-name raw restriction match.
|
|
21
|
+
Required-base coverage, requiredness and wildcard obligations remain independent; source replacement retains universal C1 matching.
|
|
22
|
+
The former `raw-au-match-quantifier` qualification is resolved by that selected policy and its accepted local implementation, without selecting the rejected all-final/all-base alternative.
|
|
23
|
+
Raw violations return `candidate-rejected`, with their local rule and original component/source, and cannot become actual-schema invalidity or a universal negative.
|
|
24
|
+
Raw receipts retain aggregate and property-correspondence prerequisites, so their existence is not a complete candidate certificate.
|
|
25
|
+
|
|
26
|
+
The shared `wildcardAlgebra.ts` supplies mathematical union/intersection, membership, abstract namespace-property expressibility and processing strength.
|
|
27
|
+
`namespaceSubset` implements dated `cos-ns-subset`; `namespaceSetSubset` is mathematical inclusion and must not substitute for that rule.
|
|
28
|
+
In particular, unlike non-any negated values fail the XSD relation even when extensional inclusion holds; an empty abstract finite set does not imply a particular XML lexical representation.
|
|
29
|
+
|
|
30
|
+
Composition uses the same algebra with its stage budget, while semantic consumers pass the shared request charge.
|
|
31
|
+
The actual ur-type identity exception belongs to its invoking rule and cannot be inferred from `##any` or `lax` spelling.
|
|
32
|
+
The [independent correction](https://github.com/TechSpokes/typescript-wsdl-client/issues/269#issuecomment-6111729641) and source AU tests preserve this boundary.
|
|
33
|
+
|
|
34
|
+
The maintainer selected C1 runtime/default interpretation and universal checks for source-declared restriction replacements. The primary-source gaps below explain those explicit project decisions; exact-revision review, combined delivery checks and #179 production implementation remain separate gates.
|
|
35
|
+
|
|
36
|
+
The base requiring global integer `a`, fixed to `1`, and the extension repeating it as optional without a constraint retains both original AUs by component mapping. Under selected C1, absence is invalid and present input must satisfy the inherited fixed value `1`; the optional repeated use does not weaken either obligation.
|
|
37
|
+
|
|
38
|
+
The coordinator integrates this main-based research leaf with #232, assigns substantive independent review at its exact revision and records aggregate checks. #179 owns eventual schema assessment; #184 owns later scalar payload enforcement; RE01 consumes the predicates below conditionally until the semantic gate is accepted.
|
|
39
|
+
|
|
40
|
+
Original research starting main is `5876065b00d4eeb6d2324eaa63ff9b70e2279198`. The inspected, unaccepted #231 draft is `460f5b8379c68ffef79917284e445b5ab046429e`, tree `56830b28d1006b019918a364aa62f1ed9d7d8817`; its implementation is neither imported nor merged into this research runtime.
|
|
41
|
+
|
|
42
|
+
### Recorded project selections
|
|
43
|
+
|
|
44
|
+
The maintainer [selected C1 on October 10, 2026](https://github.com/TechSpokes/typescript-wsdl-client/issues/233#issuecomment-6095916709): preserve every surviving AU, conjoin present fixed predicates, and use one consistent absent augmentation; conflicting absent candidates reject that instance without adding a schema-invalidity rule.
|
|
45
|
+
|
|
46
|
+
The separate [restriction selection](https://github.com/TechSpokes/typescript-wsdl-client/issues/233#issuecomment-6095977338) requires every same-QName original base AU to pass for a source-declared local/group replacement. Omitted attributes retain their inherited original AU identities and obligations; they are not fabricated local replacements or subjected to the unselected final-AU/all-base alternative below.
|
|
47
|
+
|
|
48
|
+
These choices resolve the project interpretation questions. Final substantive review assesses the complete selected contract and scoped algorithms at exact revisions; research tests alone still do not certify #179 production support or close later acceptance gates.
|
|
49
|
+
|
|
50
|
+
The maintainer [accepted NT-CONT-01 for #239](https://github.com/TechSpokes/typescript-wsdl-client/issues/239#issuecomment-6098237195): the Node tooling uses one live libxml2 engine, independent scoped TypeScript checks and pinned historical xmlschema observations. The [reference-validation contract](reference-validation.md) distinguishes those evidence kinds and the remaining unqualified full-schema and PSVI capabilities; this tooling acceptance does not discharge RE01 or activate production assessment.
|
|
51
|
+
|
|
52
|
+
## Authority and qualification
|
|
53
|
+
|
|
54
|
+
The dated [XSD 1.0 structures second edition](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/) supplies the rules below. The complete original XML was inspected through the [pinned source mirror](https://github.com/jacoelho/xsd/blob/142f25ee187e17f041af87b6bfcfc82385254520/docs/spec/xml/structures.xml), ignoring editorial `diff="del"` text; its SHA-256 is `e496af408b14853e6169ac7c1fca09d55a81bd73771758ad6be020960e1317ba`.
|
|
55
|
+
|
|
56
|
+
The corresponding [datatypes source](https://github.com/jacoelho/xsd/blob/142f25ee187e17f041af87b6bfcfc82385254520/docs/spec/xml/datatypes.xml) has SHA-256 `430f010df8ed077a4ed11d9d5812ea5e5d62ba67e715f1bbeeaa8ee1765d84c7`. Original source hashes agree with the immutable #231 evidence record; copied assessment code is unnecessary.
|
|
57
|
+
|
|
58
|
+
| Clause | Exact phrase or applicable rule | Consequence |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| [Complex-type mapping, 3.4.2](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#declare-type) | “A union of sets of attribute uses” | Extension retains base and local/group AU sets |
|
|
61
|
+
| [ct-props-correct 4](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#ct-props-correct) | “Two distinct attribute declarations” | Same declaration is distinct from same QName |
|
|
62
|
+
| [ag-props-correct 2](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#ag-props-correct) | Distinct AU members cannot share a declaration QName | Stronger group rule |
|
|
63
|
+
| [cos-ct-extends 1.2](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cos-ct-extends) | Base name, namespace and type must survive | Not a value/default selection rule |
|
|
64
|
+
| [cvc-complex-type 3.1](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cvc-complex-type) | “that attribute use” | Multiple matching uses are not quantified |
|
|
65
|
+
| [cvc-complex-type 4](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cvc-complex-type) | Each required use needs an attribute match | Any required surviving AU requires presence |
|
|
66
|
+
| [cvc-au](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#cvc-au) | “canonical lexical representation” | Literal text differs from adopted value interpretation |
|
|
67
|
+
| [derivation-ok-restriction 2.1.3](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#derivation-ok-restriction) | “same string” | Do not misquote this as value equality |
|
|
68
|
+
| [au-props-correct 2](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#au-props-correct) | Own constraint must agree with declaration fixed value | One AU can already be invalid |
|
|
69
|
+
| [sic-attrDefault](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#sic-attrDefault) | Each eligible absent optional AU adds an attribute item | Differing augmentations lack one defined value |
|
|
70
|
+
|
|
71
|
+
The [published second-edition errata](https://www.w3.org/2004/03/xmlschema-errata), read on October 10, 2026, contain E1-56 and no datatype erratum. E1-56 revises PSVI/default and union-member contributions; it adds neither a uniqueness constraint for complex-type AU members nor a rule selecting among matching uses or competing attribute defaults.
|
|
72
|
+
|
|
73
|
+
The source mapping gives each default/fixed component an actual typed value. [ADR-003 D03/D04](decisions/003-content-model-contracts.md#equivalence-and-normalization-s02-d03) independently adopts fixed checks by scalar value, original QName context and declaration-order union member assessment; that accepted project interpretation must not be presented as a verbatim rewrite of `cvc-au` or the restriction rule.
|
|
74
|
+
|
|
75
|
+
No adopted erratum located in this investigation closes the repeated-use gap. Reference rejection, XSD 1.1 rules and hypothetical language inclusion are not substitutes for an XSD 1.0 interpretation decision.
|
|
76
|
+
|
|
77
|
+
## Declaration identity, use identity and source mapping
|
|
78
|
+
|
|
79
|
+
Global declaration identity is namespace, local name and symbol role; local declarations retain containing-component/source-path identity. A QName is an instance matching key, not an identity for declarations or AU components.
|
|
80
|
+
|
|
81
|
+
Each source `xs:attribute` with an admitted use creates its own AU, even when it references an existing global declaration. Reusing a group references its existing AU members; set union is idempotent only for those existing member identities, not for distinct source AUs with equal properties.
|
|
82
|
+
|
|
83
|
+
| Construction | Component result | Primary identity result |
|
|
84
|
+
|---|---|---|
|
|
85
|
+
| Direct repeated same-global references in a complex type | Two AUs, one declaration | Not forbidden by `ct-props-correct 4` |
|
|
86
|
+
| Base and extension references to same global | Both AUs survive | Differing constraints need AU01 interpretation |
|
|
87
|
+
| Repeated references to the same group | Same member identities once | Legal set union |
|
|
88
|
+
| Same group reached through nested paths | Same member identities once | Legal set union if other rules pass |
|
|
89
|
+
| Direct distinct AUs of same global in one group | Two distinct members | Invalid `ag-props-correct 2` |
|
|
90
|
+
| Group plus direct distinct AU of same QName inside a group | Two distinct members | Invalid `ag-props-correct 2` |
|
|
91
|
+
| Distinct groups with distinct AUs combined inside a group | Distinct members | Invalid when their QNames match |
|
|
92
|
+
| Distinct groups combined directly in a complex type | Distinct AUs | Same declaration allowed; distinct declarations invalid |
|
|
93
|
+
| Same-name local declarations in one complex type | Distinct declarations | Invalid `ct-props-correct 4` |
|
|
94
|
+
| Matching local restriction declaration replacing base | New AU and declaration | Check restriction type/value rules independently |
|
|
95
|
+
| Multiple ID-derived declarations in a complex type | Distinct declarations | Invalid `ct-props-correct 5` |
|
|
96
|
+
| Multiple ID-derived AU members in a group | Distinct AUs | Invalid `ag-props-correct 3` |
|
|
97
|
+
|
|
98
|
+
These identity results concern component constraints; they do not certify unrelated scalar, derivation or capability rules. Reachable ID-derived runtime rules retain the approved profile exclusion; schema-only identity checks still apply.
|
|
99
|
+
|
|
100
|
+
### Prohibited and omitted controls
|
|
101
|
+
|
|
102
|
+
[Attribute mapping 3.2.2](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/#declare-attribute) maps `use="prohibited"` to no AU. Representation controls such as mutually exclusive `default`/`fixed`, `name`/`ref` and invalid lexical syntax still apply; absent use operands are not invented scalar components.
|
|
103
|
+
|
|
104
|
+
An explicit global declaration remains a schema operand even if a prohibited reference contributes no AU. Its declaration/type/fixed legality is assessed from its own source context, while a prohibited local declaration contributes no declaration or runtime scalar obligation.
|
|
105
|
+
|
|
106
|
+
| Source control | Effective result | Classification |
|
|
107
|
+
|---|---|---|
|
|
108
|
+
| Extension prohibition matching inherited required/optional use | Inherited use remains | Prohibition adds no AU; cannot delete base |
|
|
109
|
+
| Direct restriction prohibition matching optional base use | Matching base QName removed | Legal if remaining restriction rules pass |
|
|
110
|
+
| Direct restriction prohibition matching required base use | Required match missing | Invalid restriction |
|
|
111
|
+
| Prohibition inside an attribute group used by restriction | No group AU | Inherited uses remain |
|
|
112
|
+
| Omitted attribute in restriction | Base AUs inherited | Not a prohibition |
|
|
113
|
+
| Explicit `default` on required source AU | Representation violation | Invalid `src-attribute 2` |
|
|
114
|
+
| Required reference to globally defaulted declaration, no own default | Required AU; declaration default retained | Source default/use prohibition does not apply |
|
|
115
|
+
|
|
116
|
+
No tombstone becomes a wildcard QName exclusion. A retained wildcard may admit a QName with no explicit AU; wildcard rules and processing are assessed separately by the existing [S05 composition](content-model-composition.md) boundary.
|
|
117
|
+
|
|
118
|
+
## Complete conditional constraint table
|
|
119
|
+
|
|
120
|
+
This table gives selected C1's value predicates while keeping the primary-source qualification explicit. Each cell gives present-value requirement and absent result for two optional AUs of the same global declaration; `T` is the declared type's admitted value space, `D(v)` an effective default, `F(v)` an effective fixed value and `A(v)` a single augmentation to `v`.
|
|
121
|
+
|
|
122
|
+
`E` means conflicting augmentation candidates: selected C1 rejects that absent instance as `invalid-value`; it is not an invalid-schema proof. `empty` means no present value satisfies the fixed conjunction; an empty accepted-instance set alone does not violate a stated schema component constraint.
|
|
123
|
+
|
|
124
|
+
| Base / local | N | D(1) | D(2) | F(1) | F(2) |
|
|
125
|
+
|---|---|---|---|---|---|
|
|
126
|
+
| N | T / absent | T / A(1) | T / A(2) | 1 / A(1) | 2 / A(2) |
|
|
127
|
+
| D(1) | T / A(1) | T / A(1) | T / E | 1 / A(1) | 2 / E |
|
|
128
|
+
| D(2) | T / A(2) | T / E | T / A(2) | 1 / E | 2 / A(2) |
|
|
129
|
+
| F(1) | 1 / A(1) | 1 / A(1) | 1 / E | 1 / A(1) | empty / E |
|
|
130
|
+
| F(2) | 2 / A(2) | 2 / E | 2 / A(2) | empty / E | 2 / A(2) |
|
|
131
|
+
|
|
132
|
+
Rows and columns deliberately cover both source orderings. Equality classes use independent original-type value equivalence, so integer `+01` belongs to the `1` class while string `+01` does not become integer `1`.
|
|
133
|
+
|
|
134
|
+
| Requiredness combination | Presence rule | Present checks under C | Absent rule |
|
|
135
|
+
|---|---|---|---|
|
|
136
|
+
| Optional + optional | Presence optional | Every fixed AU | Table above |
|
|
137
|
+
| Required + optional | Presence required | Every fixed AU | Reject missing required attribute |
|
|
138
|
+
| Optional + required | Presence required | Every fixed AU | Reject missing required attribute |
|
|
139
|
+
| Required + required | Presence required | Every fixed AU | Reject missing required attribute |
|
|
140
|
+
| Required AU with explicit default | Not an admitted component input | Source invalid | Source invalid |
|
|
141
|
+
|
|
142
|
+
Requiredness is independently established by `cvc-complex-type 4`; defaults cannot satisfy missing required input by repair. When a required AU coexists with an optional default/fixed AU, the absent input remains invalid regardless of proposed PSVI augmentation order.
|
|
143
|
+
|
|
144
|
+
For any number of same-declaration AUs, selected C1 uses requiredness OR, intersection of fixed-value predicates, and the set of eligible optional augmentation values. Zero candidates preserves absence; one value-equivalence class creates one augmentation; multiple classes produce `E`; this generalization terminates without enumerating possible payload values.
|
|
145
|
+
|
|
146
|
+
The table assumes individual source operands are valid and declaration-fixed compatibility passes. A globally fixed declaration plus an explicit conflicting fixed value or a default is independently invalid under `au-props-correct 2`; conflicting fixed values on two AUs of a declaration with no global fixed constraint do not have that proof.
|
|
147
|
+
|
|
148
|
+
Own AU and declaration constraints remain separate. Effective fallback is the own constraint when present, otherwise the declaration constraint as defined in `derivation-ok-restriction`; a global default is not a fabricated own default on a required source AU.
|
|
149
|
+
|
|
150
|
+
### Alternatives and concrete consequences
|
|
151
|
+
|
|
152
|
+
| Alternative | Present same-QName rule | Absent/default rule | Compatibility effect |
|
|
153
|
+
|---|---|---|---|
|
|
154
|
+
| C: retain all-use conjunction | Every fixed surviving AU must pass | One equivalent augmentation; competing values gated | Preserves inherited fixed requirements |
|
|
155
|
+
| S: select one matching AU | Some matching AU governs `cvc-au` | Specify selection and augmentation separately | Optional unconstrained AU can admit `2` beside inherited fixed `1` |
|
|
156
|
+
| L: replace with local AU | Local required/type/fixed only | Local augmentation | Can remove inherited requiredness; conflicts with set union |
|
|
157
|
+
| U: reject all distinct duplicate AUs | No payload admitted | No augmentation | Rejects cases not banned by CT declaration identity |
|
|
158
|
+
|
|
159
|
+
S's set-valued present interpretation gives `T` whenever any matching AU has no fixed constraint, and the union of fixed singleton values otherwise. Requiredness still uses all surviving required AUs; an additional order/identity-based selection would give a different behavior and is not defined by the primary set model.
|
|
160
|
+
|
|
161
|
+
S gives absent optional attributes every candidate augmentation value unless a further rule chooses one; choosing the first or last source operand is observable in normalized output. Even C's coalescing of equal candidate defaults needs an explicit single-PSVI-item interpretation when distinct eligible AUs would each add an attribute item.
|
|
162
|
+
|
|
163
|
+
L is not a faithful interpretation of the extension mapping or requiredness rule. U adds a uniqueness rule the complex-type constraint does not state and would be a new permanent exclusion; neither is authorized by this research scope.
|
|
164
|
+
|
|
165
|
+
The research recommendation was to retain all original AUs and complete C with an explicit absent-instance rule, without inferring schema invalidity from unsatisfiable present fixed constraints. The maintainer selected that completion as C1. The primary-source gap remains visible; the recorded project interpretation and its substantive review, rather than research evidence alone, authorize removing the corresponding qualification.
|
|
166
|
+
|
|
167
|
+
### Selected total interpretation C1
|
|
168
|
+
|
|
169
|
+
C1 completes C's augmentation rule: required absence is invalid; optional absence with no augmentation candidates is accepted unchanged; optional absence with one equivalent candidate class is accepted with one augmented attribute; optional absence with different candidate classes is rejected as `invalid-value`. Present input requires the original datatype and every fixed predicate, while defaults impose no present-value constraint.
|
|
170
|
+
|
|
171
|
+
This is the selected tuple `(union by AU identity, requiredness OR, all-fixed present intersection, one equivalent absent augmentation, reject conflicting absent augmentation)`. It never rejects a schema merely because fixed predicates have no common value: two optional conflicting fixed AUs can therefore have an empty accepted-instance language under C1, while no stated component rule has proved the schema invalid.
|
|
172
|
+
|
|
173
|
+
Conflicting defaults alone under C1 admit every otherwise valid present value and reject only the unaugmentable absent input. Conflicting default/fixed values admit the fixed present value and reject absence; requiredness independently rejects every missing input, so this rule is total for all table entries and both orderings.
|
|
174
|
+
|
|
175
|
+
C1's rejection of conflicting absent augmentation is an explicitly selected project interpretation, not text supplied by an adopted XSD 1.0 erratum. The executable summary retains its historical field name `proposed_C1_absent`; its `augmentation-conflict` field records why the selected instance rejection applies without substituting a primary-source invalid-schema proof.
|
|
176
|
+
|
|
177
|
+
A concrete total S1 alternative retains requiredness OR but chooses the most-local source AU for present fixed checking and the most-local optional constrained AU for absent augmentation, with stable declared source order resolving same-level duplicates. S1 accepts absence with differing defaults using the selected value and can admit present `2` beside inherited fixed `1`; source-order precedence is an explicitly chosen interpretation, not a property of an unordered set.
|
|
178
|
+
|
|
179
|
+
The maintainer selected C1 because it retains inherited checks and gives deterministic single-attribute normalization without a new schema-invalidity condition. S1 and literal final-AU restriction matching remain documented alternatives, not selected behavior; #179 removes its qualifications only after the selected combined contract and owning implementation are reviewed.
|
|
180
|
+
|
|
181
|
+
## Original-type scalar predicate
|
|
182
|
+
|
|
183
|
+
`SameValue(typeA, lexicalA, contextA, typeB, lexicalB, contextB, budget)` first validates each operand in its original scalar plan, then compares exact typed values. It returns equal/distinct, an invalid-schema operand error, an unsupported semantic qualification, or resource-limit; a failed parse or exhausted calendar computation cannot become ordinary inequality.
|
|
184
|
+
|
|
185
|
+
| Contrast | Independently expected equality | Retained context |
|
|
186
|
+
|---|---|---|
|
|
187
|
+
| Integer `1`, `+0001` | Equal | Exact decimal value |
|
|
188
|
+
| Integers `9007199254740993`, `9007199254740992` | Distinct | No binary64 rounding |
|
|
189
|
+
| String ` a `, `a` | Distinct | Preserve whitespace |
|
|
190
|
+
| Token XML whitespace aliases of `a b` | Equal | XML whitespace normalization |
|
|
191
|
+
| QName `p:item`, `q:item` with same namespace | Equal | Each original binding |
|
|
192
|
+
| Same QName spelling with different namespace bindings | Distinct | Source-local rebinding |
|
|
193
|
+
| Unprefixed QName with default namespace, prefixed alias | Equal | QName default namespace applies |
|
|
194
|
+
| Integer lists `+01 2`, `1 02` | Equal | Ordered item values |
|
|
195
|
+
| Integer lists `1 2`, `2 1` | Distinct | List order |
|
|
196
|
+
| Union(integer,string) `+01`, integer `1` | Equal | First admitted member |
|
|
197
|
+
| Union(string,integer) `+01`, integer `1` | Distinct | String member identity/value |
|
|
198
|
+
| Union(string,integer) ` a `, string `a` | Distinct | Selected member preserves whitespace |
|
|
199
|
+
| Pattern-restricted fixed string `01`, replacement `1` | No rewrite authorized | Admitted lexical witness |
|
|
200
|
+
|
|
201
|
+
[XSD 1.0 whiteSpace](https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#rf-whiteSpace) does not apply directly to union types; the selected member controls normalization. Passing raw original lexical data independently to each declared member preserves that rule; applying union-wide collapse would change the last union contrast.
|
|
202
|
+
|
|
203
|
+
The narrow probe implements exact integer/string/token/QName and flat list/union contrasts only; it is not a complete datatype or facet engine. Datatype derivation remains an independent predicate: equal values of unrelated types do not prove a legal attribute restriction.
|
|
204
|
+
|
|
205
|
+
The [DT01 shared scalar interface](content-model-s06-dt-01.md#shared-scalar-interface) supplies the selected candidate A calendar predicate. Explicit-zone aliases require exact normalized instants; absent-zone values retain timezone-presence semantics; duration equality compares exact signed months and seconds separately from anchor-based ordering, so `P1Y=P12M`, `P1D=PT24H` and `P1M!=P30D`.
|
|
206
|
+
|
|
207
|
+
Candidate A uses the lexical signed-year leap test with explicit skip-zero rollover, second-60 overflow normalization and normalized recurring-time clock comparison. The maintainer [selected those repairs](https://github.com/TechSpokes/typescript-wsdl-client/issues/236#issuecomment-6095933213); the selected interface is pinned at DT01 leaf `899106a3b7b0321043f4a570184de8b8408a76a5`, tree `db83ef379c15678be44c79526b35ed1a530e1a46`. Exact final dependent review confirmation is retained by the coordinator's joint ledger.
|
|
208
|
+
|
|
209
|
+
AU comparisons assess each operand in its original type/source/namespace/whitespace/facet context and then call that one reviewed DT predicate. No alternate calendar implementation or raw-string fallback exists here; before its exact semantic review gate passes the dependent predicate remains `unresolved`, not ordinary inequality or invalid-schema.
|
|
210
|
+
|
|
211
|
+
## Pure assessment and retained-constraint contract
|
|
212
|
+
|
|
213
|
+
Inputs come only from immutable canonical/resolved/composed graphs through `prepareResolvedCompilationInput` and accepted #178 analysis. The pure AU stage performs no network I/O, recompilation, payload validation, occurrence analysis or persisted-format mutation.
|
|
214
|
+
|
|
215
|
+
Each original AU record retains its component ID, owner ID, declaration ID, QName, original scalar type reference, required boolean, own constraint and declaration constraint separately. Every operand retains lexical text, source path/digest/location, namespace bindings, whitespace/facet layer and selected list/union type context; the effective constraint retains its origin.
|
|
216
|
+
|
|
217
|
+
Outputs separate `schemaOperands`, `effectiveRuntimeUses`, identity/derivation diagnostics, and the conditional repeated-use qualification. A matching restriction removes replaced base uses from runtime closure while preserving them as original schema/derivation operands; conjoining removed base defaults into the new runtime plan would be wrong.
|
|
218
|
+
|
|
219
|
+
C1 augmentation emits exactly one assessed attribute with its original global declaration/type, expanded QName, every contributing original AU and one already-admitted lexical witness with its original namespace context. Equivalent candidates authorize a single typed value; they do not authorize replacing a patterned lexical witness with canonical text or copying a QName prefix into a destination without its binding.
|
|
220
|
+
|
|
221
|
+
The narrow `conditional_c1_augmentation` plan borrows those immutable original records and keeps the typed value separate from its witness. Tests retain `p:item` and its original binding while preserving contributors with the equivalent `q:item`, and preserve integer `+01` rather than rewriting it to `1`; #184/#188 own facet-complete validation and namespace-safe encoding.
|
|
222
|
+
|
|
223
|
+
The #231 `AssessedAttribute.constraints` entry containing only owner/use/value relies on the outer attribute type and cannot express this full independent contract after replacing operands. #179 should retain original AU references or add the original declaration/type and own-versus-declaration constraint origin per entry, instead of synthesizing a merged fixed/default operand.
|
|
224
|
+
|
|
225
|
+
This is an internal assessed-plan change only; format 2 already preserves original declared graph data. Any later persisted-plan/version change remains an explicit #185/#186 review, not a side effect of AU research.
|
|
226
|
+
|
|
227
|
+
### Extension and restriction predicates for RE01
|
|
228
|
+
|
|
229
|
+
`ExtensionAttributes(B, local)` unions original AU identities and preserves every base AU; it checks complex-type declaration uniqueness, individual operand legality, final/type controls and wildcards independently. It does not decide differing same-global present/default semantics by selecting a last use.
|
|
230
|
+
|
|
231
|
+
`RestrictionAttributes(B, local)` performs the XSD replacement/omission/prohibition mapping first. For one matching base AU it requires requiredness preservation, valid scalar type derivation from the original base type, and the effective fixed constraint condition under the accepted S02 typed-value interpretation.
|
|
232
|
+
|
|
233
|
+
For a source-declared replacement AU, the selected predicate applies those checks against every matched original base AU and retains every original type/fixed operand. Requiredness cannot choose only an optional base member; fixed `1` cannot choose only the matching fixed `1` member when another base member fixes `2`; an attribute wildcard cannot bypass those named matches.
|
|
234
|
+
|
|
235
|
+
For an omitted QName, the original base AU identities are inherited unchanged with all C1 runtime obligations; no local replacement is invented. A prohibited member inside a group contributes no AU and therefore leaves this inheritance branch intact; direct prohibition masks inherited names and must still leave every required base name represented by an effective required AU.
|
|
236
|
+
|
|
237
|
+
The distinction uses source contribution provenance, not property equality or a convenient reclassification of AU identities. Even reusing a base group's original AU ID as an explicit local group contribution is a source replacement and invokes all matched base checks; omission is the branch that inherits without replacement.
|
|
238
|
+
|
|
239
|
+
### Complete selected matching table and unselected literal alternative
|
|
240
|
+
|
|
241
|
+
The following outcomes assume independently valid individual scalar operands and the other existing schema gates. A restriction failure here is a failure of the selected derivation predicate, not a proof that its base schema is invalid merely because its instance language is empty.
|
|
242
|
+
|
|
243
|
+
| Original base uses | Restriction source | Selected replacement-only | Literal final-AU/all-base |
|
|
244
|
+
|---|---|---|---|
|
|
245
|
+
| Required + optional, either order | Optional local replacement | Invalid requiredness | Invalid requiredness |
|
|
246
|
+
| Required + optional, either order | Required local replacement | Pass | Pass |
|
|
247
|
+
| Fixed 1 + fixed 2, either order | Local fixed 1 | Invalid fixed retention | Invalid fixed retention |
|
|
248
|
+
| Fixed 1 + equivalent fixed +01 | Local fixed 1 | Pass typed equality | Pass typed equality |
|
|
249
|
+
| Fixed 1 + fixed 2 | Omitted QName | Preserve both originals | Invalid pairwise fixed retention |
|
|
250
|
+
| Required + optional | Omitted QName | Preserve both originals | Invalid optional/required pair |
|
|
251
|
+
| Optional fixed 1 + optional fixed 2 | Direct prohibition | Both removed; pass | Both removed; pass |
|
|
252
|
+
| Required + optional | Direct prohibition without replacement | Invalid missing required name | Invalid missing required name |
|
|
253
|
+
| Fixed 1 + fixed 2 | Group-internal prohibition | Preserve both originals | Invalid pairwise fixed retention |
|
|
254
|
+
| Default 1 + default 2 | Local default 3 | Pass; defaults may change | Pass |
|
|
255
|
+
| Fixed 1 + unconstrained | Local fixed 1 | Pass | Pass |
|
|
256
|
+
| Fixed 1 + unconstrained | Unfixed local replacement | Invalid fixed retention | Invalid fixed retention |
|
|
257
|
+
| Original string type | Local token type | Pass original-type derivation | Pass |
|
|
258
|
+
| Original string type | Local integer type | Invalid unrelated type | Invalid unrelated type |
|
|
259
|
+
| QName fixed prefixes, same original expanded value | Local equivalent alias | Pass original contexts | Pass |
|
|
260
|
+
| Same QName fixed spelling, rebound namespace | Local distinct expanded value | Invalid fixed retention | Invalid fixed retention |
|
|
261
|
+
|
|
262
|
+
The literal alternative checks every final AU against every matched original base AU, including AUs inherited through omission. It would reject vacuous restriction of a base containing conflicting fixed AUs, and even a base containing required/optional AUs; those are material additional consequences absent from the maintainer's source-replacement question and were not selected.
|
|
263
|
+
|
|
264
|
+
Recommendation is the selected source partition: preserve existing inherited identities/obligations, and universally check only actual source replacements. RE01 must retain that provenance in a reordered witness and separately prove any synthetic intermediate's legal component/source construction; copying direct attribute syntax creates a new AU, while a group reference may reuse an existing group AU.
|
|
265
|
+
|
|
266
|
+
### Finite all-match procedure and budget guarantee
|
|
267
|
+
|
|
268
|
+
```text
|
|
269
|
+
reserve aggregate base/local/prohibition node count before indexing
|
|
270
|
+
deduplicate original base and local AUs by actual component identity
|
|
271
|
+
index every original base AU under its expanded QName
|
|
272
|
+
collect replacement names from local/group AUs and direct prohibitions
|
|
273
|
+
effective := local AUs plus bases whose names are not replaced
|
|
274
|
+
retain every original base as a schema operand and diagnostic source
|
|
275
|
+
for each actual local/group replacement R:
|
|
276
|
+
matches := every indexed original base AU of R's QName
|
|
277
|
+
if matches is empty: require admission by the original base wildcard
|
|
278
|
+
for each original B in matches:
|
|
279
|
+
require B.optional or R.required
|
|
280
|
+
require R.originalType validly derived from B.originalType
|
|
281
|
+
if B.effectiveConstraint is fixed:
|
|
282
|
+
require R.effectiveConstraint fixed and original-context SameValue
|
|
283
|
+
for each required original B:
|
|
284
|
+
require an effective required AU with B's QName
|
|
285
|
+
reserve output/provenance copies before allocation; return immutable views
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Each loop consumes a finite input sequence; no candidate-type, payload-value or recursion enumeration occurs. With sufficient resources, the algorithm completely decides the chosen predicate over its explicitly narrow original-type/scalar domain; the production contract delegates complete scalar derivation and SameValue to their existing owning plans.
|
|
289
|
+
|
|
290
|
+
Work is linear for source mapping plus at most `local AUs * matching base AUs` comparisons and finite required-name checks; indexing, namespace keys, inherited-record copies and result containers are charged first. A matching-pair budget failure returns `resource-limit` without a partially accepted restriction or a negative derivation proof.
|
|
291
|
+
|
|
292
|
+
Restoration of unrelated scalar types cannot follow merely from equal values or merged QName properties. Original base types stay explicit; a reordered witness must satisfy whichever complete AU predicate is ultimately reviewed, and resource exhaustion cannot prove no witness exists.
|
|
293
|
+
|
|
294
|
+
### Bounded implementation plan
|
|
295
|
+
|
|
296
|
+
```text
|
|
297
|
+
reserve graph node/work limits before indexing or retaining input
|
|
298
|
+
resolve references and forbidden cycles through existing S05 contract
|
|
299
|
+
visit groups in iterative dependency order with active/done IDs
|
|
300
|
+
for each group: borrow immutable AU records, union by original AU ID
|
|
301
|
+
charge each edge, member insertion, key text and provenance copy first
|
|
302
|
+
check distinct-AU group QName and ID-member constraints
|
|
303
|
+
visit complex derivation bases in dependency order
|
|
304
|
+
for extension: union base IDs with local/group IDs
|
|
305
|
+
for restriction: map source replacement/prohibition; retain originals separately
|
|
306
|
+
check distinct-declaration complex-type QName and ID constraints
|
|
307
|
+
partition surviving AUs by QName/declaration identity
|
|
308
|
+
validate each original own/declaration operand with shared scalar predicate
|
|
309
|
+
record requiredness OR and all original fixed/default candidates
|
|
310
|
+
for each source-declared replacement: check every matching original base AU
|
|
311
|
+
for omitted names: inherit original AU IDs and all runtime obligations unchanged
|
|
312
|
+
for direct prohibition: mask inherited names, then check required base names
|
|
313
|
+
for present attributes: assess original type and every surviving fixed predicate
|
|
314
|
+
for absent attributes: reject required absence or conflicting augmentation values
|
|
315
|
+
for one augmentation class: retain one admitted witness and every AU provenance
|
|
316
|
+
for unsupported scalar plans: return unsupported-capability with original operands
|
|
317
|
+
charge result arrays/strings and diagnostics before allocation; freeze result
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
Group memoization shares existing immutable AU records and prevents exponential group re-expansion. Repeated references may add provenance routes, so route collection is also bounded before copying; a resource failure returns no partial assessed type/operation table.
|
|
321
|
+
|
|
322
|
+
Legal recursion through element/type boundaries remains a graph reference and does not enter AU expansion. Forbidden attribute-group/base/scalar cycles remain S05 invalid-schema diagnostics with related source paths, including components absent from runtime closure.
|
|
323
|
+
|
|
324
|
+
With valid acyclic group/base dependencies, finite input and sufficient resources, identity union and candidate C's constraint summary terminate. This is completeness for the stated AU/set/scalar probe domain, not completeness of XSD schema validation or of RE01 witness search.
|
|
325
|
+
|
|
326
|
+
Semantic defaults remain independently applied 100,000 nodes and 1,000,000 work units. String/namespace/member parsing, exact typed comparisons, inherited AU copying and diagnostic/provenance copying are charged before work/allocation; S03/S04 budgets and conservative cyclic-depth behavior stay unchanged.
|
|
327
|
+
|
|
328
|
+
## Independent reference observations
|
|
329
|
+
|
|
330
|
+
All 66 committed [AU01 fixtures](../test/conformance/fixtures/xsd/attributes/au01/extension-required-fixed-optional-none.xsd) are new minimal sources authored for this research. The pinned draft's differing-use/group/prohibited fixtures remain historical evidence; none is silently rewritten or imported by the executable probe.
|
|
331
|
+
|
|
332
|
+
[The scoped reference tests](../test/conformance/reference/s06-au01-contract.test.ts) separate current primary observations, selected project assertions and historical engine answers. [The bounded candidate](../test/research/s06-au01/probe.ts) and [its pure tests](../test/research/s06-au01/probe.test.ts) import no production compiler or unaccepted draft modules.
|
|
333
|
+
|
|
334
|
+
The fourteen original AU01 method obligations are traced across those two test files using the hash-verified [historical source snapshot](../test/conformance/reference/legacy-source-snapshot.json). They retain 25 optional pairs, both requiredness orderings, twenty original-source restriction contrasts and one-attribute augmentation provenance; the snapshot is non-executable data.
|
|
335
|
+
|
|
336
|
+
### Historical optional matrix: XMLSchema 4.2.0 schema observations
|
|
337
|
+
|
|
338
|
+
`A` means accepted by the historical engine run, `R` rejected; the table is not a normative verdict or a fresh Node result. Historical libxml2 2.14.6 rejected every one of these 25 extension pairs.
|
|
339
|
+
|
|
340
|
+
| Base / local | N | D(1) | D(2) | F(1) | F(2) |
|
|
341
|
+
|---|---|---|---|---|---|
|
|
342
|
+
| N | A | A | A | A | A |
|
|
343
|
+
| D(1) | A | A | A | A | A |
|
|
344
|
+
| D(2) | A | A | A | A | A |
|
|
345
|
+
| F(1) | R | R | R | A | R |
|
|
346
|
+
| F(2) | R | R | R | R | A |
|
|
347
|
+
|
|
348
|
+
Historical XMLSchema accepted conflicting defaults and augmented absence with the local value: base `D(1)`/local `D(2)` produced `2`, the reversed schema produced `1`; present integer `1`, `2` or `3` was accepted in both. Base default/local fixed `2` was accepted with fixed `2` behavior, whereas reversing to base fixed/local default was rejected.
|
|
349
|
+
|
|
350
|
+
These order-dependent results illustrate implementation policy, not primary selection authority. They refute a blanket claim that both engines reject every mismatched repeated-use combination; the original required-fixed/optional-none example is still rejected by both.
|
|
351
|
+
|
|
352
|
+
### Historical identity, source controls and scalar contrasts
|
|
353
|
+
|
|
354
|
+
| Fixture or contrast | Primary/project conclusion | Historical XMLSchema 4.2.0 | Historical libxml2 2.14.6 |
|
|
355
|
+
|---|---|---|---|
|
|
356
|
+
| Direct same-global repeated references | CT identity permits; equivalent unconstrained checks | R | R |
|
|
357
|
+
| Reused group AU | Legal member set union | R | R |
|
|
358
|
+
| Distinct same-QName local declarations | Invalid CT identity | R | R |
|
|
359
|
+
| Direct/nested distinct group AUs | Invalid group identity | R | R |
|
|
360
|
+
| Omitted inherited required attribute | Inherits required AU | A | A |
|
|
361
|
+
| Direct required prohibition in restriction | Invalid restriction | R | R |
|
|
362
|
+
| Extension required prohibition | Base remains required | R | A |
|
|
363
|
+
| Group required prohibition in restriction | Base remains required | A | A |
|
|
364
|
+
| Global fixed `1`, own fixed `+01` | S02 value-equivalent | R | A |
|
|
365
|
+
| Global fixed `1`, own fixed `2` | Invalid `au-props-correct` | R | A |
|
|
366
|
+
| Global fixed `1`, own default `1` | Invalid `au-props-correct` | A | R |
|
|
367
|
+
| Required explicit default | Invalid `src-attribute` | R | R |
|
|
368
|
+
| Global default, required reference without own default | Legal; presence required | A | A |
|
|
369
|
+
| Base optional none/local required fixed | Selected C1 requires presence and fixed value | A | R |
|
|
370
|
+
| Base required fixed/local optional none | Selected C1 retains requiredness and fixed value | R | R |
|
|
371
|
+
| QName fixed `p:item`, input `q:item`, same binding | S02 value-equivalent | Reject input | Accept input |
|
|
372
|
+
|
|
373
|
+
The valid inherited-required controls each accepted presence and rejected absence in historical libxml2. The single-AU typed fixture supplies 14 present-value contrasts for integer, string, token, QName, list, union and pattern; the historical QName alias disagreement remains recorded rather than changing the independent S02 expected value.
|
|
374
|
+
|
|
375
|
+
The twenty new `restriction-matches-*` fixtures independently contrast the selected source partition against literal final-AU matching. Pinned engines reject many complete schemas before reaching the derived restriction because they reject the repeated base AU sets; these observations cannot prove the selected restriction predicate wrong.
|
|
376
|
+
|
|
377
|
+
Historical XMLSchema accepted the required-second/required-replacement and changed-default replacement schemas while libxml2 rejected their repeated bases. Both accepted string-to-token and rejected unrelated string-to-integer; XMLSchema rejected equivalent QName fixed aliases while libxml2 accepted them, and both accepted the same fixed spelling with a different original namespace binding even though selected typed equality distinguishes it.
|
|
378
|
+
|
|
379
|
+
## Executed checks and limits
|
|
380
|
+
|
|
381
|
+
The current reproduction uses normal npm installation on Node 24 or Node 26. The scoped tests construct the original supported schemas with `libxml2-wasm` 0.7.2/libxml2 2.15.1 and independently execute the selected AU01 rules; unavailable complete-schema results do not become payload rejection or selected-rule authority.
|
|
382
|
+
|
|
383
|
+
```bash
|
|
384
|
+
npm ci
|
|
385
|
+
npm run typecheck:research
|
|
386
|
+
npm run typecheck:reference
|
|
387
|
+
npm run test:research:ports
|
|
388
|
+
npx vitest run test/conformance/reference/s06-au01-contract.test.ts
|
|
389
|
+
npm run test:reference:full
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
The historical research installation used Python 3.12.14, xmlschema 4.2.0, lxml 6.1.0/libxml2 2.14.6 and elementpath 5.0.4. Its original focused run passed nine methods, followed by all fourteen after the selected restriction/augmentation work; those recorded runs are preserved as historical evidence and are not repeated by the current Node commands.
|
|
393
|
+
|
|
394
|
+
Aggregate full-reference, CI, conformance and documentation/support-matrix results belong to the coordinator's exact final integration record; they are not inferred from these scoped checks or old #231 results.
|
|
395
|
+
|
|
396
|
+
The historical leaf delivery passed `npm run docs:validate`, including the support-matrix check. Its selected-contract follow-up passed the fourteen focused methods and diff checks; current cross-leaf links and complete documentation/support-matrix checks belong to the coordinator's integrated final revision.
|
|
397
|
+
|
|
398
|
+
| Boundary probe | Measured outcome |
|
|
399
|
+
|---|---|
|
|
400
|
+
| 100,000 borrowed repeated AU input nodes | Succeeds; 2,500,005 work units with explicit 5,000,000 override |
|
|
401
|
+
| 100,001 input nodes | `resource-limit` before indexing |
|
|
402
|
+
| Singleton fixed summary at 94 work units | Succeeds |
|
|
403
|
+
| Same summary with 93 work units | `resource-limit`; counter never exceeds budget |
|
|
404
|
+
| Two exact 83,331-digit operands plus two operand visits | Succeeds at exactly 1,000,000 work units |
|
|
405
|
+
| Two 83,332-digit operands plus two operand visits | `resource-limit`; no inequality/acceptance result |
|
|
406
|
+
| 10,000-digit integer alternate spelling | Exact equality succeeds |
|
|
407
|
+
| 10,000-character namespace URI aliases | Exact equality succeeds; lower work budget fails |
|
|
408
|
+
| Two base matches and one local fixed/required replacement | Pass at 384 work units; 383 returns resource-limit |
|
|
409
|
+
| Same restriction at three input nodes / two-node override | Pass / resource-limit before indexing; zero work retained |
|
|
410
|
+
| 4,000 original base matches and one local replacement | Pass within default; 327,001 work units |
|
|
411
|
+
| 4,000 bases and 4,000 replacements | Default work exhaustion; no partial result or invalidity proof |
|
|
412
|
+
|
|
413
|
+
The node and work limits are independent: reaching the node limit does not grant extra work, and the documented override isolates that boundary. Input fixture allocation is caller-owned; the candidate bounds its own indexing, normalized buffers, list outputs and comparisons before allocation/work.
|
|
414
|
+
|
|
415
|
+
The probe intentionally does not import later #184 payload digit/byte limits into schema research. It does not qualify arbitrary facets, Unicode QName grammar, full scalar calendars, production performance or platform maxima; unsupported probe datatypes return unsupported-capability and never silently succeed.
|
|
416
|
+
|
|
417
|
+
IDE inspections are unavailable; repository checks and reference XML parsing provide verification. Hosted CI, protected merge, complete semantic interpretation, exact-revision independent acceptance and production guards remain explicit coordinator/downstream gates.
|
|
418
|
+
|
|
419
|
+
## Handoff and open acceptance obligations
|
|
420
|
+
|
|
421
|
+
#179 receives original-AU set identity, independently established requiredness and source mapping, scalar context obligations, conditional C and alternative S predicates, and the exact guards still required. #184 receives every surviving runtime AU operand and its origin, plus removed/schema-only operands kept separately for diagnostics; no payload scalar implementation is delivered here.
|
|
422
|
+
|
|
423
|
+
The accepted path remains canonical/resolved/composed graph, accepted #178 occurrence analysis and #179 assessment. Legacy default generation, format 2, `xsd10-faithful-v1`, companion regeneration policy, D07 qualifications, S01/S05 disagreements and later production activation remain unchanged.
|
|
424
|
+
|
|
425
|
+
The maintainer's recorded C1 and source-replacement all-match selections provide the project answers for present/absent behavior and multiple-base restriction matching. Local acceptance still requires the complete selected contract's substantive exact-revision review, the pinned reviewed DT01 predicate and final coordinator delivery checks/normal merge; production implementation and joint RE01 witness acceptance remain separate downstream gates.
|