├── .editorconfig ├── .gitignore ├── LICENSE.md ├── README.md ├── docs ├── core │ ├── Apache-LICENSE-1.1.txt │ ├── ChangeLog.txt │ ├── JARV.html │ ├── JARV_API.gif │ ├── JAXPmasquerading.html │ ├── RNGDatatypeLibrary.html │ ├── SAXfilter.gif │ ├── acceptor.html │ ├── api │ │ ├── allclasses-index.html │ │ ├── allpackages-index.html │ │ ├── com │ │ │ └── sun │ │ │ │ └── msv │ │ │ │ ├── driver │ │ │ │ └── textui │ │ │ │ │ ├── Debug.html │ │ │ │ │ ├── DebugController.html │ │ │ │ │ ├── Driver.html │ │ │ │ │ ├── ReportErrorHandler.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── Debug.html │ │ │ │ │ ├── DebugController.html │ │ │ │ │ ├── Driver.html │ │ │ │ │ └── ReportErrorHandler.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── grammar │ │ │ │ ├── AnyNameClass.html │ │ │ │ ├── AttributeExp.html │ │ │ │ ├── BinaryExp.html │ │ │ │ ├── ChoiceExp.html │ │ │ │ ├── ChoiceNameClass.html │ │ │ │ ├── ConcurExp.html │ │ │ │ ├── DataExp.html │ │ │ │ ├── DataOrValueExp.html │ │ │ │ ├── DifferenceNameClass.html │ │ │ │ ├── ElementExp.html │ │ │ │ ├── Expression.html │ │ │ │ ├── ExpressionCloner.html │ │ │ │ ├── ExpressionPool.ClosedHash.html │ │ │ │ ├── ExpressionPool.html │ │ │ │ ├── ExpressionVisitor.html │ │ │ │ ├── ExpressionVisitorBoolean.html │ │ │ │ ├── ExpressionVisitorExpression.html │ │ │ │ ├── ExpressionVisitorVoid.html │ │ │ │ ├── Grammar.html │ │ │ │ ├── IDContextProvider.html │ │ │ │ ├── IDContextProvider2.html │ │ │ │ ├── InterleaveExp.html │ │ │ │ ├── ListExp.html │ │ │ │ ├── MixedExp.html │ │ │ │ ├── NameClass.html │ │ │ │ ├── NameClassAndExpression.html │ │ │ │ ├── NameClassVisitor.html │ │ │ │ ├── NamespaceNameClass.html │ │ │ │ ├── NotNameClass.html │ │ │ │ ├── OneOrMoreExp.html │ │ │ │ ├── OtherExp.html │ │ │ │ ├── ReferenceContainer.html │ │ │ │ ├── ReferenceExp.html │ │ │ │ ├── SequenceExp.html │ │ │ │ ├── SimpleNameClass.html │ │ │ │ ├── UnaryExp.html │ │ │ │ ├── ValueExp.html │ │ │ │ ├── class-use │ │ │ │ │ ├── AnyNameClass.html │ │ │ │ │ ├── AttributeExp.html │ │ │ │ │ ├── BinaryExp.html │ │ │ │ │ ├── ChoiceExp.html │ │ │ │ │ ├── ChoiceNameClass.html │ │ │ │ │ ├── ConcurExp.html │ │ │ │ │ ├── DataExp.html │ │ │ │ │ ├── DataOrValueExp.html │ │ │ │ │ ├── DifferenceNameClass.html │ │ │ │ │ ├── ElementExp.html │ │ │ │ │ ├── Expression.html │ │ │ │ │ ├── ExpressionCloner.html │ │ │ │ │ ├── ExpressionPool.ClosedHash.html │ │ │ │ │ ├── ExpressionPool.html │ │ │ │ │ ├── ExpressionVisitor.html │ │ │ │ │ ├── ExpressionVisitorBoolean.html │ │ │ │ │ ├── ExpressionVisitorExpression.html │ │ │ │ │ ├── ExpressionVisitorVoid.html │ │ │ │ │ ├── Grammar.html │ │ │ │ │ ├── IDContextProvider.html │ │ │ │ │ ├── IDContextProvider2.html │ │ │ │ │ ├── InterleaveExp.html │ │ │ │ │ ├── ListExp.html │ │ │ │ │ ├── MixedExp.html │ │ │ │ │ ├── NameClass.html │ │ │ │ │ ├── NameClassAndExpression.html │ │ │ │ │ ├── NameClassVisitor.html │ │ │ │ │ ├── NamespaceNameClass.html │ │ │ │ │ ├── NotNameClass.html │ │ │ │ │ ├── OneOrMoreExp.html │ │ │ │ │ ├── OtherExp.html │ │ │ │ │ ├── ReferenceContainer.html │ │ │ │ │ ├── ReferenceExp.html │ │ │ │ │ ├── SequenceExp.html │ │ │ │ │ ├── SimpleNameClass.html │ │ │ │ │ ├── UnaryExp.html │ │ │ │ │ └── ValueExp.html │ │ │ │ ├── dtd │ │ │ │ │ ├── LocalNameClass.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ └── LocalNameClass.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ ├── package-use.html │ │ │ │ ├── relax │ │ │ │ │ ├── AttPoolClause.html │ │ │ │ │ ├── ElementRule.html │ │ │ │ │ ├── ElementRules.html │ │ │ │ │ ├── EmptyStringType.html │ │ │ │ │ ├── Exportable.html │ │ │ │ │ ├── HedgeRules.html │ │ │ │ │ ├── NoneType.html │ │ │ │ │ ├── RELAXExpressionVisitor.html │ │ │ │ │ ├── RELAXExpressionVisitorBoolean.html │ │ │ │ │ ├── RELAXExpressionVisitorExpression.html │ │ │ │ │ ├── RELAXExpressionVisitorVoid.html │ │ │ │ │ ├── RELAXModule.AttPoolContainer.html │ │ │ │ │ ├── RELAXModule.DatatypeContainer.html │ │ │ │ │ ├── RELAXModule.ElementRulesContainer.html │ │ │ │ │ ├── RELAXModule.HedgeRulesContainer.html │ │ │ │ │ ├── RELAXModule.TagContainer.html │ │ │ │ │ ├── RELAXModule.html │ │ │ │ │ ├── TagClause.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── AttPoolClause.html │ │ │ │ │ │ ├── ElementRule.html │ │ │ │ │ │ ├── ElementRules.html │ │ │ │ │ │ ├── EmptyStringType.html │ │ │ │ │ │ ├── Exportable.html │ │ │ │ │ │ ├── HedgeRules.html │ │ │ │ │ │ ├── NoneType.html │ │ │ │ │ │ ├── RELAXExpressionVisitor.html │ │ │ │ │ │ ├── RELAXExpressionVisitorBoolean.html │ │ │ │ │ │ ├── RELAXExpressionVisitorExpression.html │ │ │ │ │ │ ├── RELAXExpressionVisitorVoid.html │ │ │ │ │ │ ├── RELAXModule.AttPoolContainer.html │ │ │ │ │ │ ├── RELAXModule.DatatypeContainer.html │ │ │ │ │ │ ├── RELAXModule.ElementRulesContainer.html │ │ │ │ │ │ ├── RELAXModule.HedgeRulesContainer.html │ │ │ │ │ │ ├── RELAXModule.TagContainer.html │ │ │ │ │ │ ├── RELAXModule.html │ │ │ │ │ │ └── TagClause.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── relaxng │ │ │ │ │ ├── RELAXNGGrammar.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ └── RELAXNGGrammar.html │ │ │ │ │ ├── datatype │ │ │ │ │ │ ├── BuiltinDatatypeLibrary.html │ │ │ │ │ │ ├── CompatibilityDatatypeLibrary.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ │ ├── BuiltinDatatypeLibrary.html │ │ │ │ │ │ │ └── CompatibilityDatatypeLibrary.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── trex │ │ │ │ │ ├── ElementPattern.html │ │ │ │ │ ├── TREXGrammar.RefContainer.html │ │ │ │ │ ├── TREXGrammar.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── ElementPattern.html │ │ │ │ │ │ ├── TREXGrammar.RefContainer.html │ │ │ │ │ │ └── TREXGrammar.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ ├── package-use.html │ │ │ │ │ └── typed │ │ │ │ │ │ ├── TypedElementPattern.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ └── TypedElementPattern.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ ├── util │ │ │ │ │ ├── ExpressionFinder.html │ │ │ │ │ ├── ExpressionPrinter.html │ │ │ │ │ ├── ExpressionWalker.html │ │ │ │ │ ├── IDContextProviderWrapper.html │ │ │ │ │ ├── NameClassCollisionChecker.html │ │ │ │ │ ├── NameClassComparator.html │ │ │ │ │ ├── NameClassSimplifier.html │ │ │ │ │ ├── PossibleNamesCollector.html │ │ │ │ │ ├── RefExpRemover.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── ExpressionFinder.html │ │ │ │ │ │ ├── ExpressionPrinter.html │ │ │ │ │ │ ├── ExpressionWalker.html │ │ │ │ │ │ ├── IDContextProviderWrapper.html │ │ │ │ │ │ ├── NameClassCollisionChecker.html │ │ │ │ │ │ ├── NameClassComparator.html │ │ │ │ │ │ ├── NameClassSimplifier.html │ │ │ │ │ │ ├── PossibleNamesCollector.html │ │ │ │ │ │ └── RefExpRemover.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ └── xmlschema │ │ │ │ │ ├── AttWildcardExp.html │ │ │ │ │ ├── AttributeDeclExp.html │ │ │ │ │ ├── AttributeGroupExp.html │ │ │ │ │ ├── AttributeWildcard.html │ │ │ │ │ ├── ComplexTypeExp.html │ │ │ │ │ ├── ElementDeclExp.XSElementExp.html │ │ │ │ │ ├── ElementDeclExp.html │ │ │ │ │ ├── Field.html │ │ │ │ │ ├── GroupDeclExp.html │ │ │ │ │ ├── IdentityConstraint.html │ │ │ │ │ ├── KeyConstraint.html │ │ │ │ │ ├── KeyRefConstraint.html │ │ │ │ │ ├── LaxDefaultNameClass.html │ │ │ │ │ ├── OccurrenceExp.html │ │ │ │ │ ├── RedefinableExp.html │ │ │ │ │ ├── SimpleTypeExp.html │ │ │ │ │ ├── SkipElementExp.html │ │ │ │ │ ├── UniqueConstraint.html │ │ │ │ │ ├── XMLSchemaGrammar.html │ │ │ │ │ ├── XMLSchemaSchema.AttributeDeclContainer.html │ │ │ │ │ ├── XMLSchemaSchema.AttributeGroupContainer.html │ │ │ │ │ ├── XMLSchemaSchema.ComplexTypeContainer.html │ │ │ │ │ ├── XMLSchemaSchema.ElementDeclContainer.html │ │ │ │ │ ├── XMLSchemaSchema.GroupDeclContainer.html │ │ │ │ │ ├── XMLSchemaSchema.IdentityConstraintContainer.html │ │ │ │ │ ├── XMLSchemaSchema.SimpleTypeContainer.html │ │ │ │ │ ├── XMLSchemaSchema.html │ │ │ │ │ ├── XMLSchemaTypeExp.html │ │ │ │ │ ├── XPath.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── AttWildcardExp.html │ │ │ │ │ ├── AttributeDeclExp.html │ │ │ │ │ ├── AttributeGroupExp.html │ │ │ │ │ ├── AttributeWildcard.html │ │ │ │ │ ├── ComplexTypeExp.html │ │ │ │ │ ├── ElementDeclExp.XSElementExp.html │ │ │ │ │ ├── ElementDeclExp.html │ │ │ │ │ ├── Field.html │ │ │ │ │ ├── GroupDeclExp.html │ │ │ │ │ ├── IdentityConstraint.html │ │ │ │ │ ├── KeyConstraint.html │ │ │ │ │ ├── KeyRefConstraint.html │ │ │ │ │ ├── LaxDefaultNameClass.html │ │ │ │ │ ├── OccurrenceExp.html │ │ │ │ │ ├── RedefinableExp.html │ │ │ │ │ ├── SimpleTypeExp.html │ │ │ │ │ ├── SkipElementExp.html │ │ │ │ │ ├── UniqueConstraint.html │ │ │ │ │ ├── XMLSchemaGrammar.html │ │ │ │ │ ├── XMLSchemaSchema.AttributeDeclContainer.html │ │ │ │ │ ├── XMLSchemaSchema.AttributeGroupContainer.html │ │ │ │ │ ├── XMLSchemaSchema.ComplexTypeContainer.html │ │ │ │ │ ├── XMLSchemaSchema.ElementDeclContainer.html │ │ │ │ │ ├── XMLSchemaSchema.GroupDeclContainer.html │ │ │ │ │ ├── XMLSchemaSchema.IdentityConstraintContainer.html │ │ │ │ │ ├── XMLSchemaSchema.SimpleTypeContainer.html │ │ │ │ │ ├── XMLSchemaSchema.html │ │ │ │ │ ├── XMLSchemaTypeExp.html │ │ │ │ │ └── XPath.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── reader │ │ │ │ ├── AbortException.html │ │ │ │ ├── ChildlessState.html │ │ │ │ ├── ChoiceState.html │ │ │ │ ├── Controller.html │ │ │ │ ├── DOMLSInput.html │ │ │ │ ├── ExpressionOwner.html │ │ │ │ ├── ExpressionState.html │ │ │ │ ├── ExpressionWithChildState.html │ │ │ │ ├── ExpressionWithoutChildState.html │ │ │ │ ├── GrammarReader.BackPatch.html │ │ │ │ ├── GrammarReader.BackwardReferenceMap.html │ │ │ │ ├── GrammarReader.ChainPrefixResolver.html │ │ │ │ ├── GrammarReader.PrefixResolver.html │ │ │ │ ├── GrammarReader.html │ │ │ │ ├── GrammarReaderController.html │ │ │ │ ├── GrammarReaderController2.html │ │ │ │ ├── IgnoreState.html │ │ │ │ ├── InterleaveState.html │ │ │ │ ├── RunAwayExpressionChecker.html │ │ │ │ ├── SequenceState.html │ │ │ │ ├── SimpleState.html │ │ │ │ ├── State.html │ │ │ │ ├── TerminalState.html │ │ │ │ ├── class-use │ │ │ │ │ ├── AbortException.html │ │ │ │ │ ├── ChildlessState.html │ │ │ │ │ ├── ChoiceState.html │ │ │ │ │ ├── Controller.html │ │ │ │ │ ├── DOMLSInput.html │ │ │ │ │ ├── ExpressionOwner.html │ │ │ │ │ ├── ExpressionState.html │ │ │ │ │ ├── ExpressionWithChildState.html │ │ │ │ │ ├── ExpressionWithoutChildState.html │ │ │ │ │ ├── GrammarReader.BackPatch.html │ │ │ │ │ ├── GrammarReader.BackwardReferenceMap.html │ │ │ │ │ ├── GrammarReader.ChainPrefixResolver.html │ │ │ │ │ ├── GrammarReader.PrefixResolver.html │ │ │ │ │ ├── GrammarReader.html │ │ │ │ │ ├── GrammarReaderController.html │ │ │ │ │ ├── GrammarReaderController2.html │ │ │ │ │ ├── IgnoreState.html │ │ │ │ │ ├── InterleaveState.html │ │ │ │ │ ├── RunAwayExpressionChecker.html │ │ │ │ │ ├── SequenceState.html │ │ │ │ │ ├── SimpleState.html │ │ │ │ │ ├── State.html │ │ │ │ │ └── TerminalState.html │ │ │ │ ├── datatype │ │ │ │ │ ├── DataTypeVocabulary.html │ │ │ │ │ ├── DataTypeVocabularyMap.html │ │ │ │ │ ├── TypeOwner.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── DataTypeVocabulary.html │ │ │ │ │ │ ├── DataTypeVocabularyMap.html │ │ │ │ │ │ └── TypeOwner.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ ├── package-use.html │ │ │ │ │ └── xsd │ │ │ │ │ │ ├── FacetState.html │ │ │ │ │ │ ├── FacetStateParent.html │ │ │ │ │ │ ├── ListState.html │ │ │ │ │ │ ├── RestrictionState.html │ │ │ │ │ │ ├── SimpleTypeState.html │ │ │ │ │ │ ├── UnionState.html │ │ │ │ │ │ ├── XSDVocabulary.html │ │ │ │ │ │ ├── XSDatatypeExp.Renderer.html │ │ │ │ │ │ ├── XSDatatypeExp.RenderingContext.html │ │ │ │ │ │ ├── XSDatatypeExp.html │ │ │ │ │ │ ├── XSDatatypeResolver.html │ │ │ │ │ │ ├── XSTypeIncubator.html │ │ │ │ │ │ ├── XSTypeOwner.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── FacetState.html │ │ │ │ │ │ ├── FacetStateParent.html │ │ │ │ │ │ ├── ListState.html │ │ │ │ │ │ ├── RestrictionState.html │ │ │ │ │ │ ├── SimpleTypeState.html │ │ │ │ │ │ ├── UnionState.html │ │ │ │ │ │ ├── XSDVocabulary.html │ │ │ │ │ │ ├── XSDatatypeExp.Renderer.html │ │ │ │ │ │ ├── XSDatatypeExp.RenderingContext.html │ │ │ │ │ │ ├── XSDatatypeExp.html │ │ │ │ │ │ ├── XSDatatypeResolver.html │ │ │ │ │ │ ├── XSTypeIncubator.html │ │ │ │ │ │ └── XSTypeOwner.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ ├── dtd │ │ │ │ │ ├── DTDReader.Context.html │ │ │ │ │ ├── DTDReader.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── DTDReader.Context.html │ │ │ │ │ │ └── DTDReader.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ ├── package-use.html │ │ │ │ ├── relax │ │ │ │ │ ├── ElementRefState.html │ │ │ │ │ ├── HedgeRefState.html │ │ │ │ │ ├── HedgeRuleBaseState.html │ │ │ │ │ ├── RELAXReader.StateFactory.html │ │ │ │ │ ├── RELAXReader.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── ElementRefState.html │ │ │ │ │ │ ├── HedgeRefState.html │ │ │ │ │ │ ├── HedgeRuleBaseState.html │ │ │ │ │ │ ├── RELAXReader.StateFactory.html │ │ │ │ │ │ └── RELAXReader.html │ │ │ │ │ ├── core │ │ │ │ │ │ ├── AttPoolRefState.html │ │ │ │ │ │ ├── AttPoolState.html │ │ │ │ │ │ ├── AttributeState.html │ │ │ │ │ │ ├── DivInModuleState.html │ │ │ │ │ │ ├── ElementRuleWithHedgeState.html │ │ │ │ │ │ ├── ElementRuleWithTypeState.html │ │ │ │ │ │ ├── HedgeRuleState.html │ │ │ │ │ │ ├── IncludeModuleState.html │ │ │ │ │ │ ├── InlineElementState.html │ │ │ │ │ │ ├── InlineTagState.html │ │ │ │ │ │ ├── InterfaceState.html │ │ │ │ │ │ ├── MixedState.html │ │ │ │ │ │ ├── ModuleMergeState.html │ │ │ │ │ │ ├── ModuleState.html │ │ │ │ │ │ ├── RELAXCoreReader.StateFactory.html │ │ │ │ │ │ ├── RELAXCoreReader.html │ │ │ │ │ │ ├── TagState.html │ │ │ │ │ │ ├── checker │ │ │ │ │ │ │ ├── DblAttrConstraintChecker.html │ │ │ │ │ │ │ ├── ExportedHedgeRuleChecker.html │ │ │ │ │ │ │ ├── IdAbuseChecker.html │ │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ │ │ ├── DblAttrConstraintChecker.html │ │ │ │ │ │ │ │ ├── ExportedHedgeRuleChecker.html │ │ │ │ │ │ │ │ └── IdAbuseChecker.html │ │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ │ └── package-use.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ │ ├── AttPoolRefState.html │ │ │ │ │ │ │ ├── AttPoolState.html │ │ │ │ │ │ │ ├── AttributeState.html │ │ │ │ │ │ │ ├── DivInModuleState.html │ │ │ │ │ │ │ ├── ElementRuleWithHedgeState.html │ │ │ │ │ │ │ ├── ElementRuleWithTypeState.html │ │ │ │ │ │ │ ├── HedgeRuleState.html │ │ │ │ │ │ │ ├── IncludeModuleState.html │ │ │ │ │ │ │ ├── InlineElementState.html │ │ │ │ │ │ │ ├── InlineTagState.html │ │ │ │ │ │ │ ├── InterfaceState.html │ │ │ │ │ │ │ ├── MixedState.html │ │ │ │ │ │ │ ├── ModuleMergeState.html │ │ │ │ │ │ │ ├── ModuleState.html │ │ │ │ │ │ │ ├── RELAXCoreReader.StateFactory.html │ │ │ │ │ │ │ ├── RELAXCoreReader.html │ │ │ │ │ │ │ └── TagState.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── trex │ │ │ │ │ ├── AttributeState.html │ │ │ │ │ ├── DefineState.html │ │ │ │ │ ├── DivInGrammarState.html │ │ │ │ │ ├── ElementState.html │ │ │ │ │ ├── GrammarState.html │ │ │ │ │ ├── IncludeMergeState.html │ │ │ │ │ ├── IncludePatternState.html │ │ │ │ │ ├── MixedState.html │ │ │ │ │ ├── NameClassAndExpressionState.html │ │ │ │ │ ├── NameClassAnyNameState.html │ │ │ │ │ ├── NameClassChoiceState.html │ │ │ │ │ ├── NameClassDifferenceState.html │ │ │ │ │ ├── NameClassNameState.html │ │ │ │ │ ├── NameClassNotState.html │ │ │ │ │ ├── NameClassNsNameState.html │ │ │ │ │ ├── NameClassState.html │ │ │ │ │ ├── NameClassWithChildState.html │ │ │ │ │ ├── NameClassWithoutChildState.html │ │ │ │ │ ├── OneOrMoreState.html │ │ │ │ │ ├── OptionalState.html │ │ │ │ │ ├── RefState.html │ │ │ │ │ ├── RootIncludedPatternState.html │ │ │ │ │ ├── RootMergedGrammarState.html │ │ │ │ │ ├── RootState.html │ │ │ │ │ ├── StartState.html │ │ │ │ │ ├── TREXBaseReader.StateFactory.html │ │ │ │ │ ├── TREXBaseReader.html │ │ │ │ │ ├── TREXSequencedStringChecker.html │ │ │ │ │ ├── ZeroOrMoreState.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── AttributeState.html │ │ │ │ │ │ ├── DefineState.html │ │ │ │ │ │ ├── DivInGrammarState.html │ │ │ │ │ │ ├── ElementState.html │ │ │ │ │ │ ├── GrammarState.html │ │ │ │ │ │ ├── IncludeMergeState.html │ │ │ │ │ │ ├── IncludePatternState.html │ │ │ │ │ │ ├── MixedState.html │ │ │ │ │ │ ├── NameClassAndExpressionState.html │ │ │ │ │ │ ├── NameClassAnyNameState.html │ │ │ │ │ │ ├── NameClassChoiceState.html │ │ │ │ │ │ ├── NameClassDifferenceState.html │ │ │ │ │ │ ├── NameClassNameState.html │ │ │ │ │ │ ├── NameClassNotState.html │ │ │ │ │ │ ├── NameClassNsNameState.html │ │ │ │ │ │ ├── NameClassState.html │ │ │ │ │ │ ├── NameClassWithChildState.html │ │ │ │ │ │ ├── NameClassWithoutChildState.html │ │ │ │ │ │ ├── OneOrMoreState.html │ │ │ │ │ │ ├── OptionalState.html │ │ │ │ │ │ ├── RefState.html │ │ │ │ │ │ ├── RootIncludedPatternState.html │ │ │ │ │ │ ├── RootMergedGrammarState.html │ │ │ │ │ │ ├── RootState.html │ │ │ │ │ │ ├── StartState.html │ │ │ │ │ │ ├── TREXBaseReader.StateFactory.html │ │ │ │ │ │ ├── TREXBaseReader.html │ │ │ │ │ │ ├── TREXSequencedStringChecker.html │ │ │ │ │ │ └── ZeroOrMoreState.html │ │ │ │ │ ├── classic │ │ │ │ │ │ ├── ConcurState.html │ │ │ │ │ │ ├── DataState.html │ │ │ │ │ │ ├── DefineState.html │ │ │ │ │ │ ├── StringState.html │ │ │ │ │ │ ├── TREXGrammarReader.StateFactory.html │ │ │ │ │ │ ├── TREXGrammarReader.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ │ ├── ConcurState.html │ │ │ │ │ │ │ ├── DataState.html │ │ │ │ │ │ │ ├── DefineState.html │ │ │ │ │ │ │ ├── StringState.html │ │ │ │ │ │ │ ├── TREXGrammarReader.StateFactory.html │ │ │ │ │ │ │ └── TREXGrammarReader.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ │ ├── ng │ │ │ │ │ │ ├── AttributeState.html │ │ │ │ │ │ ├── DataParamState.html │ │ │ │ │ │ ├── DataState.html │ │ │ │ │ │ ├── DefineState.html │ │ │ │ │ │ ├── ElementState.html │ │ │ │ │ │ ├── GrammarState.html │ │ │ │ │ │ ├── IncludeMergeState.html │ │ │ │ │ │ ├── ListState.html │ │ │ │ │ │ ├── NGNameState.AnyNameState.html │ │ │ │ │ │ ├── NGNameState.NsNameState.html │ │ │ │ │ │ ├── NGNameState.html │ │ │ │ │ │ ├── RELAXNGReader.RefExpParseInfo.RedefinitionStatus.html │ │ │ │ │ │ ├── RELAXNGReader.RefExpParseInfo.html │ │ │ │ │ │ ├── RELAXNGReader.StateFactory.html │ │ │ │ │ │ ├── RELAXNGReader.html │ │ │ │ │ │ ├── RefState.html │ │ │ │ │ │ ├── RestrictionChecker.DuplicateNameChecker.html │ │ │ │ │ │ ├── RestrictionChecker.html │ │ │ │ │ │ ├── StartState.html │ │ │ │ │ │ ├── ValueState.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ │ ├── AttributeState.html │ │ │ │ │ │ │ ├── DataParamState.html │ │ │ │ │ │ │ ├── DataState.html │ │ │ │ │ │ │ ├── DefineState.html │ │ │ │ │ │ │ ├── ElementState.html │ │ │ │ │ │ │ ├── GrammarState.html │ │ │ │ │ │ │ ├── IncludeMergeState.html │ │ │ │ │ │ │ ├── ListState.html │ │ │ │ │ │ │ ├── NGNameState.AnyNameState.html │ │ │ │ │ │ │ ├── NGNameState.NsNameState.html │ │ │ │ │ │ │ ├── NGNameState.html │ │ │ │ │ │ │ ├── RELAXNGReader.RefExpParseInfo.RedefinitionStatus.html │ │ │ │ │ │ │ ├── RELAXNGReader.RefExpParseInfo.html │ │ │ │ │ │ │ ├── RELAXNGReader.StateFactory.html │ │ │ │ │ │ │ ├── RELAXNGReader.html │ │ │ │ │ │ │ ├── RefState.html │ │ │ │ │ │ │ ├── RestrictionChecker.DuplicateNameChecker.html │ │ │ │ │ │ │ ├── RestrictionChecker.html │ │ │ │ │ │ │ ├── StartState.html │ │ │ │ │ │ │ └── ValueState.html │ │ │ │ │ │ ├── comp │ │ │ │ │ │ │ ├── CompAttributeState.html │ │ │ │ │ │ │ ├── RELAXNGCompReader.StateFactory.html │ │ │ │ │ │ │ ├── RELAXNGCompReader.html │ │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ │ │ ├── CompAttributeState.html │ │ │ │ │ │ │ │ ├── RELAXNGCompReader.StateFactory.html │ │ │ │ │ │ │ │ └── RELAXNGCompReader.html │ │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ │ └── package-use.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ ├── package-use.html │ │ │ │ │ └── typed │ │ │ │ │ │ ├── TypedElementState.html │ │ │ │ │ │ ├── TypedTREXGrammarInterceptor.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── TypedElementState.html │ │ │ │ │ │ └── TypedTREXGrammarInterceptor.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ ├── util │ │ │ │ │ ├── ForkContentHandler.html │ │ │ │ │ ├── GrammarLoader.html │ │ │ │ │ ├── IgnoreController.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── ForkContentHandler.html │ │ │ │ │ │ ├── GrammarLoader.html │ │ │ │ │ │ └── IgnoreController.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ └── xmlschema │ │ │ │ │ ├── AnyAttributeOwner.html │ │ │ │ │ ├── AnyAttributeState.html │ │ │ │ │ ├── AnyElementState.html │ │ │ │ │ ├── AnyState.html │ │ │ │ │ ├── AttributeGroupState.html │ │ │ │ │ ├── AttributeState.html │ │ │ │ │ ├── AttributeWildcardComputer.html │ │ │ │ │ ├── ComplexContentBodyState.html │ │ │ │ │ ├── ComplexContentState.html │ │ │ │ │ ├── ComplexTypeDeclState.html │ │ │ │ │ ├── DOMLSInputImpl.html │ │ │ │ │ ├── ElementDeclState.html │ │ │ │ │ ├── ElementRefState.html │ │ │ │ │ ├── EmbeddedSchema.html │ │ │ │ │ ├── GlobalDeclState.html │ │ │ │ │ ├── GroupState.html │ │ │ │ │ ├── IdentityConstraintState.html │ │ │ │ │ ├── ImportState.html │ │ │ │ │ ├── IncludeState.html │ │ │ │ │ ├── MultiSchemaReader.html │ │ │ │ │ ├── RedefinableDeclState.html │ │ │ │ │ ├── RedefineState.html │ │ │ │ │ ├── RootIncludedSchemaState.html │ │ │ │ │ ├── RootState.html │ │ │ │ │ ├── SchemaIncludedState.html │ │ │ │ │ ├── SchemaState.html │ │ │ │ │ ├── SimpleContentExtensionState.html │ │ │ │ │ ├── SimpleContentRestrictionState.html │ │ │ │ │ ├── SimpleContentState.html │ │ │ │ │ ├── WSDLGrammarReaderController.html │ │ │ │ │ ├── WSDLSchemaReader.html │ │ │ │ │ ├── XMLSchemaReader.RefResolver.html │ │ │ │ │ ├── XMLSchemaReader.StateFactory.html │ │ │ │ │ ├── XMLSchemaReader.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── AnyAttributeOwner.html │ │ │ │ │ ├── AnyAttributeState.html │ │ │ │ │ ├── AnyElementState.html │ │ │ │ │ ├── AnyState.html │ │ │ │ │ ├── AttributeGroupState.html │ │ │ │ │ ├── AttributeState.html │ │ │ │ │ ├── AttributeWildcardComputer.html │ │ │ │ │ ├── ComplexContentBodyState.html │ │ │ │ │ ├── ComplexContentState.html │ │ │ │ │ ├── ComplexTypeDeclState.html │ │ │ │ │ ├── DOMLSInputImpl.html │ │ │ │ │ ├── ElementDeclState.html │ │ │ │ │ ├── ElementRefState.html │ │ │ │ │ ├── EmbeddedSchema.html │ │ │ │ │ ├── GlobalDeclState.html │ │ │ │ │ ├── GroupState.html │ │ │ │ │ ├── IdentityConstraintState.html │ │ │ │ │ ├── ImportState.html │ │ │ │ │ ├── IncludeState.html │ │ │ │ │ ├── MultiSchemaReader.html │ │ │ │ │ ├── RedefinableDeclState.html │ │ │ │ │ ├── RedefineState.html │ │ │ │ │ ├── RootIncludedSchemaState.html │ │ │ │ │ ├── RootState.html │ │ │ │ │ ├── SchemaIncludedState.html │ │ │ │ │ ├── SchemaState.html │ │ │ │ │ ├── SimpleContentExtensionState.html │ │ │ │ │ ├── SimpleContentRestrictionState.html │ │ │ │ │ ├── SimpleContentState.html │ │ │ │ │ ├── WSDLGrammarReaderController.html │ │ │ │ │ ├── WSDLSchemaReader.html │ │ │ │ │ ├── XMLSchemaReader.RefResolver.html │ │ │ │ │ ├── XMLSchemaReader.StateFactory.html │ │ │ │ │ └── XMLSchemaReader.html │ │ │ │ │ ├── doc-files │ │ │ │ │ ├── redefine.vsd │ │ │ │ │ ├── redefine1.gif │ │ │ │ │ ├── redefine2.gif │ │ │ │ │ ├── redefine3.gif │ │ │ │ │ └── redefine4.gif │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── relaxns │ │ │ │ ├── grammar │ │ │ │ │ ├── DeclImpl.html │ │ │ │ │ ├── ExternalAttributeExp.html │ │ │ │ │ ├── ExternalElementExp.html │ │ │ │ │ ├── RELAXGrammar.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── DeclImpl.html │ │ │ │ │ │ ├── ExternalAttributeExp.html │ │ │ │ │ │ ├── ExternalElementExp.html │ │ │ │ │ │ └── RELAXGrammar.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ ├── package-use.html │ │ │ │ │ ├── relax │ │ │ │ │ │ ├── AnyOtherElementExp.html │ │ │ │ │ │ ├── Localizer.html │ │ │ │ │ │ ├── RELAXIslandSchema.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ │ ├── AnyOtherElementExp.html │ │ │ │ │ │ │ ├── Localizer.html │ │ │ │ │ │ │ └── RELAXIslandSchema.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ │ └── trex │ │ │ │ │ │ ├── TREXIslandSchema.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ └── TREXIslandSchema.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ ├── reader │ │ │ │ │ ├── GrammarState.html │ │ │ │ │ ├── IncludeGrammarState.html │ │ │ │ │ ├── NamespaceState.html │ │ │ │ │ ├── RELAXNSReader.html │ │ │ │ │ ├── RootGrammarState.html │ │ │ │ │ ├── TopLevelState.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── GrammarState.html │ │ │ │ │ │ ├── IncludeGrammarState.html │ │ │ │ │ │ ├── NamespaceState.html │ │ │ │ │ │ ├── RELAXNSReader.html │ │ │ │ │ │ ├── RootGrammarState.html │ │ │ │ │ │ └── TopLevelState.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ ├── package-use.html │ │ │ │ │ ├── relax │ │ │ │ │ │ ├── AnyOtherElementState.html │ │ │ │ │ │ ├── RELAXCoreIslandSchemaReader.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ │ ├── AnyOtherElementState.html │ │ │ │ │ │ │ └── RELAXCoreIslandSchemaReader.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ │ └── trex │ │ │ │ │ │ ├── TREXIslandSchemaReader.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ └── TREXIslandSchemaReader.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ └── verifier │ │ │ │ │ ├── AnyOtherElementVerifier.html │ │ │ │ │ ├── ErrorHandlerAdaptor.html │ │ │ │ │ ├── IslandSchemaImpl.Binder.html │ │ │ │ │ ├── IslandSchemaImpl.html │ │ │ │ │ ├── RulesAcceptor.html │ │ │ │ │ ├── SchemaProviderImpl.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── AnyOtherElementVerifier.html │ │ │ │ │ ├── ErrorHandlerAdaptor.html │ │ │ │ │ ├── IslandSchemaImpl.Binder.html │ │ │ │ │ ├── IslandSchemaImpl.html │ │ │ │ │ ├── RulesAcceptor.html │ │ │ │ │ └── SchemaProviderImpl.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── scanner │ │ │ │ └── dtd │ │ │ │ │ ├── DTDEventListener.html │ │ │ │ │ ├── DTDHandlerBase.html │ │ │ │ │ ├── DTDParser.html │ │ │ │ │ ├── InputEntity.html │ │ │ │ │ ├── MessageCatalog.html │ │ │ │ │ ├── Resolver.html │ │ │ │ │ ├── XmlChars.html │ │ │ │ │ ├── XmlNames.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── DTDEventListener.html │ │ │ │ │ ├── DTDHandlerBase.html │ │ │ │ │ ├── DTDParser.html │ │ │ │ │ ├── InputEntity.html │ │ │ │ │ ├── MessageCatalog.html │ │ │ │ │ ├── Resolver.html │ │ │ │ │ ├── XmlChars.html │ │ │ │ │ └── XmlNames.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── util │ │ │ │ ├── DatatypeRef.html │ │ │ │ ├── LightStack.html │ │ │ │ ├── StartTagInfo.html │ │ │ │ ├── StringPair.html │ │ │ │ ├── StringRef.html │ │ │ │ ├── Uri.html │ │ │ │ ├── Util.html │ │ │ │ ├── class-use │ │ │ │ │ ├── DatatypeRef.html │ │ │ │ │ ├── LightStack.html │ │ │ │ │ ├── StartTagInfo.html │ │ │ │ │ ├── StringPair.html │ │ │ │ │ ├── StringRef.html │ │ │ │ │ ├── Uri.html │ │ │ │ │ └── Util.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ ├── package-use.html │ │ │ │ └── xml │ │ │ │ │ ├── DOMBuilder.html │ │ │ │ │ ├── DOMVisitor.html │ │ │ │ │ ├── DocumentFilter.html │ │ │ │ │ ├── SAXEventGenerator.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── DOMBuilder.html │ │ │ │ │ ├── DOMVisitor.html │ │ │ │ │ ├── DocumentFilter.html │ │ │ │ │ └── SAXEventGenerator.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── verifier │ │ │ │ ├── AbstractVerifier.html │ │ │ │ ├── Acceptor.html │ │ │ │ ├── DocumentDeclaration.html │ │ │ │ ├── ErrorInfo.BadAttribute.html │ │ │ │ ├── ErrorInfo.BadTagName.html │ │ │ │ ├── ErrorInfo.BadText.html │ │ │ │ ├── ErrorInfo.ElementErrorInfo.html │ │ │ │ ├── ErrorInfo.IncompleteContentModel.html │ │ │ │ ├── ErrorInfo.MissingAttribute.html │ │ │ │ ├── ErrorInfo.html │ │ │ │ ├── IVerifier.html │ │ │ │ ├── ValidationUnrecoverableException.html │ │ │ │ ├── ValidityViolation.html │ │ │ │ ├── Verifier.html │ │ │ │ ├── VerifierFilter.html │ │ │ │ ├── class-use │ │ │ │ │ ├── AbstractVerifier.html │ │ │ │ │ ├── Acceptor.html │ │ │ │ │ ├── DocumentDeclaration.html │ │ │ │ │ ├── ErrorInfo.BadAttribute.html │ │ │ │ │ ├── ErrorInfo.BadTagName.html │ │ │ │ │ ├── ErrorInfo.BadText.html │ │ │ │ │ ├── ErrorInfo.ElementErrorInfo.html │ │ │ │ │ ├── ErrorInfo.IncompleteContentModel.html │ │ │ │ │ ├── ErrorInfo.MissingAttribute.html │ │ │ │ │ ├── ErrorInfo.html │ │ │ │ │ ├── IVerifier.html │ │ │ │ │ ├── ValidationUnrecoverableException.html │ │ │ │ │ ├── ValidityViolation.html │ │ │ │ │ ├── Verifier.html │ │ │ │ │ └── VerifierFilter.html │ │ │ │ ├── identity │ │ │ │ │ ├── FieldMatcher.html │ │ │ │ │ ├── FieldsMatcher.html │ │ │ │ │ ├── IDConstraintChecker.html │ │ │ │ │ ├── Matcher.html │ │ │ │ │ ├── PathMatcher.html │ │ │ │ │ ├── SelectorMatcher.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── FieldMatcher.html │ │ │ │ │ │ ├── FieldsMatcher.html │ │ │ │ │ │ ├── IDConstraintChecker.html │ │ │ │ │ │ ├── Matcher.html │ │ │ │ │ │ ├── PathMatcher.html │ │ │ │ │ │ └── SelectorMatcher.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── jarv │ │ │ │ │ ├── Const.html │ │ │ │ │ ├── DTDFactoryImpl.html │ │ │ │ │ ├── FactoryImpl.html │ │ │ │ │ ├── FactoryLoaderImpl.html │ │ │ │ │ ├── RELAXCoreFactoryImpl.html │ │ │ │ │ ├── RELAXNGFactoryImpl.html │ │ │ │ │ ├── SchemaImpl.html │ │ │ │ │ ├── TREXFactoryImpl.html │ │ │ │ │ ├── TheFactoryImpl.html │ │ │ │ │ ├── XSFactoryImpl.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── Const.html │ │ │ │ │ │ ├── DTDFactoryImpl.html │ │ │ │ │ │ ├── FactoryImpl.html │ │ │ │ │ │ ├── FactoryLoaderImpl.html │ │ │ │ │ │ ├── RELAXCoreFactoryImpl.html │ │ │ │ │ │ ├── RELAXNGFactoryImpl.html │ │ │ │ │ │ ├── SchemaImpl.html │ │ │ │ │ │ ├── TREXFactoryImpl.html │ │ │ │ │ │ ├── TheFactoryImpl.html │ │ │ │ │ │ └── XSFactoryImpl.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── jaxp │ │ │ │ │ ├── Const.html │ │ │ │ │ ├── DocumentBuilderFactoryImpl.html │ │ │ │ │ ├── SAXParserFactoryImpl.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── Const.html │ │ │ │ │ │ ├── DocumentBuilderFactoryImpl.html │ │ │ │ │ │ └── SAXParserFactoryImpl.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ ├── package-use.html │ │ │ │ ├── psvi │ │ │ │ │ ├── TypeDetector.AmbiguousDocumentException.html │ │ │ │ │ ├── TypeDetector.html │ │ │ │ │ ├── TypedContentHandler.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── TypeDetector.AmbiguousDocumentException.html │ │ │ │ │ │ ├── TypeDetector.html │ │ │ │ │ │ └── TypedContentHandler.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ ├── regexp │ │ │ │ │ ├── AnyElementToken.html │ │ │ │ │ ├── AttributeFeeder.html │ │ │ │ │ ├── AttributePicker.html │ │ │ │ │ ├── AttributePruner.html │ │ │ │ │ ├── AttributeRemover.html │ │ │ │ │ ├── AttributeToken.html │ │ │ │ │ ├── CombinedChildContentExpCreator.ExpressionPair.html │ │ │ │ │ ├── CombinedChildContentExpCreator.html │ │ │ │ │ ├── ComplexAcceptor.html │ │ │ │ │ ├── ComplexAcceptorBaseImpl.html │ │ │ │ │ ├── ContentModelAcceptor.html │ │ │ │ │ ├── ContentModelRefExpRemover.html │ │ │ │ │ ├── ElementToken.html │ │ │ │ │ ├── ElementsOfConcernCollector.html │ │ │ │ │ ├── ExpressionAcceptor.html │ │ │ │ │ ├── REDocumentDeclaration.html │ │ │ │ │ ├── ResidualCalculator.html │ │ │ │ │ ├── SimpleAcceptor.html │ │ │ │ │ ├── StringCareLevelCalculator.html │ │ │ │ │ ├── StringToken.html │ │ │ │ │ ├── Token.html │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── AnyElementToken.html │ │ │ │ │ │ ├── AttributeFeeder.html │ │ │ │ │ │ ├── AttributePicker.html │ │ │ │ │ │ ├── AttributePruner.html │ │ │ │ │ │ ├── AttributeRemover.html │ │ │ │ │ │ ├── AttributeToken.html │ │ │ │ │ │ ├── CombinedChildContentExpCreator.ExpressionPair.html │ │ │ │ │ │ ├── CombinedChildContentExpCreator.html │ │ │ │ │ │ ├── ComplexAcceptor.html │ │ │ │ │ │ ├── ComplexAcceptorBaseImpl.html │ │ │ │ │ │ ├── ContentModelAcceptor.html │ │ │ │ │ │ ├── ContentModelRefExpRemover.html │ │ │ │ │ │ ├── ElementToken.html │ │ │ │ │ │ ├── ElementsOfConcernCollector.html │ │ │ │ │ │ ├── ExpressionAcceptor.html │ │ │ │ │ │ ├── REDocumentDeclaration.html │ │ │ │ │ │ ├── ResidualCalculator.html │ │ │ │ │ │ ├── SimpleAcceptor.html │ │ │ │ │ │ ├── StringCareLevelCalculator.html │ │ │ │ │ │ ├── StringToken.html │ │ │ │ │ │ └── Token.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ ├── package-use.html │ │ │ │ │ └── xmlschema │ │ │ │ │ │ ├── XSAcceptor.html │ │ │ │ │ │ ├── XSREDocDecl.html │ │ │ │ │ │ ├── class-use │ │ │ │ │ │ ├── XSAcceptor.html │ │ │ │ │ │ └── XSREDocDecl.html │ │ │ │ │ │ ├── package-summary.html │ │ │ │ │ │ ├── package-tree.html │ │ │ │ │ │ └── package-use.html │ │ │ │ └── util │ │ │ │ │ ├── ErrorHandlerImpl.html │ │ │ │ │ ├── IgnoreErrorHandler.html │ │ │ │ │ ├── class-use │ │ │ │ │ ├── ErrorHandlerImpl.html │ │ │ │ │ └── IgnoreErrorHandler.html │ │ │ │ │ ├── package-summary.html │ │ │ │ │ ├── package-tree.html │ │ │ │ │ └── package-use.html │ │ │ │ └── writer │ │ │ │ ├── ContentHandlerAdaptor.html │ │ │ │ ├── GrammarWriter.html │ │ │ │ ├── SAXRuntimeException.html │ │ │ │ ├── XMLWriter.html │ │ │ │ ├── class-use │ │ │ │ ├── ContentHandlerAdaptor.html │ │ │ │ ├── GrammarWriter.html │ │ │ │ ├── SAXRuntimeException.html │ │ │ │ └── XMLWriter.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ ├── package-use.html │ │ │ │ └── relaxng │ │ │ │ ├── Context.html │ │ │ │ ├── NameClassWriter.html │ │ │ │ ├── PatternWriter.html │ │ │ │ ├── RELAXNGWriter.html │ │ │ │ ├── class-use │ │ │ │ ├── Context.html │ │ │ │ ├── NameClassWriter.html │ │ │ │ ├── PatternWriter.html │ │ │ │ └── RELAXNGWriter.html │ │ │ │ ├── doc-files │ │ │ │ ├── Island.gif │ │ │ │ ├── Island_Before.gif │ │ │ │ ├── Island_Merged.gif │ │ │ │ ├── RELAXNGWriter.vsd │ │ │ │ └── simpleAGM.gif │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ ├── constant-values.html │ │ ├── deprecated-list.html │ │ ├── element-list │ │ ├── help-doc.html │ │ ├── index-all.html │ │ ├── index.html │ │ ├── jquery-ui.overrides.css │ │ ├── legal │ │ │ ├── ASSEMBLY_EXCEPTION │ │ │ ├── jquery.md │ │ │ └── jqueryUI.md │ │ ├── member-search-index.js │ │ ├── module-search-index.js │ │ ├── overview-summary.html │ │ ├── overview-tree.html │ │ ├── package-search-index.js │ │ ├── resources │ │ │ ├── glass.png │ │ │ └── x.png │ │ ├── script-dir │ │ │ ├── images │ │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ │ ├── ui-bg_glass_65_dadada_1x400.png │ │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ │ │ ├── ui-icons_222222_256x240.png │ │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ │ ├── ui-icons_454545_256x240.png │ │ │ │ ├── ui-icons_888888_256x240.png │ │ │ │ └── ui-icons_cd0a0a_256x240.png │ │ │ ├── jquery-3.5.1.min.js │ │ │ ├── jquery-ui.min.css │ │ │ ├── jquery-ui.min.js │ │ │ └── jquery-ui.structure.min.css │ │ ├── script.js │ │ ├── search.js │ │ ├── serialized-form.html │ │ ├── stylesheet.css │ │ ├── tag-search-index.js │ │ └── type-search-index.js │ ├── commandline.html │ ├── history.txt │ ├── index.html │ ├── license.txt │ └── nativeAPI.html ├── generator │ ├── Apache-LICENSE-1.1.txt │ ├── HowToUse.html │ ├── README.md │ ├── copyright.txt │ └── license.txt ├── index.md ├── relames │ ├── Apache-LICENSE-1.1.txt │ ├── README.md │ └── copyright.txt ├── rngconverter │ ├── Apache-LICENSE-1.1.txt │ ├── README.md │ ├── copyright.txt │ └── license.txt ├── schmit │ ├── former-project-proposal.txt │ └── readme.html ├── tahiti │ ├── Apache-LICENSE-1.1.txt │ ├── README.md │ ├── RELAX NG Bind.docbook │ ├── RELAX NG Bind.md │ ├── UsersGuide.docbook │ ├── UsersGuide.md │ ├── copyright.txt │ ├── figures │ │ └── programListingEdge.gif │ ├── tahiti.css │ └── tahiti.xsl ├── trexconverter │ ├── Apache-LICENSE-1.1.txt │ ├── README.md │ └── copyright.txt └── xsdlib │ ├── Apache-LICENSE-1.1.txt │ ├── HowToUse.html │ ├── README.md │ ├── api │ ├── allclasses-index.html │ ├── allpackages-index.html │ ├── com │ │ └── sun │ │ │ ├── msv │ │ │ └── datatype │ │ │ │ ├── DatabindableDatatype.html │ │ │ │ ├── ErrorDatatypeLibrary.html │ │ │ │ ├── SerializationContext.html │ │ │ │ ├── class-use │ │ │ │ ├── DatabindableDatatype.html │ │ │ │ ├── ErrorDatatypeLibrary.html │ │ │ │ └── SerializationContext.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ ├── package-use.html │ │ │ │ ├── regexp │ │ │ │ ├── InternalImpl.html │ │ │ │ ├── class-use │ │ │ │ │ └── InternalImpl.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ │ │ └── xsd │ │ │ │ ├── AnyURIType.html │ │ │ │ ├── Base64BinaryType.html │ │ │ │ ├── BooleanType.html │ │ │ │ ├── BuiltinAtomicType.html │ │ │ │ ├── ByteType.html │ │ │ │ ├── CommandLineTester.html │ │ │ │ ├── Comparator.html │ │ │ │ ├── ConcreteType.html │ │ │ │ ├── DataTypeWithFacet.html │ │ │ │ ├── DatatypeFactory.html │ │ │ │ ├── DateTimeType.html │ │ │ │ ├── DateType.html │ │ │ │ ├── DoubleType.html │ │ │ │ ├── DurationType.html │ │ │ │ ├── EntityType.html │ │ │ │ ├── EnumerationFacet.html │ │ │ │ ├── ErrorType.html │ │ │ │ ├── FinalComponent.html │ │ │ │ ├── FloatType.html │ │ │ │ ├── FractionDigitsFacet.html │ │ │ │ ├── GDayType.html │ │ │ │ ├── GMonthDayType.html │ │ │ │ ├── GMonthType.html │ │ │ │ ├── GYearMonthType.html │ │ │ │ ├── GYearType.html │ │ │ │ ├── HexBinaryType.html │ │ │ │ ├── IDREFType.html │ │ │ │ ├── IDType.html │ │ │ │ ├── IntType.html │ │ │ │ ├── IntegerType.html │ │ │ │ ├── IntegerValueType.html │ │ │ │ ├── LanguageType.html │ │ │ │ ├── LengthFacet.html │ │ │ │ ├── ListType.html │ │ │ │ ├── ListValueType.html │ │ │ │ ├── LongType.html │ │ │ │ ├── MaxExclusiveFacet.html │ │ │ │ ├── MaxInclusiveFacet.html │ │ │ │ ├── MaxLengthFacet.html │ │ │ │ ├── MinExclusiveFacet.html │ │ │ │ ├── MinInclusiveFacet.html │ │ │ │ ├── MinLengthFacet.html │ │ │ │ ├── NameType.html │ │ │ │ ├── NcnameType.html │ │ │ │ ├── NegativeIntegerType.html │ │ │ │ ├── NmtokenType.html │ │ │ │ ├── NonNegativeIntegerType.html │ │ │ │ ├── NonPositiveIntegerType.html │ │ │ │ ├── NormalizedStringType.html │ │ │ │ ├── NumberType.html │ │ │ │ ├── PatternFacet.html │ │ │ │ ├── PositiveIntegerType.html │ │ │ │ ├── Proxy.html │ │ │ │ ├── QnameType.html │ │ │ │ ├── QnameValueType.html │ │ │ │ ├── RangeFacet.html │ │ │ │ ├── ShortType.html │ │ │ │ ├── SimpleURType.html │ │ │ │ ├── StringType.html │ │ │ │ ├── TimeType.html │ │ │ │ ├── TokenType.html │ │ │ │ ├── TotalDigitsFacet.html │ │ │ │ ├── TypeIncubator.html │ │ │ │ ├── UnicodeUtil.html │ │ │ │ ├── UnionType.html │ │ │ │ ├── UnsignedByteType.html │ │ │ │ ├── UnsignedIntType.html │ │ │ │ ├── UnsignedLongType.html │ │ │ │ ├── UnsignedShortType.html │ │ │ │ ├── WhiteSpaceFacet.html │ │ │ │ ├── WhiteSpaceProcessor.html │ │ │ │ ├── XSDatatype.html │ │ │ │ ├── XSDatatypeImpl.html │ │ │ │ ├── XmlNames.html │ │ │ │ ├── class-use │ │ │ │ ├── AnyURIType.html │ │ │ │ ├── Base64BinaryType.html │ │ │ │ ├── BooleanType.html │ │ │ │ ├── BuiltinAtomicType.html │ │ │ │ ├── ByteType.html │ │ │ │ ├── CommandLineTester.html │ │ │ │ ├── Comparator.html │ │ │ │ ├── ConcreteType.html │ │ │ │ ├── DataTypeWithFacet.html │ │ │ │ ├── DatatypeFactory.html │ │ │ │ ├── DateTimeType.html │ │ │ │ ├── DateType.html │ │ │ │ ├── DoubleType.html │ │ │ │ ├── DurationType.html │ │ │ │ ├── EntityType.html │ │ │ │ ├── EnumerationFacet.html │ │ │ │ ├── ErrorType.html │ │ │ │ ├── FinalComponent.html │ │ │ │ ├── FloatType.html │ │ │ │ ├── FractionDigitsFacet.html │ │ │ │ ├── GDayType.html │ │ │ │ ├── GMonthDayType.html │ │ │ │ ├── GMonthType.html │ │ │ │ ├── GYearMonthType.html │ │ │ │ ├── GYearType.html │ │ │ │ ├── HexBinaryType.html │ │ │ │ ├── IDREFType.html │ │ │ │ ├── IDType.html │ │ │ │ ├── IntType.html │ │ │ │ ├── IntegerType.html │ │ │ │ ├── IntegerValueType.html │ │ │ │ ├── LanguageType.html │ │ │ │ ├── LengthFacet.html │ │ │ │ ├── ListType.html │ │ │ │ ├── ListValueType.html │ │ │ │ ├── LongType.html │ │ │ │ ├── MaxExclusiveFacet.html │ │ │ │ ├── MaxInclusiveFacet.html │ │ │ │ ├── MaxLengthFacet.html │ │ │ │ ├── MinExclusiveFacet.html │ │ │ │ ├── MinInclusiveFacet.html │ │ │ │ ├── MinLengthFacet.html │ │ │ │ ├── NameType.html │ │ │ │ ├── NcnameType.html │ │ │ │ ├── NegativeIntegerType.html │ │ │ │ ├── NmtokenType.html │ │ │ │ ├── NonNegativeIntegerType.html │ │ │ │ ├── NonPositiveIntegerType.html │ │ │ │ ├── NormalizedStringType.html │ │ │ │ ├── NumberType.html │ │ │ │ ├── PatternFacet.html │ │ │ │ ├── PositiveIntegerType.html │ │ │ │ ├── Proxy.html │ │ │ │ ├── QnameType.html │ │ │ │ ├── QnameValueType.html │ │ │ │ ├── RangeFacet.html │ │ │ │ ├── ShortType.html │ │ │ │ ├── SimpleURType.html │ │ │ │ ├── StringType.html │ │ │ │ ├── TimeType.html │ │ │ │ ├── TokenType.html │ │ │ │ ├── TotalDigitsFacet.html │ │ │ │ ├── TypeIncubator.html │ │ │ │ ├── UnicodeUtil.html │ │ │ │ ├── UnionType.html │ │ │ │ ├── UnsignedByteType.html │ │ │ │ ├── UnsignedIntType.html │ │ │ │ ├── UnsignedLongType.html │ │ │ │ ├── UnsignedShortType.html │ │ │ │ ├── WhiteSpaceFacet.html │ │ │ │ ├── WhiteSpaceProcessor.html │ │ │ │ ├── XSDatatype.html │ │ │ │ ├── XSDatatypeImpl.html │ │ │ │ └── XmlNames.html │ │ │ │ ├── datetime │ │ │ │ ├── BigDateTimeValueType.html │ │ │ │ ├── BigTimeDurationValueType.html │ │ │ │ ├── CalendarFormatter.html │ │ │ │ ├── CalendarParser.html │ │ │ │ ├── DateTimeFactory.html │ │ │ │ ├── IDateTimeValueType.html │ │ │ │ ├── ITimeDurationValueType.html │ │ │ │ ├── PreciseCalendarFormatter.html │ │ │ │ ├── PreciseCalendarParser.html │ │ │ │ ├── TimeZone.html │ │ │ │ ├── class-use │ │ │ │ │ ├── BigDateTimeValueType.html │ │ │ │ │ ├── BigTimeDurationValueType.html │ │ │ │ │ ├── CalendarFormatter.html │ │ │ │ │ ├── CalendarParser.html │ │ │ │ │ ├── DateTimeFactory.html │ │ │ │ │ ├── IDateTimeValueType.html │ │ │ │ │ ├── ITimeDurationValueType.html │ │ │ │ │ ├── PreciseCalendarFormatter.html │ │ │ │ │ ├── PreciseCalendarParser.html │ │ │ │ │ └── TimeZone.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ │ │ ├── ngimpl │ │ │ │ ├── DataTypeLibraryImpl.html │ │ │ │ ├── class-use │ │ │ │ │ └── DataTypeLibraryImpl.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ ├── package-use.html │ │ │ │ └── regex │ │ │ │ ├── RegExp.html │ │ │ │ ├── RegExpFactory.html │ │ │ │ ├── class-use │ │ │ │ ├── RegExp.html │ │ │ │ └── RegExpFactory.html │ │ │ │ ├── package-summary.html │ │ │ │ ├── package-tree.html │ │ │ │ └── package-use.html │ │ │ └── xml │ │ │ └── util │ │ │ ├── XmlChars.html │ │ │ ├── class-use │ │ │ └── XmlChars.html │ │ │ ├── package-summary.html │ │ │ ├── package-tree.html │ │ │ └── package-use.html │ ├── constant-values.html │ ├── deprecated-list.html │ ├── element-list │ ├── help-doc.html │ ├── index-all.html │ ├── index.html │ ├── jquery-ui.overrides.css │ ├── legal │ │ ├── ASSEMBLY_EXCEPTION │ │ ├── jquery.md │ │ └── jqueryUI.md │ ├── member-search-index.js │ ├── module-search-index.js │ ├── overview-summary.html │ ├── overview-tree.html │ ├── package-search-index.js │ ├── resources │ │ ├── glass.png │ │ └── x.png │ ├── script-dir │ │ ├── images │ │ │ ├── ui-bg_glass_55_fbf9ee_1x400.png │ │ │ ├── ui-bg_glass_65_dadada_1x400.png │ │ │ ├── ui-bg_glass_75_dadada_1x400.png │ │ │ ├── ui-bg_glass_75_e6e6e6_1x400.png │ │ │ ├── ui-bg_glass_95_fef1ec_1x400.png │ │ │ ├── ui-bg_highlight-soft_75_cccccc_1x100.png │ │ │ ├── ui-icons_222222_256x240.png │ │ │ ├── ui-icons_2e83ff_256x240.png │ │ │ ├── ui-icons_454545_256x240.png │ │ │ ├── ui-icons_888888_256x240.png │ │ │ └── ui-icons_cd0a0a_256x240.png │ │ ├── jquery-3.5.1.min.js │ │ ├── jquery-ui.min.css │ │ ├── jquery-ui.min.js │ │ └── jquery-ui.structure.min.css │ ├── script.js │ ├── search.js │ ├── serialized-form.html │ ├── stylesheet.css │ ├── tag-search-index.js │ └── type-search-index.js │ ├── copyright.txt │ └── license.txt ├── generator ├── README.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── sun │ │ └── msv │ │ └── generator │ │ ├── ContextProviderImpl.java │ │ ├── DOM2toSAX2.java │ │ ├── DOMDecorator.java │ │ ├── DataTypeGenerator.java │ │ ├── DataTypeGeneratorImpl.java │ │ ├── Driver.java │ │ ├── ElementDeclCollector.java │ │ ├── ExampleReader.java │ │ ├── Generator.java │ │ ├── GeneratorOption.java │ │ ├── NameGenerator.java │ │ ├── NoneTypeRemover.java │ │ ├── Rand.java │ │ └── SchemaLocationRemover.java │ └── test │ └── java │ ├── Generator.java │ └── batch │ └── generator │ ├── GeneratorTest.java │ ├── GeneratorTester.java │ └── TestBuilderImpl.java ├── msv ├── README.md ├── contrib │ └── sunmsv.el ├── examples │ ├── errorinfo │ │ └── ErrorReporter.java │ ├── jarv │ │ ├── DOMVerifier.java │ │ ├── GrammarCacheDemo.java │ │ └── JARVDemo.java │ ├── jaxp │ │ └── JAXPWithMSVDemo.java │ ├── psvi │ │ └── PSVIDump.java │ ├── schemaLookup │ │ ├── Main.java │ │ ├── NamespaceReceiver.java │ │ ├── NamespaceScanner.java │ │ ├── bar.xsd │ │ ├── catalog.cat │ │ ├── foo.xsd │ │ ├── readme.txt │ │ └── test.xml │ ├── servlet │ │ ├── build.xml │ │ ├── src │ │ │ └── ValidationServlet.java │ │ └── web │ │ │ ├── WEB-INF │ │ │ └── web.xml │ │ │ └── index.html │ └── xpathloc │ │ ├── Main.java │ │ └── XPathLocationTracker.java ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── sun │ │ │ └── msv │ │ │ ├── driver │ │ │ └── textui │ │ │ │ ├── Debug.java │ │ │ │ ├── DebugController.java │ │ │ │ ├── Driver.java │ │ │ │ └── ReportErrorHandler.java │ │ │ ├── grammar │ │ │ ├── AnyNameClass.java │ │ │ ├── AttributeExp.java │ │ │ ├── BinaryExp.java │ │ │ ├── ChoiceExp.java │ │ │ ├── ChoiceNameClass.java │ │ │ ├── ConcurExp.java │ │ │ ├── DataExp.java │ │ │ ├── DataOrValueExp.java │ │ │ ├── DifferenceNameClass.java │ │ │ ├── ElementExp.java │ │ │ ├── Expression.java │ │ │ ├── ExpressionCloner.java │ │ │ ├── ExpressionPool.java │ │ │ ├── ExpressionVisitor.java │ │ │ ├── ExpressionVisitorBoolean.java │ │ │ ├── ExpressionVisitorExpression.java │ │ │ ├── ExpressionVisitorVoid.java │ │ │ ├── Grammar.java │ │ │ ├── IDContextProvider.java │ │ │ ├── IDContextProvider2.java │ │ │ ├── InterleaveExp.java │ │ │ ├── ListExp.java │ │ │ ├── MixedExp.java │ │ │ ├── NameClass.java │ │ │ ├── NameClassAndExpression.java │ │ │ ├── NameClassVisitor.java │ │ │ ├── NamespaceNameClass.java │ │ │ ├── NotNameClass.java │ │ │ ├── OneOrMoreExp.java │ │ │ ├── OtherExp.java │ │ │ ├── ReferenceContainer.java │ │ │ ├── ReferenceExp.java │ │ │ ├── SequenceExp.java │ │ │ ├── SimpleNameClass.java │ │ │ ├── UnaryExp.java │ │ │ ├── ValueExp.java │ │ │ ├── dtd │ │ │ │ └── LocalNameClass.java │ │ │ ├── relax │ │ │ │ ├── AttPoolClause.java │ │ │ │ ├── ElementRule.java │ │ │ │ ├── ElementRules.java │ │ │ │ ├── EmptyStringType.java │ │ │ │ ├── Exportable.java │ │ │ │ ├── HedgeRules.java │ │ │ │ ├── NoneType.java │ │ │ │ ├── RELAXExpressionVisitor.java │ │ │ │ ├── RELAXExpressionVisitorBoolean.java │ │ │ │ ├── RELAXExpressionVisitorExpression.java │ │ │ │ ├── RELAXExpressionVisitorVoid.java │ │ │ │ ├── RELAXModule.java │ │ │ │ └── TagClause.java │ │ │ ├── relaxng │ │ │ │ ├── RELAXNGGrammar.java │ │ │ │ └── datatype │ │ │ │ │ ├── BuiltinDatatypeLibrary.java │ │ │ │ │ ├── CompatibilityDatatypeLibrary.java │ │ │ │ │ └── DatatypeBuilderImpl.java │ │ │ ├── trex │ │ │ │ ├── ElementPattern.java │ │ │ │ ├── Localizer.java │ │ │ │ ├── TREXGrammar.java │ │ │ │ └── typed │ │ │ │ │ └── TypedElementPattern.java │ │ │ ├── util │ │ │ │ ├── ExpressionFinder.java │ │ │ │ ├── ExpressionPrinter.java │ │ │ │ ├── ExpressionWalker.java │ │ │ │ ├── IDContextProviderWrapper.java │ │ │ │ ├── NameClassCollisionChecker.java │ │ │ │ ├── NameClassComparator.java │ │ │ │ ├── NameClassSimplifier.java │ │ │ │ ├── PossibleNamesCollector.java │ │ │ │ └── RefExpRemover.java │ │ │ └── xmlschema │ │ │ │ ├── AttWildcardExp.java │ │ │ │ ├── AttributeDeclExp.java │ │ │ │ ├── AttributeGroupExp.java │ │ │ │ ├── AttributeWildcard.java │ │ │ │ ├── ComplexTypeExp.java │ │ │ │ ├── ElementDeclExp.java │ │ │ │ ├── Field.java │ │ │ │ ├── GroupDeclExp.java │ │ │ │ ├── IdentityConstraint.java │ │ │ │ ├── KeyConstraint.java │ │ │ │ ├── KeyRefConstraint.java │ │ │ │ ├── LaxDefaultNameClass.java │ │ │ │ ├── OccurrenceExp.java │ │ │ │ ├── RedefinableExp.java │ │ │ │ ├── SimpleTypeExp.java │ │ │ │ ├── SkipElementExp.java │ │ │ │ ├── UniqueConstraint.java │ │ │ │ ├── XMLSchemaGrammar.java │ │ │ │ ├── XMLSchemaSchema.java │ │ │ │ ├── XMLSchemaTypeExp.java │ │ │ │ └── XPath.java │ │ │ ├── reader │ │ │ ├── AbortException.java │ │ │ ├── ChildlessState.java │ │ │ ├── ChoiceState.java │ │ │ ├── Controller.java │ │ │ ├── DOMLSInput.java │ │ │ ├── ExpressionOwner.java │ │ │ ├── ExpressionState.java │ │ │ ├── ExpressionWithChildState.java │ │ │ ├── ExpressionWithoutChildState.java │ │ │ ├── GrammarReader.java │ │ │ ├── GrammarReaderController.java │ │ │ ├── GrammarReaderController2.java │ │ │ ├── IgnoreState.java │ │ │ ├── InterleaveState.java │ │ │ ├── RunAwayExpressionChecker.java │ │ │ ├── SequenceState.java │ │ │ ├── SimpleState.java │ │ │ ├── State.java │ │ │ ├── TerminalState.java │ │ │ ├── datatype │ │ │ │ ├── DataTypeVocabulary.java │ │ │ │ ├── DataTypeVocabularyMap.java │ │ │ │ ├── TypeOwner.java │ │ │ │ └── xsd │ │ │ │ │ ├── FacetState.java │ │ │ │ │ ├── FacetStateParent.java │ │ │ │ │ ├── LazyTypeIncubator.java │ │ │ │ │ ├── ListState.java │ │ │ │ │ ├── RestrictionState.java │ │ │ │ │ ├── SimpleTypeState.java │ │ │ │ │ ├── TypeState.java │ │ │ │ │ ├── TypeWithOneChildState.java │ │ │ │ │ ├── UnionState.java │ │ │ │ │ ├── XSDVocabulary.java │ │ │ │ │ ├── XSDatatypeExp.java │ │ │ │ │ ├── XSDatatypeResolver.java │ │ │ │ │ ├── XSTypeIncubator.java │ │ │ │ │ └── XSTypeOwner.java │ │ │ ├── dtd │ │ │ │ ├── DTDReader.java │ │ │ │ └── Localizer.java │ │ │ ├── relax │ │ │ │ ├── ElementRefState.java │ │ │ │ ├── HedgeRefState.java │ │ │ │ ├── HedgeRuleBaseState.java │ │ │ │ ├── LabelRefState.java │ │ │ │ ├── RELAXReader.java │ │ │ │ └── core │ │ │ │ │ ├── AttPoolRefState.java │ │ │ │ │ ├── AttPoolState.java │ │ │ │ │ ├── AttributeState.java │ │ │ │ │ ├── ClauseState.java │ │ │ │ │ ├── DivInModuleState.java │ │ │ │ │ ├── ElementRuleBaseState.java │ │ │ │ │ ├── ElementRuleWithHedgeState.java │ │ │ │ │ ├── ElementRuleWithTypeState.java │ │ │ │ │ ├── HedgeRuleState.java │ │ │ │ │ ├── IncludeModuleState.java │ │ │ │ │ ├── InlineElementState.java │ │ │ │ │ ├── InlineTagState.java │ │ │ │ │ ├── InterfaceState.java │ │ │ │ │ ├── MixedState.java │ │ │ │ │ ├── ModuleMergeState.java │ │ │ │ │ ├── ModuleState.java │ │ │ │ │ ├── RELAXCoreReader.java │ │ │ │ │ ├── RootModuleMergeState.java │ │ │ │ │ ├── RootModuleState.java │ │ │ │ │ ├── TagState.java │ │ │ │ │ └── checker │ │ │ │ │ ├── DblAttrConstraintChecker.java │ │ │ │ │ ├── ExportedHedgeRuleChecker.java │ │ │ │ │ └── IdAbuseChecker.java │ │ │ ├── trex │ │ │ │ ├── AttributeState.java │ │ │ │ ├── DefineState.java │ │ │ │ ├── DivInGrammarState.java │ │ │ │ ├── ElementState.java │ │ │ │ ├── GrammarState.java │ │ │ │ ├── IncludeMergeState.java │ │ │ │ ├── IncludePatternState.java │ │ │ │ ├── MixedState.java │ │ │ │ ├── NameClassAndExpressionState.java │ │ │ │ ├── NameClassAnyNameState.java │ │ │ │ ├── NameClassChoiceState.java │ │ │ │ ├── NameClassDifferenceState.java │ │ │ │ ├── NameClassNameState.java │ │ │ │ ├── NameClassNotState.java │ │ │ │ ├── NameClassNsNameState.java │ │ │ │ ├── NameClassOwner.java │ │ │ │ ├── NameClassState.java │ │ │ │ ├── NameClassWithChildState.java │ │ │ │ ├── NameClassWithoutChildState.java │ │ │ │ ├── OneOrMoreState.java │ │ │ │ ├── OptionalState.java │ │ │ │ ├── RefState.java │ │ │ │ ├── RootIncludedPatternState.java │ │ │ │ ├── RootMergedGrammarState.java │ │ │ │ ├── RootState.java │ │ │ │ ├── StartState.java │ │ │ │ ├── TREXBaseReader.java │ │ │ │ ├── TREXSequencedStringChecker.java │ │ │ │ ├── ZeroOrMoreState.java │ │ │ │ ├── classic │ │ │ │ │ ├── ConcurState.java │ │ │ │ │ ├── DataState.java │ │ │ │ │ ├── DefineState.java │ │ │ │ │ ├── StringState.java │ │ │ │ │ └── TREXGrammarReader.java │ │ │ │ ├── ng │ │ │ │ │ ├── AttributeState.java │ │ │ │ │ ├── DataParamState.java │ │ │ │ │ ├── DataState.java │ │ │ │ │ ├── DefaultDatatypeLibraryFactory.java │ │ │ │ │ ├── DefineState.java │ │ │ │ │ ├── ElementState.java │ │ │ │ │ ├── GrammarState.java │ │ │ │ │ ├── IncludeMergeState.java │ │ │ │ │ ├── ListState.java │ │ │ │ │ ├── NGNameState.java │ │ │ │ │ ├── RELAXNGReader.java │ │ │ │ │ ├── RefState.java │ │ │ │ │ ├── RestrictionChecker.java │ │ │ │ │ ├── StartState.java │ │ │ │ │ ├── ValueState.java │ │ │ │ │ └── comp │ │ │ │ │ │ ├── CompAttributeState.java │ │ │ │ │ │ ├── CompatibilityChecker.java │ │ │ │ │ │ ├── DefAttCompatibilityChecker.java │ │ │ │ │ │ ├── IDCompatibilityChecker.java │ │ │ │ │ │ └── RELAXNGCompReader.java │ │ │ │ └── typed │ │ │ │ │ ├── TypedElementState.java │ │ │ │ │ └── TypedTREXGrammarInterceptor.java │ │ │ ├── util │ │ │ │ ├── ForkContentHandler.java │ │ │ │ ├── GrammarLoader.java │ │ │ │ └── IgnoreController.java │ │ │ └── xmlschema │ │ │ │ ├── AnyAttributeOwner.java │ │ │ │ ├── AnyAttributeState.java │ │ │ │ ├── AnyElementState.java │ │ │ │ ├── AnyState.java │ │ │ │ ├── AttributeGroupState.java │ │ │ │ ├── AttributeState.java │ │ │ │ ├── AttributeWildcardComputer.java │ │ │ │ ├── ComplexContentBodyState.java │ │ │ │ ├── ComplexContentState.java │ │ │ │ ├── ComplexTypeDeclState.java │ │ │ │ ├── DOMLSInputImpl.java │ │ │ │ ├── ElementDeclState.java │ │ │ │ ├── ElementRefState.java │ │ │ │ ├── EmbeddedSchema.java │ │ │ │ ├── GlobalDeclState.java │ │ │ │ ├── GroupState.java │ │ │ │ ├── IdentityConstraintState.java │ │ │ │ ├── ImportState.java │ │ │ │ ├── IncludeState.java │ │ │ │ ├── MultiSchemaReader.java │ │ │ │ ├── RedefinableDeclState.java │ │ │ │ ├── RedefineState.java │ │ │ │ ├── RootIncludedSchemaState.java │ │ │ │ ├── RootState.java │ │ │ │ ├── SchemaIncludedState.java │ │ │ │ ├── SchemaState.java │ │ │ │ ├── SimpleContentExtensionState.java │ │ │ │ ├── SimpleContentRestrictionState.java │ │ │ │ ├── SimpleContentState.java │ │ │ │ ├── WSDLGrammarReaderController.java │ │ │ │ ├── WSDLSchemaReader.java │ │ │ │ └── XMLSchemaReader.java │ │ │ ├── relaxns │ │ │ ├── grammar │ │ │ │ ├── DeclImpl.java │ │ │ │ ├── ExternalAttributeExp.java │ │ │ │ ├── ExternalElementExp.java │ │ │ │ ├── RELAXGrammar.java │ │ │ │ ├── relax │ │ │ │ │ ├── AnyOtherElementExp.java │ │ │ │ │ ├── ExportedAttPoolGenerator.java │ │ │ │ │ ├── Localizer.java │ │ │ │ │ └── RELAXIslandSchema.java │ │ │ │ └── trex │ │ │ │ │ └── TREXIslandSchema.java │ │ │ ├── reader │ │ │ │ ├── GrammarState.java │ │ │ │ ├── IncludeGrammarState.java │ │ │ │ ├── NamespaceState.java │ │ │ │ ├── RELAXNSReader.java │ │ │ │ ├── RootGrammarMergeState.java │ │ │ │ ├── RootGrammarState.java │ │ │ │ ├── TopLevelState.java │ │ │ │ ├── relax │ │ │ │ │ ├── AnyOtherElementState.java │ │ │ │ │ ├── InterfaceStateEx.java │ │ │ │ │ └── RELAXCoreIslandSchemaReader.java │ │ │ │ └── trex │ │ │ │ │ └── TREXIslandSchemaReader.java │ │ │ └── verifier │ │ │ │ ├── AnyOtherElementVerifier.java │ │ │ │ ├── ErrorHandlerAdaptor.java │ │ │ │ ├── IslandSchemaImpl.java │ │ │ │ ├── Localizer.java │ │ │ │ ├── RulesAcceptor.java │ │ │ │ ├── SchemaProviderImpl.java │ │ │ │ └── TREXIslandVerifier.java │ │ │ ├── scanner │ │ │ └── dtd │ │ │ │ ├── DTDEventListener.java │ │ │ │ ├── DTDHandlerBase.java │ │ │ │ ├── DTDParser.java │ │ │ │ ├── EndOfInputException.java │ │ │ │ ├── EntityDecl.java │ │ │ │ ├── ExternalEntity.java │ │ │ │ ├── InputEntity.java │ │ │ │ ├── InternalEntity.java │ │ │ │ ├── MessageCatalog.java │ │ │ │ ├── Resolver.java │ │ │ │ ├── SimpleHashtable.java │ │ │ │ ├── XmlChars.java │ │ │ │ ├── XmlNames.java │ │ │ │ └── XmlReader.java │ │ │ ├── util │ │ │ ├── DatatypeRef.java │ │ │ ├── LightStack.java │ │ │ ├── StartTagInfo.java │ │ │ ├── StringPair.java │ │ │ ├── StringRef.java │ │ │ ├── Uri.java │ │ │ ├── Util.java │ │ │ └── xml │ │ │ │ ├── DOMBuilder.java │ │ │ │ ├── DOMVisitor.java │ │ │ │ ├── DocumentFilter.java │ │ │ │ └── SAXEventGenerator.java │ │ │ ├── verifier │ │ │ ├── AbstractVerifier.java │ │ │ ├── Acceptor.java │ │ │ ├── DocumentDeclaration.java │ │ │ ├── ErrorInfo.java │ │ │ ├── IVerifier.java │ │ │ ├── ValidationUnrecoverableException.java │ │ │ ├── ValidityViolation.java │ │ │ ├── Verifier.java │ │ │ ├── VerifierFilter.java │ │ │ ├── identity │ │ │ │ ├── FieldMatcher.java │ │ │ │ ├── FieldsMatcher.java │ │ │ │ ├── IDConstraintChecker.java │ │ │ │ ├── KeyValue.java │ │ │ │ ├── Matcher.java │ │ │ │ ├── MatcherBundle.java │ │ │ │ ├── PathMatcher.java │ │ │ │ └── SelectorMatcher.java │ │ │ ├── jarv │ │ │ │ ├── Const.java │ │ │ │ ├── DTDFactoryImpl.java │ │ │ │ ├── FactoryImpl.java │ │ │ │ ├── FactoryLoaderImpl.java │ │ │ │ ├── RELAXCoreFactoryImpl.java │ │ │ │ ├── RELAXNGFactoryImpl.java │ │ │ │ ├── SchemaImpl.java │ │ │ │ ├── TREXFactoryImpl.java │ │ │ │ ├── TheFactoryImpl.java │ │ │ │ ├── VerifierImpl.java │ │ │ │ └── XSFactoryImpl.java │ │ │ ├── jaxp │ │ │ │ ├── Const.java │ │ │ │ ├── DocumentBuilderFactoryImpl.java │ │ │ │ ├── DocumentBuilderImpl.java │ │ │ │ ├── SAXParserFactoryImpl.java │ │ │ │ └── SAXParserImpl.java │ │ │ ├── psvi │ │ │ │ ├── TypeDetector.java │ │ │ │ └── TypedContentHandler.java │ │ │ ├── regexp │ │ │ │ ├── AnyElementToken.java │ │ │ │ ├── AttributeFeeder.java │ │ │ │ ├── AttributePicker.java │ │ │ │ ├── AttributePruner.java │ │ │ │ ├── AttributeRecoveryToken.java │ │ │ │ ├── AttributeRemover.java │ │ │ │ ├── AttributeToken.java │ │ │ │ ├── CombinedChildContentExpCreator.java │ │ │ │ ├── ComplexAcceptor.java │ │ │ │ ├── ComplexAcceptorBaseImpl.java │ │ │ │ ├── ContentModelAcceptor.java │ │ │ │ ├── ContentModelRefExpRemover.java │ │ │ │ ├── ElementToken.java │ │ │ │ ├── ElementsOfConcernCollector.java │ │ │ │ ├── ExpressionAcceptor.java │ │ │ │ ├── OptimizationTag.java │ │ │ │ ├── REDocumentDeclaration.java │ │ │ │ ├── ResidualCalculator.java │ │ │ │ ├── SimpleAcceptor.java │ │ │ │ ├── StringCareLevelCalculator.java │ │ │ │ ├── StringRecoveryToken.java │ │ │ │ ├── StringToken.java │ │ │ │ ├── Token.java │ │ │ │ └── xmlschema │ │ │ │ │ ├── XSAcceptor.java │ │ │ │ │ └── XSREDocDecl.java │ │ │ └── util │ │ │ │ ├── ErrorHandlerImpl.java │ │ │ │ └── IgnoreErrorHandler.java │ │ │ └── writer │ │ │ ├── ContentHandlerAdaptor.java │ │ │ ├── GrammarWriter.java │ │ │ ├── SAXRuntimeException.java │ │ │ ├── XMLWriter.java │ │ │ └── relaxng │ │ │ ├── Context.java │ │ │ ├── NameClassWriter.java │ │ │ ├── PatternWriter.java │ │ │ └── RELAXNGWriter.java │ ├── javadoc │ │ ├── com │ │ │ └── sun │ │ │ │ └── msv │ │ │ │ ├── driver │ │ │ │ └── textui │ │ │ │ │ └── package.html │ │ │ │ ├── grammar │ │ │ │ ├── package.html │ │ │ │ ├── relax │ │ │ │ │ └── package.html │ │ │ │ ├── relaxng │ │ │ │ │ └── datatype │ │ │ │ │ │ └── package.html │ │ │ │ ├── trex │ │ │ │ │ ├── package.html │ │ │ │ │ └── typed │ │ │ │ │ │ └── package.html │ │ │ │ ├── util │ │ │ │ │ └── package.html │ │ │ │ └── xmlschema │ │ │ │ │ └── package.html │ │ │ │ ├── reader │ │ │ │ ├── datatype │ │ │ │ │ ├── package.html │ │ │ │ │ └── xsd │ │ │ │ │ │ └── package.html │ │ │ │ ├── dtd │ │ │ │ │ └── package.html │ │ │ │ ├── package.html │ │ │ │ ├── relax │ │ │ │ │ ├── core │ │ │ │ │ │ ├── checker │ │ │ │ │ │ │ └── package.html │ │ │ │ │ │ └── package.html │ │ │ │ │ └── package.html │ │ │ │ ├── trex │ │ │ │ │ ├── classic │ │ │ │ │ │ └── package.html │ │ │ │ │ ├── ng │ │ │ │ │ │ ├── comp │ │ │ │ │ │ │ └── package.html │ │ │ │ │ │ └── package.html │ │ │ │ │ ├── package.html │ │ │ │ │ └── typed │ │ │ │ │ │ └── package.html │ │ │ │ ├── util │ │ │ │ │ └── package.html │ │ │ │ └── xmlschema │ │ │ │ │ ├── doc-files │ │ │ │ │ ├── redefine.vsd │ │ │ │ │ ├── redefine1.gif │ │ │ │ │ ├── redefine2.gif │ │ │ │ │ ├── redefine3.gif │ │ │ │ │ └── redefine4.gif │ │ │ │ │ └── package.html │ │ │ │ ├── relaxns │ │ │ │ ├── grammar │ │ │ │ │ ├── package.html │ │ │ │ │ ├── relax │ │ │ │ │ │ └── package.html │ │ │ │ │ └── trex │ │ │ │ │ │ └── package.html │ │ │ │ ├── reader │ │ │ │ │ ├── package.html │ │ │ │ │ ├── relax │ │ │ │ │ │ └── package.html │ │ │ │ │ └── trex │ │ │ │ │ │ └── package.html │ │ │ │ └── verifier │ │ │ │ │ └── package.html │ │ │ │ ├── scanner │ │ │ │ └── dtd │ │ │ │ │ └── package.html │ │ │ │ ├── util │ │ │ │ └── package.html │ │ │ │ ├── verifier │ │ │ │ ├── identity │ │ │ │ │ └── package.html │ │ │ │ ├── jarv │ │ │ │ │ └── package.html │ │ │ │ ├── package.html │ │ │ │ ├── psvi │ │ │ │ │ └── package.html │ │ │ │ ├── regexp │ │ │ │ │ ├── package.html │ │ │ │ │ └── xmlschema │ │ │ │ │ │ └── package.html │ │ │ │ └── util │ │ │ │ │ └── package.html │ │ │ │ └── writer │ │ │ │ └── relaxng │ │ │ │ ├── doc-files │ │ │ │ ├── Island.gif │ │ │ │ ├── Island_Before.gif │ │ │ │ ├── Island_Merged.gif │ │ │ │ ├── RELAXNGWriter.vsd │ │ │ │ └── simpleAGM.gif │ │ │ │ └── package.html │ │ └── overview.html │ └── resources │ │ ├── CatalogManager.properties │ │ └── com │ │ └── sun │ │ └── msv │ │ ├── driver │ │ └── textui │ │ │ ├── Messages.properties │ │ │ └── Messages_ja.properties │ │ ├── grammar │ │ ├── relaxng │ │ │ ├── Messages.properties │ │ │ └── Messages_ja.properties │ │ └── trex │ │ │ └── Messages.properties │ │ ├── reader │ │ ├── Messages.properties │ │ ├── Messages_ja.properties │ │ ├── dtd │ │ │ ├── Messages.properties │ │ │ └── Messages_ja.properties │ │ ├── relax │ │ │ ├── Messages.properties │ │ │ ├── Messages_ja.properties │ │ │ └── core │ │ │ │ └── relaxCore.rlx │ │ ├── trex │ │ │ ├── Messages.properties │ │ │ ├── Messages_ja.properties │ │ │ └── ng │ │ │ │ ├── Messages.properties │ │ │ │ ├── Messages_ja.properties │ │ │ │ ├── comp │ │ │ │ ├── Messages.properties │ │ │ │ └── Messages_ja.properties │ │ │ │ └── relaxng.rng │ │ └── xmlschema │ │ │ ├── Messages.properties │ │ │ ├── Messages_ja.properties │ │ │ ├── xml.xsd │ │ │ └── xmlschema.xsd │ │ ├── relaxns │ │ ├── grammar │ │ │ └── relax │ │ │ │ ├── Messages.properties │ │ │ │ └── Messages_ja.properties │ │ └── verifier │ │ │ ├── Messages.properties │ │ │ └── Messages_ja.properties │ │ ├── scanner │ │ └── dtd │ │ │ └── resources │ │ │ └── Messages_en.properties │ │ └── verifier │ │ ├── Messages.properties │ │ ├── Messages_ja.properties │ │ ├── identity │ │ ├── Messages.properties │ │ └── Messages_ja.properties │ │ └── regexp │ │ ├── Messages.properties │ │ ├── Messages_ja.properties │ │ └── xmlschema │ │ ├── Messages.properties │ │ └── Messages_ja.properties │ └── test │ ├── java │ ├── Driver.java │ ├── SerialTestTool.java │ ├── batch │ │ ├── BatchTester.java │ │ ├── ThrowErrorController.java │ │ ├── WordlessErrorReporter.java │ │ ├── driver │ │ │ ├── AbstractValidatorExImpl.java │ │ │ ├── DTDValidator.java │ │ │ ├── GenericValidator.java │ │ │ ├── ISchemaImpl.java │ │ │ ├── IValidatorEx.java │ │ │ ├── IValidatorImpl.java │ │ │ ├── IValidatorImplForRNG.java │ │ │ └── IValidatorImplForXS.java │ │ ├── model │ │ │ ├── ISchema.java │ │ │ ├── IValidator.java │ │ │ ├── TestBuilder.java │ │ │ └── TestReader.java │ │ └── verifier │ │ │ ├── BatchVerifyTester.java │ │ │ ├── DTDBatchTest.java │ │ │ ├── RELAXBatchTest.java │ │ │ ├── RELAXNGBatchTest.java │ │ │ ├── TREXBatchTest.java │ │ │ ├── TestBuilderImpl.java │ │ │ └── XSDBatchTest.java │ ├── com │ │ └── sun │ │ │ └── msv │ │ │ ├── driver │ │ │ └── textui │ │ │ │ ├── DriverTest.java │ │ │ │ └── ReportErrorHandlerTest.java │ │ │ ├── grammar │ │ │ └── util │ │ │ │ └── NameClassSimplifierTest.java │ │ │ ├── integrationtest │ │ │ ├── JarCiiD16BInvoice_IT.java │ │ │ ├── JarCiiD16BMultiPrefixIT.java │ │ │ ├── JarOdf13FailingIT.java │ │ │ ├── JarOdf13MultiPrefixIT.java │ │ │ ├── JarOdf13WorkingIT.java │ │ │ ├── JarRunner.java │ │ │ ├── JarUbl12CreditNoteExample1_IT.java │ │ │ ├── JarUbl12InvoiceExample1_IT.java │ │ │ ├── JarUbl12InvoiceExample2_IT.java │ │ │ ├── JarUbl23CreditNote_IT.java │ │ │ ├── JarUbl23Invoice_IT.java │ │ │ ├── JarUbl23Order_IT.java │ │ │ └── JarVersionIT.java │ │ │ ├── reader │ │ │ ├── dtd │ │ │ │ └── DTDReaderTest.java │ │ │ ├── relax │ │ │ │ └── core │ │ │ │ │ └── RELAXCoreReaderTest.java │ │ │ ├── trex │ │ │ │ ├── classic │ │ │ │ │ └── TREXGrammarReaderTest.java │ │ │ │ └── ng │ │ │ │ │ └── RELAXNGReaderTest.java │ │ │ └── xmlschema │ │ │ │ ├── MultiSchemaReaderTest.java │ │ │ │ └── XMLSchemaReaderTest.java │ │ │ ├── relaxns │ │ │ ├── grammar │ │ │ │ └── relax │ │ │ │ │ └── LocalizerTest.java │ │ │ ├── reader │ │ │ │ └── RELAXNSReaderTest.java │ │ │ └── verifier │ │ │ │ ├── IslandSchemaTest.java │ │ │ │ └── LocalizerTest.java │ │ │ ├── scanner │ │ │ └── dtd │ │ │ │ ├── DTDTestCase.java │ │ │ │ ├── Driver.java │ │ │ │ ├── DumpHandler.java │ │ │ │ └── TestHandler.java │ │ │ ├── util │ │ │ ├── StringPairTest.java │ │ │ └── UriTester.java │ │ │ └── verifier │ │ │ ├── TypeReporter.java │ │ │ ├── VerifierTest.java │ │ │ ├── identity │ │ │ └── IDConstraintCheckerTest.java │ │ │ ├── jarv │ │ │ ├── FactoryLoaderTester.java │ │ │ ├── JARVTester.java │ │ │ └── TheFactoryImplTester.java │ │ │ ├── jaxp │ │ │ ├── DOMBuilderTest.java │ │ │ ├── SAXParserTest.java │ │ │ └── TestConst.java │ │ │ ├── multithread │ │ │ └── Daemon.java │ │ │ └── regexp │ │ │ └── REDocumentDeclarationTest.java │ └── util │ │ ├── Checker.java │ │ └── ResourceChecker.java │ └── resources │ ├── files │ ├── D16B SCRDM (Subset) │ │ └── CII_example1.xml │ ├── cii-multi-prefix.xml │ ├── odf-multi-prefix.xml │ ├── odf1.3 │ │ ├── character-styles.odt │ │ └── character-styles_odt │ │ │ ├── Configurations2 │ │ │ └── accelerator │ │ │ │ └── current.xml │ │ │ ├── META-INF │ │ │ └── manifest.xml │ │ │ ├── Thumbnails │ │ │ └── thumbnail.png │ │ │ ├── content.xml │ │ │ ├── manifest.rdf │ │ │ ├── meta.xml │ │ │ ├── mimetype │ │ │ ├── settings.xml │ │ │ ├── styles.xml │ │ │ └── wrong.xml │ ├── ubl1.2 │ │ ├── ubl-tc434-creditnote1.xml │ │ ├── ubl-tc434-example1.xml │ │ └── ubl-tc434-example2.xml │ └── ubl2.3 │ │ ├── UBL-CreditNote-2.1-Example.xml │ │ ├── UBL-Invoice-2.1-Example.xml │ │ └── UBL-Order-2.1-Example.xml │ ├── grammar │ ├── D16B SCRDM (Subset) │ │ ├── D16B (SCRDM Subset) RELEASE NOTES .doc │ │ ├── News.docx │ │ ├── coupled clm │ │ │ └── CII │ │ │ │ └── uncefact │ │ │ │ ├── codelist │ │ │ │ └── standard │ │ │ │ │ ├── EDIFICAS-EU_AccountingAccountType_D11A.xsd │ │ │ │ │ ├── EDIFICAS-EU_AccountingAmountType_D11A.xsd │ │ │ │ │ ├── ISO_ISO3AlphaCurrencyCode_2012-08-31.xsd │ │ │ │ │ ├── UNECE_ActionCode_D16A.xsd │ │ │ │ │ ├── UNECE_AdjustmentReasonDescriptionCode_D16A.xsd │ │ │ │ │ ├── UNECE_AllowanceChargeIdentificationCode_D16A.xsd │ │ │ │ │ ├── UNECE_AllowanceChargeReasonCode_D16A.xsd │ │ │ │ │ ├── UNECE_AutomaticDataCaptureMethodCode_D16A.xsd │ │ │ │ │ ├── UNECE_CargoOperationalCategoryCode_D16A.xsd │ │ │ │ │ ├── UNECE_CargoTypeCode_1996Rev2Final.xsd │ │ │ │ │ ├── UNECE_CommodityIdentificationCode_D16A.xsd │ │ │ │ │ ├── UNECE_CommunicationMeansTypeCode_D16A.xsd │ │ │ │ │ ├── UNECE_ContactFunctionCode_D16A.xsd │ │ │ │ │ ├── UNECE_DeliveryTermsCode_2010.xsd │ │ │ │ │ ├── UNECE_DimensionTypeCode_D16A.xsd │ │ │ │ │ ├── UNECE_DocumentNameCode_Accounting_D16A.xsd │ │ │ │ │ ├── UNECE_DocumentNameCode_D16A.xsd │ │ │ │ │ ├── UNECE_DocumentStatusCode_D16A.xsd │ │ │ │ │ ├── UNECE_DutyTaxFeeTypeCode_D16A.xsd │ │ │ │ │ ├── UNECE_DutyorTaxorFeeCategoryCode_D16A.xsd │ │ │ │ │ ├── UNECE_EquipmentSizeTypeDescriptionCode_D16A.xsd │ │ │ │ │ ├── UNECE_EventTimeReferenceCodePaymentTermsEvent_D16A.xsd │ │ │ │ │ ├── UNECE_EventTimeReferenceCode_D16A.xsd │ │ │ │ │ ├── UNECE_FreightChargeQuantityUnitBasisCode_D16A.xsd │ │ │ │ │ ├── UNECE_FreightChargeTariffCode_D16A.xsd │ │ │ │ │ ├── UNECE_GoodsTypeCode_D16A.xsd │ │ │ │ │ ├── UNECE_GoodsTypeExtensionCode_D16A.xsd │ │ │ │ │ ├── UNECE_MeasurementUnitCommonCodeLinear_4.xsd │ │ │ │ │ ├── UNECE_MeasurementUnitCommonCodeVolume_4.xsd │ │ │ │ │ ├── UNECE_MeasurementUnitCommonCodeWeight_4.xsd │ │ │ │ │ ├── UNECE_MessageFunctionCode_D16A.xsd │ │ │ │ │ ├── UNECE_PackageTypeCode_2006.xsd │ │ │ │ │ ├── UNECE_PackagingMarkingCode_D16A.xsd │ │ │ │ │ ├── UNECE_PartyRoleCode_ChargePaying_D16A.xsd │ │ │ │ │ ├── UNECE_PartyRoleCode_D16A.xsd │ │ │ │ │ ├── UNECE_PaymentGuaranteeMeansCode_D16A.xsd │ │ │ │ │ ├── UNECE_PaymentMeansChannelCode_D16A.xsd │ │ │ │ │ ├── UNECE_PaymentMeansCode_D16A.xsd │ │ │ │ │ ├── UNECE_PaymentTermsTypeCode_D16A.xsd │ │ │ │ │ ├── UNECE_PriceTypeCode_D16A.xsd │ │ │ │ │ ├── UNECE_ReferenceTypeCode_D16A.xsd │ │ │ │ │ ├── UNECE_TimePointFormatCode_D16A.xsd │ │ │ │ │ ├── UNECE_TransportEquipmentCategoryCode_D16A.xsd │ │ │ │ │ ├── UNECE_TransportEquipmentFullnessCode_D16A.xsd │ │ │ │ │ ├── UNECE_TransportMeansTypeCode_2007.xsd │ │ │ │ │ ├── UNECE_TransportModeCode_2.xsd │ │ │ │ │ └── UNECE_TransportMovementStageCode_D16A.xsd │ │ │ │ ├── data │ │ │ │ └── standard │ │ │ │ │ ├── CrossIndustryInvoice_100pD16B.xsd │ │ │ │ │ ├── CrossIndustryInvoice_QualifiedDataType_100pD16B.xsd │ │ │ │ │ ├── CrossIndustryInvoice_ReusableAggregateBusinessInformationEntity_100pD16B.xsd │ │ │ │ │ └── CrossIndustryInvoice_UnqualifiedDataType_100pD16B.xsd │ │ │ │ └── identifierlist │ │ │ │ └── standard │ │ │ │ ├── ISO_ISOTwo-letterCountryCode_SecondEdition2006.xsd │ │ │ │ ├── UNECE_FreightCostCode_4.xsd │ │ │ │ └── UNECE_PaymentTermsDescriptionIdentifier_D16A.xsd │ │ └── uncoupled clm │ │ │ └── CII │ │ │ └── uncefact │ │ │ ├── codelist │ │ │ └── standard │ │ │ │ ├── EDIFICAS-EU_AccountingAccountType_D11A.xsd │ │ │ │ ├── EDIFICAS-EU_AccountingAmountType_D11A.xsd │ │ │ │ ├── ISO_ISO3AlphaCurrencyCode_2012-08-31.xsd │ │ │ │ ├── UNECE_ActionCode_D16A.xsd │ │ │ │ ├── UNECE_AdjustmentReasonDescriptionCode_D16A.xsd │ │ │ │ ├── UNECE_AllowanceChargeIdentificationCode_D16A.xsd │ │ │ │ ├── UNECE_AllowanceChargeReasonCode_D16A.xsd │ │ │ │ ├── UNECE_AutomaticDataCaptureMethodCode_D16A.xsd │ │ │ │ ├── UNECE_CargoOperationalCategoryCode_D16A.xsd │ │ │ │ ├── UNECE_CargoTypeCode_1996Rev2Final.xsd │ │ │ │ ├── UNECE_CommodityIdentificationCode_D16A.xsd │ │ │ │ ├── UNECE_CommunicationMeansTypeCode_D16A.xsd │ │ │ │ ├── UNECE_ContactFunctionCode_D16A.xsd │ │ │ │ ├── UNECE_DeliveryTermsCode_2010.xsd │ │ │ │ ├── UNECE_DimensionTypeCode_D16A.xsd │ │ │ │ ├── UNECE_DocumentNameCode_Accounting_D16A.xsd │ │ │ │ ├── UNECE_DocumentNameCode_D16A.xsd │ │ │ │ ├── UNECE_DocumentStatusCode_D16A.xsd │ │ │ │ ├── UNECE_DutyTaxFeeTypeCode_D16A.xsd │ │ │ │ ├── UNECE_DutyorTaxorFeeCategoryCode_D16A.xsd │ │ │ │ ├── UNECE_EquipmentSizeTypeDescriptionCode_D16A.xsd │ │ │ │ ├── UNECE_EventTimeReferenceCodePaymentTermsEvent_D16A.xsd │ │ │ │ ├── UNECE_EventTimeReferenceCode_D16A.xsd │ │ │ │ ├── UNECE_FreightChargeQuantityUnitBasisCode_D16A.xsd │ │ │ │ ├── UNECE_FreightChargeTariffCode_D16A.xsd │ │ │ │ ├── UNECE_GoodsTypeCode_D16A.xsd │ │ │ │ ├── UNECE_GoodsTypeExtensionCode_D16A.xsd │ │ │ │ ├── UNECE_MeasurementUnitCommonCodeLinear_4.xsd │ │ │ │ ├── UNECE_MeasurementUnitCommonCodeVolume_4.xsd │ │ │ │ ├── UNECE_MeasurementUnitCommonCodeWeight_4.xsd │ │ │ │ ├── UNECE_MessageFunctionCode_D16A.xsd │ │ │ │ ├── UNECE_PackageTypeCode_2006.xsd │ │ │ │ ├── UNECE_PackagingMarkingCode_D16A.xsd │ │ │ │ ├── UNECE_PartyRoleCode_ChargePaying_D16A.xsd │ │ │ │ ├── UNECE_PartyRoleCode_D16A.xsd │ │ │ │ ├── UNECE_PaymentGuaranteeMeansCode_D16A.xsd │ │ │ │ ├── UNECE_PaymentMeansChannelCode_D16A.xsd │ │ │ │ ├── UNECE_PaymentMeansCode_D16A.xsd │ │ │ │ ├── UNECE_PaymentTermsTypeCode_D16A.xsd │ │ │ │ ├── UNECE_PriceTypeCode_D16A.xsd │ │ │ │ ├── UNECE_ReferenceTypeCode_D16A.xsd │ │ │ │ ├── UNECE_TimePointFormatCode_D16A.xsd │ │ │ │ ├── UNECE_TransportEquipmentCategoryCode_D16A.xsd │ │ │ │ ├── UNECE_TransportEquipmentFullnessCode_D16A.xsd │ │ │ │ ├── UNECE_TransportMeansTypeCode_2007.xsd │ │ │ │ ├── UNECE_TransportModeCode_2.xsd │ │ │ │ └── UNECE_TransportMovementStageCode_D16A.xsd │ │ │ ├── data │ │ │ └── standard │ │ │ │ ├── CrossIndustryInvoice_100pD16B.xsd │ │ │ │ ├── CrossIndustryInvoice_QualifiedDataType_100pD16B.xsd │ │ │ │ ├── CrossIndustryInvoice_ReusableAggregateBusinessInformationEntity_100pD16B.xsd │ │ │ │ └── CrossIndustryInvoice_UnqualifiedDataType_100pD16B.xsd │ │ │ └── identifierlist │ │ │ └── standard │ │ │ ├── ISO_ISOTwo-letterCountryCode_SecondEdition2006.xsd │ │ │ ├── UNECE_FreightCostCode_4.xsd │ │ │ └── UNECE_PaymentTermsDescriptionIdentifier_D16A.xsd │ ├── odf1.3 │ │ └── OpenDocument-v1.3-schema.rng │ ├── ubl1.2 │ │ └── xsd │ │ │ ├── common │ │ │ ├── CCTS_CCT_SchemaModule-2.1.xsd │ │ │ ├── UBL-CommonAggregateComponents-2.1.xsd │ │ │ ├── UBL-CommonBasicComponents-2.1.xsd │ │ │ ├── UBL-CommonExtensionComponents-2.1.xsd │ │ │ ├── UBL-CommonSignatureComponents-2.1.xsd │ │ │ ├── UBL-CoreComponentParameters-2.1.xsd │ │ │ ├── UBL-ExtensionContentDataType-2.1.xsd │ │ │ ├── UBL-QualifiedDataTypes-2.1.xsd │ │ │ ├── UBL-SignatureAggregateComponents-2.1.xsd │ │ │ ├── UBL-SignatureBasicComponents-2.1.xsd │ │ │ ├── UBL-UnqualifiedDataTypes-2.1.xsd │ │ │ ├── UBL-XAdESv132-2.1.xsd │ │ │ ├── UBL-XAdESv141-2.1.xsd │ │ │ └── UBL-xmldsig-core-schema-2.1.xsd │ │ │ └── maindoc │ │ │ ├── UBL-CreditNote-2.1.xsd │ │ │ └── UBL-Invoice-2.1.xsd │ └── ubl2.3 │ │ └── xsd │ │ ├── common │ │ ├── BDNDR-CCTS_CCT_SchemaModule-1.1.xsd │ │ ├── BDNDR-UnqualifiedDataTypes-1.1.xsd │ │ ├── UBL-CommonAggregateComponents-2.3.xsd │ │ ├── UBL-CommonBasicComponents-2.3.xsd │ │ ├── UBL-CommonExtensionComponents-2.3.xsd │ │ ├── UBL-CommonSignatureComponents-2.3.xsd │ │ ├── UBL-ExtensionContentDataType-2.3.xsd │ │ ├── UBL-QualifiedDataTypes-2.3.xsd │ │ ├── UBL-SignatureAggregateComponents-2.3.xsd │ │ ├── UBL-SignatureBasicComponents-2.3.xsd │ │ ├── UBL-XAdES01903v132-201601-2.3.xsd │ │ ├── UBL-XAdES01903v141-201601-2.3.xsd │ │ ├── UBL-xmldsig-core-schema-2.3.xsd │ │ ├── UBL-xmldsig1-schema-2.3.xsd │ │ └── UBL-xmldsig11-schema-2.3.xsd │ │ └── maindoc │ │ ├── UBL-CreditNote-2.3.xsd │ │ ├── UBL-Invoice-2.3.xsd │ │ └── UBL-Order-2.3.xsd │ ├── multireference.wsdl │ └── test.wsdl ├── pom.xml ├── relames ├── README.md ├── pom.xml ├── schemas │ ├── id.rng │ └── id.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── sun │ │ │ └── msv │ │ │ └── schematron │ │ │ ├── Driver.java │ │ │ ├── grammar │ │ │ ├── SAction.java │ │ │ ├── SActions.java │ │ │ ├── SElementExp.java │ │ │ └── SRule.java │ │ │ ├── jarv │ │ │ ├── FactoryLoaderImpl.java │ │ │ ├── RelamesFactoryImpl.java │ │ │ ├── RelamesSchemaImpl.java │ │ │ └── RelamesVerifierImpl.java │ │ │ ├── reader │ │ │ ├── PrefixResolverImpl.java │ │ │ ├── SActionReceiver.java │ │ │ ├── SActionState.java │ │ │ ├── SElementState.java │ │ │ ├── SGrammarState.java │ │ │ ├── SPatternState.java │ │ │ ├── SRELAXNGReader.java │ │ │ ├── SRootMergedGrammarState.java │ │ │ ├── SRuleReceiver.java │ │ │ └── SRuleState.java │ │ │ ├── util │ │ │ └── DOMBuilder.java │ │ │ └── verifier │ │ │ ├── Loc.java │ │ │ └── RelmesVerifier.java │ └── resources │ │ ├── META-INF │ │ ├── MANIFEST.MF │ │ └── services │ │ │ └── org.iso_relax.verifier.VerifierFactoryLoader │ │ └── com │ │ └── sun │ │ └── msv │ │ └── schematron │ │ └── reader │ │ ├── Messages.properties │ │ └── Messages_ja.properties │ └── test │ └── java │ └── Relames.java ├── rngconverter ├── README.md ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── sun │ │ │ └── msv │ │ │ └── writer │ │ │ └── relaxng │ │ │ └── Driver.java │ └── resources │ │ └── com │ │ └── sun │ │ └── msv │ │ └── writer │ │ └── relaxng │ │ ├── Messages.properties │ │ └── Messages_ja.properties │ └── test │ ├── java │ ├── RELAXNGConverter.java │ └── batch │ │ └── writer │ │ ├── RELAXNGTester.java │ │ ├── TestBuilderImpl.java │ │ └── relaxng │ │ └── RELAXNGWriterTest.java │ └── resources │ └── testcases │ └── any.xsd ├── schmit ├── README.md ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── sun │ │ └── msv │ │ └── schmit │ │ ├── DOMScanner.java │ │ ├── Debug.java │ │ ├── PSVIRecorder.java │ │ ├── XalanExtension.java │ │ ├── XalanNodeAssociationManager.java │ │ ├── XalanNodeAssociationManager_2_0.java │ │ ├── XalanNodeAssociationManager_2_5.java │ │ ├── grammar │ │ ├── AnnotatedPattern.java │ │ ├── relaxng │ │ │ ├── AnnotatedAttributePattern.java │ │ │ └── AnnotatedElementPattern.java │ │ └── xmlschema │ │ │ └── AnnotatedXSElementExp.java │ │ └── reader │ │ ├── AnnotationParent.java │ │ ├── AnnotationState.java │ │ ├── relaxng │ │ ├── SchmitAttributeState.java │ │ ├── SchmitElementState.java │ │ └── SchmitRELAXNGReader.java │ │ └── xmlschema │ │ ├── SchmitAttributeState.java │ │ ├── SchmitElementDeclState.java │ │ ├── SchmitXMLSchemaReader.java │ │ └── Util.java │ └── resources │ └── examples │ ├── readme.txt │ └── simple │ ├── test.rng │ ├── test.xml │ └── test.xsl ├── src └── site │ └── copy-javadoc.sh ├── tahiti ├── README.md ├── classFileDebug.xsl ├── grammarDebug.xslt ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── sun │ │ │ └── tahiti │ │ │ ├── compiler │ │ │ ├── Controller.java │ │ │ ├── ControllerImpl.java │ │ │ ├── Driver.java │ │ │ ├── Symbolizer.java │ │ │ ├── XMLWriter.java │ │ │ ├── generator │ │ │ │ ├── ModelGenerator.java │ │ │ │ └── XMLGenerator.java │ │ │ ├── java │ │ │ │ ├── AtmostOneFieldSerializer.java │ │ │ │ ├── ClassSerializer.java │ │ │ │ ├── FieldSerializer.java │ │ │ │ ├── ListFieldSerializer.java │ │ │ │ ├── MarshallerSerializer.java │ │ │ │ ├── PrimitiveTypeFieldSerializer.java │ │ │ │ ├── SetFieldSerializer.java │ │ │ │ ├── SingleFieldSerializer.java │ │ │ │ └── VectorFieldSerializer.java │ │ │ ├── ll │ │ │ │ ├── ExpressionSerializer.java │ │ │ │ ├── FilterCalculator.java │ │ │ │ ├── LLTableCalculator.java │ │ │ │ ├── ParserTable.java │ │ │ │ ├── Rule.java │ │ │ │ ├── RuleGenerator.java │ │ │ │ ├── RuleSerializer.java │ │ │ │ ├── Rules.java │ │ │ │ └── Util.java │ │ │ └── sm │ │ │ │ ├── FieldWalker.java │ │ │ │ ├── MarshallerGenerator.java │ │ │ │ └── MarshallerSerializer.java │ │ │ ├── grammar │ │ │ ├── AccessModifier.java │ │ │ ├── Accessor.java │ │ │ ├── AnnotatedGrammar.java │ │ │ ├── ClassItem.java │ │ │ ├── CollectionType.java │ │ │ ├── FieldItem.java │ │ │ ├── FieldUse.java │ │ │ ├── IgnoreItem.java │ │ │ ├── InterfaceItem.java │ │ │ ├── JavaItem.java │ │ │ ├── JavaItemVisitor.java │ │ │ ├── PrimitiveItem.java │ │ │ ├── SuperClassItem.java │ │ │ ├── SystemType.java │ │ │ ├── Type.java │ │ │ ├── TypeItem.java │ │ │ └── util │ │ │ │ ├── Multiplicity.java │ │ │ │ ├── MultiplicityCounter.java │ │ │ │ ├── NotAllowedRemover.java │ │ │ │ └── SuperClassBodyRemover.java │ │ │ ├── reader │ │ │ ├── GrammarLoader.java │ │ │ ├── NameUtil.java │ │ │ ├── TahitiGrammarReader.java │ │ │ ├── TypeUtil.java │ │ │ ├── annotator │ │ │ │ ├── Annotator.java │ │ │ │ ├── ChoiceAnnotator.java │ │ │ │ ├── FieldItemAnnotation.java │ │ │ │ ├── PrimitiveTypeAnnotator.java │ │ │ │ ├── RelationNormalizer.java │ │ │ │ └── TemporaryClassItemRemover.java │ │ │ ├── relaxng │ │ │ │ └── TRELAXNGReader.java │ │ │ └── xmlschema │ │ │ │ ├── TAnyAttributeState.java │ │ │ │ ├── TAnyElementState.java │ │ │ │ ├── TComplexContentBodyState.java │ │ │ │ ├── TComplexTypeDeclState.java │ │ │ │ ├── TElementDeclState.java │ │ │ │ ├── TGroupState.java │ │ │ │ └── TXMLSchemaReader.java │ │ │ ├── runtime │ │ │ ├── ll │ │ │ │ ├── BindableGrammar.java │ │ │ │ ├── Binder.java │ │ │ │ ├── Debug.java │ │ │ │ ├── DefaultNonTerminalSymbol.java │ │ │ │ ├── Filter.java │ │ │ │ ├── IgnoreSymbol.java │ │ │ │ ├── IntermediateSymbol.java │ │ │ │ ├── LLAttributeExp.java │ │ │ │ ├── LLElementExp.java │ │ │ │ ├── LLParser.java │ │ │ │ ├── LLParserTable.java │ │ │ │ ├── NamedSymbol.java │ │ │ │ ├── NonTerminalSymbol.java │ │ │ │ ├── Packet.java │ │ │ │ ├── Rule.java │ │ │ │ ├── Unmarshaller.java │ │ │ │ └── UnmarshallingException.java │ │ │ └── sm │ │ │ │ ├── DOMMarshaller.java │ │ │ │ ├── MarshallableObject.java │ │ │ │ ├── Marshaller.java │ │ │ │ ├── MarshallerAPI.java │ │ │ │ └── MarshallingException.java │ │ │ └── util │ │ │ ├── text │ │ │ ├── Formatter.java │ │ │ └── Model.java │ │ │ └── xml │ │ │ ├── DOMBuilder.java │ │ │ ├── DOMVisitor.java │ │ │ ├── DocumentFilter.java │ │ │ ├── SAXEventGenerator.java │ │ │ └── XSLTUtil.java │ └── resources │ │ └── com │ │ └── sun │ │ └── tahiti │ │ ├── compiler │ │ ├── class2java.xsl.unused │ │ ├── grammar2java.xsl │ │ └── sm │ │ │ └── Messages.properties │ │ └── reader │ │ ├── Messages.properties │ │ └── relaxng │ │ └── Messages.properties │ └── test │ └── java │ ├── Driver.java │ └── TestDriver.java ├── trexconverter ├── README.md ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── sun │ │ └── msv │ │ ├── grammar │ │ └── trex │ │ │ └── TypedString.java │ │ └── writer │ │ └── trex │ │ ├── Driver.java │ │ └── TREXWriter.java │ └── resources │ └── com │ └── sun │ └── msv │ └── writer │ └── trex │ ├── Messages.properties │ └── Messages_ja.properties └── xsdlib ├── README.md ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── sun │ │ ├── msv │ │ └── datatype │ │ │ ├── DatabindableDatatype.java │ │ │ ├── ErrorDatatypeLibrary.java │ │ │ ├── SerializationContext.java │ │ │ ├── regexp │ │ │ ├── BMPattern.java │ │ │ ├── InternalImpl.java │ │ │ ├── Match.java │ │ │ ├── Op.java │ │ │ ├── ParseException.java │ │ │ ├── ParserForXMLSchema.java │ │ │ ├── REUtil.java │ │ │ ├── RangeToken.java │ │ │ ├── RegexParser.java │ │ │ ├── RegularExpression.java │ │ │ └── Token.java │ │ │ └── xsd │ │ │ ├── AnyURIType.java │ │ │ ├── Base64BinaryType.java │ │ │ ├── BinaryBaseType.java │ │ │ ├── BinaryValueType.java │ │ │ ├── BooleanType.java │ │ │ ├── BuiltinAtomicType.java │ │ │ ├── ByteType.java │ │ │ ├── CommandLineTester.java │ │ │ ├── Comparator.java │ │ │ ├── ConcreteType.java │ │ │ ├── DataTypeWithFacet.java │ │ │ ├── DataTypeWithLexicalConstraintFacet.java │ │ │ ├── DataTypeWithValueConstraintFacet.java │ │ │ ├── DatatypeFactory.java │ │ │ ├── DateTimeBaseType.java │ │ │ ├── DateTimeType.java │ │ │ ├── DateType.java │ │ │ ├── Discrete.java │ │ │ ├── DoubleType.java │ │ │ ├── DurationType.java │ │ │ ├── EntityType.java │ │ │ ├── EnumerationFacet.java │ │ │ ├── ErrorType.java │ │ │ ├── FinalComponent.java │ │ │ ├── FloatType.java │ │ │ ├── FloatingNumberType.java │ │ │ ├── FractionDigitsFacet.java │ │ │ ├── GDayType.java │ │ │ ├── GMonthDayType.java │ │ │ ├── GMonthType.java │ │ │ ├── GYearMonthType.java │ │ │ ├── GYearType.java │ │ │ ├── HexBinaryType.java │ │ │ ├── IDREFType.java │ │ │ ├── IDType.java │ │ │ ├── IntType.java │ │ │ ├── IntegerDerivedType.java │ │ │ ├── IntegerType.java │ │ │ ├── IntegerValueType.java │ │ │ ├── LanguageType.java │ │ │ ├── LengthFacet.java │ │ │ ├── ListType.java │ │ │ ├── ListValueType.java │ │ │ ├── LongType.java │ │ │ ├── MaxExclusiveFacet.java │ │ │ ├── MaxInclusiveFacet.java │ │ │ ├── MaxLengthFacet.java │ │ │ ├── MinExclusiveFacet.java │ │ │ ├── MinInclusiveFacet.java │ │ │ ├── MinLengthFacet.java │ │ │ ├── NameType.java │ │ │ ├── NcnameType.java │ │ │ ├── NegativeIntegerType.java │ │ │ ├── NmtokenType.java │ │ │ ├── NonNegativeIntegerType.java │ │ │ ├── NonPositiveIntegerType.java │ │ │ ├── NormalizedStringType.java │ │ │ ├── NumberType.java │ │ │ ├── PatternFacet.java │ │ │ ├── PositiveIntegerType.java │ │ │ ├── Proxy.java │ │ │ ├── QnameType.java │ │ │ ├── QnameValueType.java │ │ │ ├── RangeFacet.java │ │ │ ├── ShortType.java │ │ │ ├── SimpleURType.java │ │ │ ├── StringType.java │ │ │ ├── TimeType.java │ │ │ ├── TokenType.java │ │ │ ├── TotalDigitsFacet.java │ │ │ ├── TypeIncubator.java │ │ │ ├── UnicodeUtil.java │ │ │ ├── UnionType.java │ │ │ ├── UnsignedByteType.java │ │ │ ├── UnsignedIntType.java │ │ │ ├── UnsignedLongType.java │ │ │ ├── UnsignedShortType.java │ │ │ ├── WhiteSpaceFacet.java │ │ │ ├── WhiteSpaceProcessor.java │ │ │ ├── XSDatatype.java │ │ │ ├── XSDatatypeImpl.java │ │ │ ├── XmlNames.java │ │ │ ├── datetime │ │ │ ├── AbstractCalendarFormatter.java │ │ │ ├── AbstractCalendarParser.java │ │ │ ├── BigDateTimeValueType.java │ │ │ ├── BigTimeDurationValueType.java │ │ │ ├── CalendarFormatter.java │ │ │ ├── CalendarParser.java │ │ │ ├── DateTimeFactory.java │ │ │ ├── IDateTimeValueType.java │ │ │ ├── ITimeDurationValueType.java │ │ │ ├── PreciseCalendarFormatter.java │ │ │ ├── PreciseCalendarParser.java │ │ │ ├── TimeZone.java │ │ │ └── Util.java │ │ │ ├── ngimpl │ │ │ ├── DataTypeLibraryImpl.java │ │ │ └── DatatypeBuilderImpl.java │ │ │ └── regex │ │ │ ├── JDK50Impl.java │ │ │ ├── JDKImpl.java │ │ │ ├── RegExp.java │ │ │ ├── RegExpFactory.java │ │ │ └── XercesImpl.java │ │ └── xml │ │ └── util │ │ └── XmlChars.java ├── javadoc │ └── com │ │ └── sun │ │ └── msv │ │ └── datatype │ │ └── xsd │ │ └── package.html └── resources │ ├── META-INF │ └── services │ │ └── org.relaxng.datatype.DatatypeLibraryFactory │ └── com │ └── sun │ └── msv │ └── datatype │ ├── regexp │ ├── message.properties │ ├── message_fr.properties │ └── message_ja.properties │ └── xsd │ ├── Messages.properties │ └── Messages_ja.properties └── test ├── java ├── com │ └── sun │ │ └── msv │ │ └── datatype │ │ └── xsd │ │ ├── AnyURITypeTest.java │ │ ├── ConcreteTypeTest.java │ │ ├── Const.java │ │ ├── DataTypeImplTest.java │ │ ├── DateTimeBaseTypeTest.java │ │ ├── FinalComponentTest.java │ │ ├── FractionDigitsFacetTest.java │ │ ├── ListTypeTest.java │ │ ├── SerializationTest.java │ │ ├── TotalDigitsFacetTest.java │ │ ├── UnionTypeTest.java │ │ ├── WhiteSpaceProcessorTest.java │ │ ├── XSDatatypeTest.java │ │ ├── conformance │ │ ├── ChoiceTestPattern.java │ │ ├── DataTypeTester.java │ │ ├── DerivationTester.java │ │ ├── DummyContextProvider.java │ │ ├── ErrorReceiver.java │ │ ├── FullCombinationPattern.java │ │ ├── SimpleTestPattern.java │ │ ├── TestDriverTest.java │ │ ├── TestPattern.java │ │ ├── TestPatternGenerator.java │ │ └── UnexpectedResultException.java │ │ └── datetime │ │ ├── BigDateTimeValueTypeTest.java │ │ ├── BigTimeDurationValueTypeTest.java │ │ ├── DateTimeFactoryTest.java │ │ ├── TimeDurationFactoryTest.java │ │ ├── TimeZoneTest.java │ │ └── UtilTest.java └── util │ ├── Checker.java │ └── ResourceChecker.java ├── javadoc └── com │ └── sun │ └── msv │ └── datatype │ └── xsd │ └── conformance │ └── package.html └── resources └── com └── sun └── msv └── datatype └── xsd └── conformance ├── DataTypeTest.xml └── DerivationTest.xml /.editorconfig: -------------------------------------------------------------------------------- 1 | # See https://github.com/editorconfig/editorconfig/wiki/EditorConfig-Properties 2 | # Fix format via command line: 'mvn editorconfig:format' 3 | root=true 4 | 5 | [*.{groovy,java,kt,xml,md}] 6 | end_of_line = lf 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | indent_style = space 10 | tab_width = 4 11 | indent_size = 4 12 | max_line_length = off 13 | charset = utf-8 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # IDE files 8 | nb-configuration.xml 9 | .idea/ 10 | *.iml 11 | 12 | # VSCode files 13 | .vscode/ 14 | .project 15 | .settings/ 16 | .classpath 17 | .factorypath 18 | 19 | # BlueJ files 20 | *.ctxt 21 | 22 | # Mobile Tools for Java (J2ME) 23 | .mtj.tmp/ 24 | 25 | # Package Files # 26 | #*.jar - we want to support technical writers as well providing the JAR 27 | *.war 28 | *.nar 29 | *.ear 30 | *.zip 31 | *.tar.gz 32 | *.rar 33 | 34 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 35 | hs_err_pid* 36 | 37 | # build directories & files 38 | bin/ 39 | target/ 40 | target*/ 41 | dependency-reduced-pom.xml 42 | .flattened-pom.xml 43 | 44 | # backup files 45 | *~ 46 | \#* 47 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Copyright 2001-2013 Oracle and/or its affiliates. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 4 | 5 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 6 | 7 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 8 | 9 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 10 | 11 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /docs/core/JARV_API.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/JARV_API.gif -------------------------------------------------------------------------------- /docs/core/SAXfilter.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/SAXfilter.gif -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine.vsd -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine1.gif -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine2.gif -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine3.gif -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/reader/xmlschema/doc-files/redefine4.gif -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/writer/relaxng/doc-files/Island.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/writer/relaxng/doc-files/Island.gif -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/writer/relaxng/doc-files/Island_Before.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/writer/relaxng/doc-files/Island_Before.gif -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/writer/relaxng/doc-files/Island_Merged.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/writer/relaxng/doc-files/Island_Merged.gif -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/writer/relaxng/doc-files/RELAXNGWriter.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/writer/relaxng/doc-files/RELAXNGWriter.vsd -------------------------------------------------------------------------------- /docs/core/api/com/sun/msv/writer/relaxng/doc-files/simpleAGM.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/com/sun/msv/writer/relaxng/doc-files/simpleAGM.gif -------------------------------------------------------------------------------- /docs/core/api/element-list: -------------------------------------------------------------------------------- 1 | com.sun.msv.driver.textui 2 | com.sun.msv.grammar 3 | com.sun.msv.grammar.dtd 4 | com.sun.msv.grammar.relax 5 | com.sun.msv.grammar.relaxng 6 | com.sun.msv.grammar.relaxng.datatype 7 | com.sun.msv.grammar.trex 8 | com.sun.msv.grammar.trex.typed 9 | com.sun.msv.grammar.util 10 | com.sun.msv.grammar.xmlschema 11 | com.sun.msv.reader 12 | com.sun.msv.reader.datatype 13 | com.sun.msv.reader.datatype.xsd 14 | com.sun.msv.reader.dtd 15 | com.sun.msv.reader.relax 16 | com.sun.msv.reader.relax.core 17 | com.sun.msv.reader.relax.core.checker 18 | com.sun.msv.reader.trex 19 | com.sun.msv.reader.trex.classic 20 | com.sun.msv.reader.trex.ng 21 | com.sun.msv.reader.trex.ng.comp 22 | com.sun.msv.reader.trex.typed 23 | com.sun.msv.reader.util 24 | com.sun.msv.reader.xmlschema 25 | com.sun.msv.relaxns.grammar 26 | com.sun.msv.relaxns.grammar.relax 27 | com.sun.msv.relaxns.grammar.trex 28 | com.sun.msv.relaxns.reader 29 | com.sun.msv.relaxns.reader.relax 30 | com.sun.msv.relaxns.reader.trex 31 | com.sun.msv.relaxns.verifier 32 | com.sun.msv.scanner.dtd 33 | com.sun.msv.util 34 | com.sun.msv.util.xml 35 | com.sun.msv.verifier 36 | com.sun.msv.verifier.identity 37 | com.sun.msv.verifier.jarv 38 | com.sun.msv.verifier.jaxp 39 | com.sun.msv.verifier.psvi 40 | com.sun.msv.verifier.regexp 41 | com.sun.msv.verifier.regexp.xmlschema 42 | com.sun.msv.verifier.util 43 | com.sun.msv.writer 44 | com.sun.msv.writer.relaxng 45 | -------------------------------------------------------------------------------- /docs/core/api/jquery-ui.overrides.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 | * 5 | * This code is free software; you can redistribute it and/or modify it 6 | * under the terms of the GNU General Public License version 2 only, as 7 | * published by the Free Software Foundation. Oracle designates this 8 | * particular file as subject to the "Classpath" exception as provided 9 | * by Oracle in the LICENSE file that accompanied this code. 10 | * 11 | * This code is distributed in the hope that it will be useful, but WITHOUT 12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 | * version 2 for more details (a copy is included in the LICENSE file that 15 | * accompanied this code). 16 | * 17 | * You should have received a copy of the GNU General Public License version 18 | * 2 along with this work; if not, write to the Free Software Foundation, 19 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 | * 21 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 | * or visit www.oracle.com if you need additional information or have any 23 | * questions. 24 | */ 25 | 26 | .ui-state-active, 27 | .ui-widget-content .ui-state-active, 28 | .ui-widget-header .ui-state-active, 29 | a.ui-button:active, 30 | .ui-button:active, 31 | .ui-button.ui-state-active:hover { 32 | /* Overrides the color of selection used in jQuery UI */ 33 | background: #F8981D; 34 | } 35 | -------------------------------------------------------------------------------- /docs/core/api/legal/ASSEMBLY_EXCEPTION: -------------------------------------------------------------------------------- 1 | 2 | OPENJDK ASSEMBLY EXCEPTION 3 | 4 | The OpenJDK source code made available by Oracle America, Inc. (Oracle) at 5 | openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU 6 | General Public License version 2 7 | only ("GPL2"), with the following clarification and special exception. 8 | 9 | Linking this OpenJDK Code statically or dynamically with other code 10 | is making a combined work based on this library. Thus, the terms 11 | and conditions of GPL2 cover the whole combination. 12 | 13 | As a special exception, Oracle gives you permission to link this 14 | OpenJDK Code with certain code licensed by Oracle as indicated at 15 | http://openjdk.java.net/legal/exception-modules-2007-05-08.html 16 | ("Designated Exception Modules") to produce an executable, 17 | regardless of the license terms of the Designated Exception Modules, 18 | and to copy and distribute the resulting executable under GPL2, 19 | provided that the Designated Exception Modules continue to be 20 | governed by the licenses under which they were offered by Oracle. 21 | 22 | As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code 23 | to build an executable that includes those portions of necessary code that 24 | Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 25 | with the Classpath exception). If you modify or add to the OpenJDK code, 26 | that new GPL2 code may still be combined with Designated Exception Modules 27 | if the new code is made subject to this exception by its copyright holder. 28 | -------------------------------------------------------------------------------- /docs/core/api/module-search-index.js: -------------------------------------------------------------------------------- 1 | moduleSearchIndex = [];updateSearchResults(); -------------------------------------------------------------------------------- /docs/core/api/overview-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MSV Core 2022.7 API 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 19 |
20 | 23 |

index.html

24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/core/api/package-search-index.js: -------------------------------------------------------------------------------- 1 | packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.sun.msv.driver.textui"},{"l":"com.sun.msv.grammar"},{"l":"com.sun.msv.grammar.dtd"},{"l":"com.sun.msv.grammar.relax"},{"l":"com.sun.msv.grammar.relaxng"},{"l":"com.sun.msv.grammar.relaxng.datatype"},{"l":"com.sun.msv.grammar.trex"},{"l":"com.sun.msv.grammar.trex.typed"},{"l":"com.sun.msv.grammar.util"},{"l":"com.sun.msv.grammar.xmlschema"},{"l":"com.sun.msv.reader"},{"l":"com.sun.msv.reader.datatype"},{"l":"com.sun.msv.reader.datatype.xsd"},{"l":"com.sun.msv.reader.dtd"},{"l":"com.sun.msv.reader.relax"},{"l":"com.sun.msv.reader.relax.core"},{"l":"com.sun.msv.reader.relax.core.checker"},{"l":"com.sun.msv.reader.trex"},{"l":"com.sun.msv.reader.trex.classic"},{"l":"com.sun.msv.reader.trex.ng"},{"l":"com.sun.msv.reader.trex.ng.comp"},{"l":"com.sun.msv.reader.trex.typed"},{"l":"com.sun.msv.reader.util"},{"l":"com.sun.msv.reader.xmlschema"},{"l":"com.sun.msv.relaxns.grammar"},{"l":"com.sun.msv.relaxns.grammar.relax"},{"l":"com.sun.msv.relaxns.grammar.trex"},{"l":"com.sun.msv.relaxns.reader"},{"l":"com.sun.msv.relaxns.reader.relax"},{"l":"com.sun.msv.relaxns.reader.trex"},{"l":"com.sun.msv.relaxns.verifier"},{"l":"com.sun.msv.scanner.dtd"},{"l":"com.sun.msv.util"},{"l":"com.sun.msv.util.xml"},{"l":"com.sun.msv.verifier"},{"l":"com.sun.msv.verifier.identity"},{"l":"com.sun.msv.verifier.jarv"},{"l":"com.sun.msv.verifier.jaxp"},{"l":"com.sun.msv.verifier.psvi"},{"l":"com.sun.msv.verifier.regexp"},{"l":"com.sun.msv.verifier.regexp.xmlschema"},{"l":"com.sun.msv.verifier.util"},{"l":"com.sun.msv.writer"},{"l":"com.sun.msv.writer.relaxng"}];updateSearchResults(); -------------------------------------------------------------------------------- /docs/core/api/resources/glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/resources/glass.png -------------------------------------------------------------------------------- /docs/core/api/resources/x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/resources/x.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-bg_glass_65_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-bg_glass_65_dadada_1x400.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /docs/core/api/script-dir/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/core/api/script-dir/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /docs/core/api/tag-search-index.js: -------------------------------------------------------------------------------- 1 | tagSearchIndex = [{"l":"Constant Field Values","h":"","u":"constant-values.html"},{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); -------------------------------------------------------------------------------- /docs/core/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2001-2009 Sun Microsystems, Inc. All Rights Reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | - Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | - Redistribution in binary form must reproduct the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | Neither the name of Sun Microsystems, Inc. or the names of 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | This software is provided "AS IS," without a warranty of any kind. ALL 19 | EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, 20 | INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A 21 | PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND 22 | ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES 23 | SUFFERED BY LICENSEE AS A RESULT OF OR RELATING TO USE, MODIFICATION 24 | OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL 25 | SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, 26 | OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR 27 | PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF 28 | LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, 29 | EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 30 | -------------------------------------------------------------------------------- /docs/generator/README.md: -------------------------------------------------------------------------------- 1 | # MSV XML Generator 2 | 3 | Sun XML Generator is a Java tool to generate various XML instances from 4 | several kinds of schemas. It supports DTD, RELAX Namespace, RELAX Core, 5 | TREX, and a subset of W3C XML Schema Part 1. This release includes 6 | software developed by the Apache Software Foundation [1]. 7 | 8 | ## Overview 9 | 10 | This is a command-line tool that can generate both valid and invalid 11 | instances from schemas. It can be used for generating test cases for XML 12 | applications that need to conform to a particular schema. For example: 13 | 14 | * to load-test applications against large documents 15 | * to ensure that documents are processed correctly 16 | * to check the behavior of XSL stylesheets 17 | 18 | See [HowToUse.html](./HowToUse.html) for details. 19 | 20 | ## Change Log 21 | 22 | * Added a new option "-root" to specify the root element name of the 23 | generated XML. 24 | 25 | ## Current Status 26 | 27 | This release relies on Sun Multi Schema Validator[2] for parsing 28 | schemas. Therefore, any limitation that applies to MSV will apply to 29 | this release. 30 | 31 | ## References 32 | 33 | [1] Apache Software Foundation https://www.apache.org/ 34 | [2] Multi Schema Validator (MSV) https:://xmlark.github.io/msv/core/ 35 | -------------------------------------------------------------------------------- /docs/generator/copyright.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/generator/copyright.txt -------------------------------------------------------------------------------- /docs/relames/copyright.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/relames/copyright.txt -------------------------------------------------------------------------------- /docs/rngconverter/copyright.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/rngconverter/copyright.txt -------------------------------------------------------------------------------- /docs/rngconverter/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2001-@@YEAR@@ Sun Microsystems, Inc. All Rights Reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | - Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | - Redistribution in binary form must reproduct the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | Neither the name of Sun Microsystems, Inc. or the names of 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | This software is provided "AS IS," without a warranty of any kind. ALL 19 | EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, 20 | INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A 21 | PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND 22 | ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES 23 | SUFFERED BY LICENSEE AS A RESULT OF OR RELATING TO USE, MODIFICATION 24 | OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL 25 | SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, 26 | OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR 27 | PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF 28 | LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, 29 | EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 30 | 31 | -------------------------------------------------------------------------------- /docs/tahiti/README.md: -------------------------------------------------------------------------------- 1 | # TAHITI 2 | 3 | "Tahiti" is a Java tool to generate a Java object model from a schema. 4 | Currently, it supports RELAX NG. 5 | This release includes software developed by the Apache Software 6 | Foundation (https://xml.apache.org/). 7 | 8 | ## Overview 9 | 10 | This tool is a command line tool that can compile RELAX NG grammar to 11 | a Java object model that in turn parses XML documents written in that 12 | schema. 13 | 14 | The automatic Java object model generation makes it easy to read/write 15 | XML documents from your application. Also, This tool lets you heavily 16 | customize the generated object model. 17 | 18 | See [UsersGuide.html](./UsersGuide.html) for details. 19 | 20 | This tool should be considered as alpha-quality. And any feedback is 21 | more than welcome! 22 | -------------------------------------------------------------------------------- /docs/tahiti/copyright.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/tahiti/copyright.txt -------------------------------------------------------------------------------- /docs/tahiti/figures/programListingEdge.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/tahiti/figures/programListingEdge.gif -------------------------------------------------------------------------------- /docs/tahiti/tahiti.css: -------------------------------------------------------------------------------- 1 | pre.programlisting { 2 | margin-left: 2em; 3 | margin-right: 2em; 4 | padding: 1em; 5 | font-weight: bold; 6 | color: rgb(0,0,128); 7 | background-image: url(figures/programListingEdge.gif); 8 | background-position:top right; 9 | background-repeat: no-repeat; 10 | background-color: rgb(220,220,255); 11 | } 12 | pre.screen { 13 | margin-left: 2em; 14 | margin-right: 2em; 15 | padding: 1em; 16 | font-weight: bold; 17 | color: rgb(0,0,0); 18 | background-color: rgb(230,230,230); 19 | } 20 | div.mediaobject { 21 | text-align: center; 22 | } 23 | 24 | h2 { 25 | margin-top: 2em; 26 | border-left: 0.5em solid navy; 27 | border-right: 0.5em solid navy; 28 | border-top: 1pt solid navy; 29 | border-bottom: 1pt solid navy; 30 | padding-left: 1em; 31 | } 32 | 33 | 34 | h3 { 35 | margin-top: 1em; 36 | border-bottom: 2pt double navy; 37 | } 38 | 39 | p { 40 | margin-left: 1em; 41 | } 42 | 43 | div.footnote { 44 | margin-top: 0.5em; 45 | } 46 | -------------------------------------------------------------------------------- /docs/tahiti/tahiti.xsl: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | tahiti.css 13 | 14 | 15 | 16 |
17 | [] 18 | 19 |
20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | -------------------------------------------------------------------------------- /docs/trexconverter/copyright.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/trexconverter/copyright.txt -------------------------------------------------------------------------------- /docs/xsdlib/api/element-list: -------------------------------------------------------------------------------- 1 | com.sun.msv.datatype 2 | com.sun.msv.datatype.regexp 3 | com.sun.msv.datatype.xsd 4 | com.sun.msv.datatype.xsd.datetime 5 | com.sun.msv.datatype.xsd.ngimpl 6 | com.sun.msv.datatype.xsd.regex 7 | com.sun.xml.util 8 | -------------------------------------------------------------------------------- /docs/xsdlib/api/jquery-ui.overrides.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 | * 5 | * This code is free software; you can redistribute it and/or modify it 6 | * under the terms of the GNU General Public License version 2 only, as 7 | * published by the Free Software Foundation. Oracle designates this 8 | * particular file as subject to the "Classpath" exception as provided 9 | * by Oracle in the LICENSE file that accompanied this code. 10 | * 11 | * This code is distributed in the hope that it will be useful, but WITHOUT 12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 | * version 2 for more details (a copy is included in the LICENSE file that 15 | * accompanied this code). 16 | * 17 | * You should have received a copy of the GNU General Public License version 18 | * 2 along with this work; if not, write to the Free Software Foundation, 19 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 | * 21 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 | * or visit www.oracle.com if you need additional information or have any 23 | * questions. 24 | */ 25 | 26 | .ui-state-active, 27 | .ui-widget-content .ui-state-active, 28 | .ui-widget-header .ui-state-active, 29 | a.ui-button:active, 30 | .ui-button:active, 31 | .ui-button.ui-state-active:hover { 32 | /* Overrides the color of selection used in jQuery UI */ 33 | background: #F8981D; 34 | } 35 | -------------------------------------------------------------------------------- /docs/xsdlib/api/legal/ASSEMBLY_EXCEPTION: -------------------------------------------------------------------------------- 1 | 2 | OPENJDK ASSEMBLY EXCEPTION 3 | 4 | The OpenJDK source code made available by Oracle America, Inc. (Oracle) at 5 | openjdk.java.net ("OpenJDK Code") is distributed under the terms of the GNU 6 | General Public License version 2 7 | only ("GPL2"), with the following clarification and special exception. 8 | 9 | Linking this OpenJDK Code statically or dynamically with other code 10 | is making a combined work based on this library. Thus, the terms 11 | and conditions of GPL2 cover the whole combination. 12 | 13 | As a special exception, Oracle gives you permission to link this 14 | OpenJDK Code with certain code licensed by Oracle as indicated at 15 | http://openjdk.java.net/legal/exception-modules-2007-05-08.html 16 | ("Designated Exception Modules") to produce an executable, 17 | regardless of the license terms of the Designated Exception Modules, 18 | and to copy and distribute the resulting executable under GPL2, 19 | provided that the Designated Exception Modules continue to be 20 | governed by the licenses under which they were offered by Oracle. 21 | 22 | As such, it allows licensees and sublicensees of Oracle's GPL2 OpenJDK Code 23 | to build an executable that includes those portions of necessary code that 24 | Oracle could not provide under GPL2 (or that Oracle has provided under GPL2 25 | with the Classpath exception). If you modify or add to the OpenJDK code, 26 | that new GPL2 code may still be combined with Designated Exception Modules 27 | if the new code is made subject to this exception by its copyright holder. 28 | -------------------------------------------------------------------------------- /docs/xsdlib/api/module-search-index.js: -------------------------------------------------------------------------------- 1 | moduleSearchIndex = [];updateSearchResults(); -------------------------------------------------------------------------------- /docs/xsdlib/api/overview-summary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MSV XML Schema Datatype Library 2022.7 API 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 17 | 18 | 19 |
20 | 23 |

index.html

24 |
25 | 26 | 27 | -------------------------------------------------------------------------------- /docs/xsdlib/api/package-search-index.js: -------------------------------------------------------------------------------- 1 | packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"com.sun.msv.datatype"},{"l":"com.sun.msv.datatype.regexp"},{"l":"com.sun.msv.datatype.xsd"},{"l":"com.sun.msv.datatype.xsd.datetime"},{"l":"com.sun.msv.datatype.xsd.ngimpl"},{"l":"com.sun.msv.datatype.xsd.regex"},{"l":"com.sun.xml.util"}];updateSearchResults(); -------------------------------------------------------------------------------- /docs/xsdlib/api/resources/glass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/resources/glass.png -------------------------------------------------------------------------------- /docs/xsdlib/api/resources/x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/resources/x.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-bg_glass_65_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-bg_glass_65_dadada_1x400.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-bg_glass_75_dadada_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-bg_glass_75_dadada_1x400.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-icons_222222_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-icons_222222_256x240.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-icons_2e83ff_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-icons_2e83ff_256x240.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-icons_454545_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-icons_454545_256x240.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-icons_888888_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-icons_888888_256x240.png -------------------------------------------------------------------------------- /docs/xsdlib/api/script-dir/images/ui-icons_cd0a0a_256x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/api/script-dir/images/ui-icons_cd0a0a_256x240.png -------------------------------------------------------------------------------- /docs/xsdlib/api/tag-search-index.js: -------------------------------------------------------------------------------- 1 | tagSearchIndex = [{"l":"Constant Field Values","h":"","u":"constant-values.html"},{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); -------------------------------------------------------------------------------- /docs/xsdlib/copyright.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/docs/xsdlib/copyright.txt -------------------------------------------------------------------------------- /docs/xsdlib/license.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-@@YEAR@@ Sun Microsystems, Inc. All Rights Reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | - Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | - Redistribution in binary form must reproduct the above copyright 11 | notice, this list of conditions and the following disclaimer in the 12 | documentation and/or other materials provided with the distribution. 13 | 14 | Neither the name of Sun Microsystems, Inc. or the names of 15 | contributors may be used to endorse or promote products derived from 16 | this software without specific prior written permission. 17 | 18 | This software is provided "AS IS," without a warranty of any kind. ALL 19 | EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, 20 | INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A 21 | PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND 22 | ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES OR LIABILITIES 23 | SUFFERED BY LICENSEE AS A RESULT OF OR RELATING TO USE, MODIFICATION 24 | OR DISTRIBUTION OF THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL 25 | SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, 26 | OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR 27 | PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF 28 | LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, 29 | EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 30 | -------------------------------------------------------------------------------- /generator/README.md: -------------------------------------------------------------------------------- 1 | # XML GENERATOR 2 | 3 | The XML Generator is a Java tool to generate various XML instances from 4 | several kinds of schemas. It supports DTD, RELAX Namespace, RELAX Core, 5 | TREX, and a subset of W3C XML Schema Part 1. This release includes 6 | software developed by the [Apache Software Foundation](http://www.apache.org/) [1]. 7 | 8 | ## Overview 9 | 10 | This is a command-line tool that can generate both valid and invalid 11 | instances from schemas. It can be used for generating test cases for XML 12 | applications that need to conform to a particular schema. For example: 13 | 14 | * to load-test applications against large documents 15 | * to ensure that documents are processed correctly 16 | * to check the behavior of XSL stylesheets 17 | 18 | See [HowToUse.html]() for details. 19 | 20 | ## Change Log 21 | 22 | * Added a new option "-root" to specify the root element name of the 23 | generated XML. 24 | 25 | ## Current Status 26 | 27 | This release relies on the Multi Schema Validator[2] for parsing 28 | schemas. Therefore, any limitation that applies to MSV will apply to 29 | this release. 30 | 31 | ## Follow-up Documenation 32 | 33 | Please find the complete documentation [here](../docs/generator/README.md).! 34 | 35 | 36 | ## References 37 | 38 | [ 1] Apache Software Foundation 39 | http://www.apache.org/ 40 | [ 2] Multi Schema Validator 41 | -------------------------------------------------------------------------------- /generator/src/test/java/Generator.java: -------------------------------------------------------------------------------- 1 | /** typing saver. */ 2 | public class Generator { 3 | public static void main( String[] args ) throws Exception { 4 | com.sun.msv.generator.Driver.main(args); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /generator/src/test/java/batch/generator/GeneratorTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.generator; 11 | 12 | import junit.framework.TestSuite; 13 | 14 | /** 15 | * batch test class that is called from ant as a part of the whole test. 16 | * 17 | * @author Kohsuke KAWAGUCHI 18 | */ 19 | public class GeneratorTest { 20 | 21 | public static void main( String[] args ) throws Exception { 22 | junit.textui.TestRunner.run(GeneratorTest.suite()); 23 | } 24 | 25 | public static TestSuite suite() throws Exception { 26 | TestSuite s = new TestSuite(); 27 | 28 | append( s, "RELAXBatchTestDir", "relax" ); 29 | append( s, "TREXBatchTestDir", "trex" ); 30 | append( s, "XSDBatchTestDir", "xsd" ); 31 | append( s, "DTDBatchTestDir", "dtd" ); 32 | return s; 33 | } 34 | 35 | private static void append( TestSuite s, String propName, String target ) throws Exception { 36 | s.addTest( new GeneratorTester().createFromProperty(target,propName) ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /generator/src/test/java/batch/generator/GeneratorTester.java: -------------------------------------------------------------------------------- 1 | package batch.generator; 2 | 3 | import batch.model.TestReader; 4 | 5 | /** 6 | * command line driver. Useful for hand-debugging. 7 | * 8 | * @author Kohsuke KAWAGUCHI 9 | */ 10 | public class GeneratorTester extends batch.BatchTester { 11 | 12 | protected TestReader createReader() { 13 | try { 14 | return new TestReader( new TestBuilderImpl(validator,factory) ); 15 | } catch( Exception e ) { 16 | e.printStackTrace(); 17 | return null; 18 | } 19 | } 20 | 21 | public static void main( String[] av ) throws Exception { 22 | new GeneratorTester().run(av); 23 | } 24 | 25 | protected void usage() { 26 | System.out.println( 27 | "usage "+this.getClass().getName()+" (relax|trex|xsd|dtd|rng) [-strict] \n"+ 28 | " tests the generator by using schema files and test instances\n"+ 29 | " in the specified directory."); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /msv/examples/schemaLookup/NamespaceReceiver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package schemaLookup; 11 | 12 | /** 13 | * Receives namespace URIs. 14 | * 15 | * @author 16 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 17 | */ 18 | public interface NamespaceReceiver { 19 | void onNamespace(String ns); 20 | } 21 | -------------------------------------------------------------------------------- /msv/examples/schemaLookup/bar.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /msv/examples/schemaLookup/catalog.cat: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | sample catalog file. 4 | 5 | double hyphens are used to begin and end a comment section. 6 | 7 | 8 | SYSTEM "" "" will define a simple 9 | redirection. Whenever XJC tries to load a file from , 10 | this statement will redirect it to . 11 | needs to be an absolute URI, and can 12 | be relative to the catalog file itself. 13 | 14 | PUBLIC "" "" will define a mapping 15 | from public ID to its actual location. This is only used in 16 | conjunction with DTD. 17 | -- 18 | 19 | PUBLIC "foo" "foo.xsd" 20 | PUBLIC "bar" "bar.xsd" 21 | -------------------------------------------------------------------------------- /msv/examples/schemaLookup/foo.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /msv/examples/schemaLookup/readme.txt: -------------------------------------------------------------------------------- 1 | This example shows how a schema can be composed from multiple schemas and by looking at 2 | instances. 3 | 4 | -------------------------------------- 5 | 6 | It is often desirable if the schema location hints are not present in documents. 7 | For example, when you are exchanging documents that adhere to some standards 8 | 9 | Suppose you are exchanging documents that adhere to a fairly complicated standard, 10 | such as UBL. It is often desirable: 11 | 12 | 1. not to have schema locations inplanted in documents. Such references are hard 13 | or non-efficient to resolve correctly, and practically does more harm than good. 14 | 15 | 2. to compose schemas from namespaces it uses. 16 | 17 | This example does those. In particular, it uses catalog resolver to resolve 18 | namespace URIs into schema documents. Try: 19 | 20 | java schemaLookup.Main catalog.cat test.xml 21 | -------------------------------------------------------------------------------- /msv/examples/schemaLookup/test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /msv/examples/servlet/web/WEB-INF/web.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | MSV Servlet Demo 7 | 8 | This servlet demonstrates how you can use MSV from your servlet 9 | to cache a grammar and validate documents. 10 | 11 | 12 | 13 | MSVDemoServlet 14 | ValidationServlet 15 | 16 | 17 | 18 | MSVDemoServlet 19 | /msvDemo 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /msv/examples/servlet/web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 |

MSV Servlet Demo client

9 | 10 |
1. Type an XML here
11 | 18 | 19 | 20 |
2. Then press this button to submit it
21 | 22 | 23 | 24 |
3. The result from the server will be shown here
25 |
26 |         
27 | 28 | 29 | 32 | 33 | 34 | 37 | 38 | 39 | 52 | 53 | -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/reader/datatype/xsd/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |

reads XML representation for XML Schema Part.2

7 | -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine.vsd -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine1.gif -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine2.gif -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine3.gif -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/reader/xmlschema/doc-files/redefine4.gif -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/Island.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/Island.gif -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/Island_Before.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/Island_Before.gif -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/Island_Merged.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/Island_Merged.gif -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/RELAXNGWriter.vsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/RELAXNGWriter.vsd -------------------------------------------------------------------------------- /msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/simpleAGM.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/main/javadoc/com/sun/msv/writer/relaxng/doc-files/simpleAGM.gif -------------------------------------------------------------------------------- /msv/src/test/java/Driver.java: -------------------------------------------------------------------------------- 1 | public class Driver { 2 | public static void main( String[] args ) throws Exception { 3 | com.sun.msv.driver.textui.Driver.main(args); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /msv/src/test/java/SerialTestTool.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | import java.io.ObjectInputStream; 11 | import java.io.ObjectOutputStream; 12 | 13 | import com.sun.msv.datatype.xsd.StringType; 14 | import com.sun.msv.grammar.ExpressionPool; 15 | 16 | 17 | /** 18 | * Test program for serialization compatibility of {@link ExpressionPool}. 19 | * 20 | * @author 21 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 22 | */ 23 | public class SerialTestTool { 24 | public static void main(String[] args) throws Exception { 25 | if( args[0].equals("write") ) { 26 | ExpressionPool pool = new ExpressionPool(); 27 | pool.createAnyString(); 28 | pool.createChoice( pool.createData(StringType.theInstance), pool.createEpsilon() ); 29 | 30 | ObjectOutputStream oos = new ObjectOutputStream(System.out); 31 | oos.writeObject(pool); 32 | oos.close(); 33 | } else { 34 | ObjectInputStream ois = new ObjectInputStream(System.in); 35 | ExpressionPool pool = (ExpressionPool)ois.readObject(); 36 | System.out.println(pool); 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/ThrowErrorController.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch; 11 | 12 | import org.xml.sax.EntityResolver; 13 | import org.xml.sax.InputSource; 14 | import org.xml.sax.Locator; 15 | import org.xml.sax.SAXException; 16 | 17 | import com.sun.msv.reader.GrammarReaderController; 18 | 19 | /** 20 | * GrammarReaderController implementation that throws an Error 21 | * when an error is found. 22 | * 23 | * useful for debug. 24 | * 25 | * @author Kohsuke KAWAGUCHI 26 | */ 27 | public class ThrowErrorController implements GrammarReaderController { 28 | 29 | private final EntityResolver resolver; 30 | public ThrowErrorController( EntityResolver resolver ) { 31 | this.resolver = resolver; 32 | } 33 | public ThrowErrorController() { 34 | this(null); 35 | } 36 | 37 | public InputSource resolveEntity(String s,String r) throws SAXException, java.io.IOException { 38 | if(resolver!=null) 39 | return resolver.resolveEntity(s,r); 40 | return null; 41 | } 42 | public void error( Locator[] locs, String msg, Exception nested ) { 43 | if( nested instanceof SAXException ) { 44 | if(((SAXException)nested).getException()!=null) 45 | ((SAXException)nested).getException().printStackTrace(); 46 | } 47 | throw new Error(msg); 48 | } 49 | public void warning( Locator[] locs, String msg ) {} 50 | } 51 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/WordlessErrorReporter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch; 11 | 12 | import org.xml.sax.ErrorHandler; 13 | import org.xml.sax.SAXParseException; 14 | 15 | /** 16 | * {@link ErrorHandler} that reports only the first error. 17 | * 18 | * @author Kohsuke KAWAGUCHI 19 | */ 20 | public class WordlessErrorReporter implements ErrorHandler { 21 | 22 | private boolean first = true; 23 | private SAXParseException error = null; 24 | 25 | public SAXParseException getError() { return error; } 26 | 27 | public void fatalError( SAXParseException e ) throws SAXParseException { 28 | error(e); 29 | throw e; 30 | } 31 | public void error( SAXParseException error ) { 32 | if( first ) { 33 | System.out.println(error.getMessage()); 34 | this.error = error; 35 | } 36 | first = false; 37 | } 38 | 39 | public void warning( SAXParseException warning ) {} 40 | } 41 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/driver/DTDValidator.java: -------------------------------------------------------------------------------- 1 | package batch.driver; 2 | 3 | import org.xml.sax.InputSource; 4 | 5 | import com.sun.msv.grammar.ExpressionPool; 6 | import com.sun.msv.grammar.Grammar; 7 | import com.sun.msv.reader.GrammarReaderController; 8 | import com.sun.msv.reader.dtd.DTDReader; 9 | 10 | public class DTDValidator extends AbstractValidatorExImpl { 11 | 12 | public Grammar parseSchema( InputSource is, GrammarReaderController controller ) throws Exception { 13 | Grammar g = DTDReader.parse(is,controller,new ExpressionPool() ); 14 | if(g==null) return null; 15 | return g; 16 | } 17 | /* 18 | protected String toURL( String path ) throws Exception { 19 | path = new File(path).getAbsolutePath(); 20 | if (File.separatorChar != '/') 21 | path = path.replace(File.separatorChar, '/'); 22 | if (!path.startsWith("/")) 23 | path = "/" + path; 24 | // if (!path.endsWith("/") && isDirectory()) 25 | // path = path + "/"; 26 | return new URL("file", "", path).toExternalForm(); 27 | } 28 | */ 29 | } 30 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/driver/GenericValidator.java: -------------------------------------------------------------------------------- 1 | package batch.driver; 2 | 3 | import org.xml.sax.InputSource; 4 | 5 | import com.sun.msv.grammar.Grammar; 6 | import com.sun.msv.reader.GrammarReaderController; 7 | import com.sun.msv.reader.util.GrammarLoader; 8 | 9 | /** 10 | * Generic Driver for MSV 11 | */ 12 | public class GenericValidator extends AbstractValidatorExImpl { 13 | 14 | public Grammar parseSchema( InputSource is, GrammarReaderController controller ) throws Exception { 15 | return GrammarLoader.loadSchema(is,controller); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/driver/ISchemaImpl.java: -------------------------------------------------------------------------------- 1 | package batch.driver; 2 | 3 | import batch.model.ISchema; 4 | 5 | import com.sun.msv.grammar.Grammar; 6 | import com.sun.msv.grammar.relaxng.RELAXNGGrammar; 7 | 8 | public class ISchemaImpl implements ISchema { 9 | 10 | private final Grammar grammar; 11 | public Grammar asGrammar() { return grammar; } 12 | 13 | ISchemaImpl( Grammar grammar ) { 14 | if(grammar==null) throw new Error("grammar is null"); 15 | this.grammar = grammar; 16 | } 17 | 18 | private Boolean getBool( boolean v ) { 19 | if(v) return Boolean.TRUE; 20 | else return Boolean.FALSE; 21 | } 22 | 23 | public Boolean isAnnotationCompatible() { 24 | if(!(grammar instanceof RELAXNGGrammar)) return null; 25 | return getBool(((RELAXNGGrammar)grammar).isAnnotationCompatible); 26 | } 27 | 28 | public Boolean isIdIdrefCompatible() { 29 | if(!(grammar instanceof RELAXNGGrammar)) return null; 30 | return getBool(((RELAXNGGrammar)grammar).isIDcompatible); 31 | } 32 | 33 | public Boolean isDefaultValueCompatible() { 34 | if(!(grammar instanceof RELAXNGGrammar)) return null; 35 | return getBool(((RELAXNGGrammar)grammar).isDefaultAttributeValueCompatible); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/driver/IValidatorEx.java: -------------------------------------------------------------------------------- 1 | package batch.driver; 2 | 3 | import org.xml.sax.InputSource; 4 | 5 | import batch.model.IValidator; 6 | 7 | import com.sun.msv.grammar.Grammar; 8 | import com.sun.msv.reader.GrammarReaderController; 9 | 10 | public interface IValidatorEx extends IValidator 11 | { 12 | Grammar parseSchema( InputSource source, GrammarReaderController controller ) 13 | throws Exception; 14 | 15 | // boolean validate( Grammar schema, XMLDocument instance ) throws Exception; 16 | } 17 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/driver/IValidatorImplForRNG.java: -------------------------------------------------------------------------------- 1 | package batch.driver; 2 | 3 | import org.iso_relax.verifier.Schema; 4 | 5 | import com.sun.msv.grammar.ExpressionPool; 6 | import com.sun.msv.reader.GrammarReader; 7 | import com.sun.msv.reader.trex.ng.comp.RELAXNGCompReader; 8 | 9 | /** 10 | * Driver for MSV as XML Schema validator. 11 | */ 12 | public class IValidatorImplForRNG extends IValidatorImpl { 13 | 14 | public IValidatorImplForRNG( boolean strict ) { 15 | super(strict); 16 | } 17 | 18 | protected Schema getSchemaForSchema() { 19 | return RELAXNGCompReader.getRELAXNGSchema4Schema(); 20 | } 21 | 22 | protected GrammarReader getReader() { 23 | return new RELAXNGCompReader( createController(), factory, new ExpressionPool() ); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/driver/IValidatorImplForXS.java: -------------------------------------------------------------------------------- 1 | package batch.driver; 2 | 3 | import org.iso_relax.verifier.Schema; 4 | 5 | import com.sun.msv.driver.textui.ReportErrorHandler; 6 | import com.sun.msv.grammar.ExpressionPool; 7 | import com.sun.msv.grammar.Grammar; 8 | import com.sun.msv.grammar.xmlschema.XMLSchemaGrammar; 9 | import com.sun.msv.reader.GrammarReader; 10 | import com.sun.msv.reader.xmlschema.XMLSchemaReader; 11 | import com.sun.msv.verifier.IVerifier; 12 | import com.sun.msv.verifier.identity.IDConstraintChecker; 13 | 14 | /** 15 | * Driver for MSV as XML Schema validator. 16 | */ 17 | public class IValidatorImplForXS extends IValidatorImpl { 18 | 19 | public IValidatorImplForXS( boolean strict ) { 20 | super(strict); 21 | } 22 | 23 | protected Schema getSchemaForSchema() { 24 | return XMLSchemaReader.getXmlSchemaForXmlSchema(); 25 | } 26 | 27 | protected GrammarReader getReader() { 28 | return new XMLSchemaReader( createController(), factory, new ExpressionPool() ); 29 | } 30 | 31 | protected IVerifier getVerifier( Grammar grammar ) { 32 | return new IDConstraintChecker( (XMLSchemaGrammar)grammar, 33 | new ReportErrorHandler() ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/model/ISchema.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.model; 11 | 12 | import com.sun.msv.grammar.Grammar; 13 | 14 | /** 15 | * Represents a compiled shcmea. 16 | * 17 | * The format of the compiled schema is implementation-dependent. 18 | * 19 | * @author 20 | * Kohsuke KAWAGUCHI 21 | */ 22 | public interface ISchema { 23 | Grammar asGrammar(); 24 | } 25 | 26 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/model/IValidator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.model; 11 | 12 | import java.io.File; 13 | import java.io.InputStream; 14 | 15 | 16 | /** 17 | * A validator has to implement this interface to be tested with this harness. 18 | * 19 | * @author 20 | * Kohsuke KAWAGUCHI 21 | */ 22 | public interface IValidator 23 | { 24 | /** 25 | * compiles the specified schema. 26 | * 27 | * @return 28 | * If the validator accepts the schema, it should return a compiled 29 | * schema object. This object will be then used to validate XML instances. 30 | * If the validator rejects the schema, it should return null. 31 | * 32 | * @exception 33 | * Any exception is considered as an conformance violation. 34 | */ 35 | ISchema parseSchema( File schema ) throws Exception; 36 | 37 | ISchema parseSchema( InputStream is ) throws Exception; 38 | 39 | /** 40 | * validates the specified instance with the schema. 41 | * 42 | * @return 43 | * If the validator judges that the document is valid, return true. 44 | * If the validator judges otherwise, return false. 45 | * 46 | * @exception 47 | * Any exception is considered as an conformance violation. 48 | */ 49 | boolean validate( ISchema schema, File document ) throws Exception; 50 | } 51 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/model/TestBuilder.java: -------------------------------------------------------------------------------- 1 | package batch.model; 2 | 3 | import java.io.File; 4 | 5 | import junit.framework.Test; 6 | 7 | /** 8 | * Builds test cases from individual schema/document files. 9 | */ 10 | public interface TestBuilder 11 | { 12 | /** 13 | * Builds a test for a correct schema file. 14 | * 15 | * If this schema has associated test documents, 16 | * The createXXXXDocumentTest methods will be called 17 | * after this method. 18 | */ 19 | Test createCorrectSchemaTest( File schemaFile ); 20 | 21 | // these methods are called after the createCorrectSchemaTest method 22 | // is called 23 | Test createValidDocumentTest( File documentFile ); 24 | Test createInvalidDocumentTest( File documentFile ); 25 | 26 | /** 27 | * Builds a test for an incorrect schema file. 28 | * 29 | * The createXXXXDocumentTest methods will never be called 30 | * for this type of the schema test. 31 | */ 32 | Test createIncorrectSchemaTest( File schemaFile ); 33 | } 34 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/verifier/BatchVerifyTester.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.verifier; 11 | 12 | import batch.model.TestReader; 13 | 14 | /** 15 | * validates instances by schemata. 16 | * 17 | * @author Kohsuke KAWAGUCHI 18 | */ 19 | public class BatchVerifyTester extends batch.BatchTester { 20 | 21 | protected TestReader createReader() { 22 | return new TestReader( new TestBuilderImpl(validator) ); 23 | } 24 | 25 | public static void main( String[] av ) throws Exception { 26 | new BatchVerifyTester().run(av); 27 | } 28 | 29 | protected void usage() { 30 | System.out.println( 31 | "usage "+this.getClass().getName()+" (relax|trex|xsd|dtd|rng) [-strict] [-recursive] \n"+ 32 | " tests the validation engine by using schema files and test instances\n"+ 33 | " in the specified directory."); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/verifier/DTDBatchTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.verifier; 11 | 12 | import junit.framework.TestSuite; 13 | 14 | 15 | /** 16 | * tests the entire RELAX test suite by using BatchVerifyTester. 17 | * 18 | * for use by automated test by ant. 19 | * 20 | * @author Kohsuke KAWAGUCHI 21 | */ 22 | public class DTDBatchTest { 23 | public static TestSuite suite() throws Exception { 24 | return new BatchVerifyTester().createFromProperty( 25 | "dtd","DTDBatchTestDir"); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/verifier/RELAXBatchTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.verifier; 11 | 12 | import junit.framework.TestSuite; 13 | 14 | /** 15 | * tests the entire RELAX test suite by using BatchVerifyTester. 16 | * 17 | * for use by automated test by ant. 18 | * 19 | * @author Kohsuke KAWAGUCHI 20 | */ 21 | public class RELAXBatchTest { 22 | public static TestSuite suite() throws Exception { 23 | return new BatchVerifyTester().createFromProperty( 24 | "relax","RELAXBatchTestDir"); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/verifier/RELAXNGBatchTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.verifier; 11 | 12 | import junit.framework.TestSuite; 13 | 14 | /** 15 | * tests the entire RELAX test suite by using BatchVerifyTester. 16 | * 17 | * for use by automated test by ant. 18 | * 19 | * @author Kohsuke KAWAGUCHI 20 | */ 21 | public class RELAXNGBatchTest { 22 | public static TestSuite suite() throws Exception { 23 | return new BatchVerifyTester().createFromProperty( 24 | "rng","RELAXNGBatchTestDir"); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/verifier/TREXBatchTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.verifier; 11 | 12 | import junit.framework.TestSuite; 13 | 14 | /** 15 | * tests the entire RELAX test suite by using BatchVerifyTester. 16 | * 17 | * for use by automated test by ant. 18 | * 19 | * @author Kohsuke KAWAGUCHI 20 | */ 21 | public class TREXBatchTest { 22 | public static TestSuite suite() throws Exception { 23 | return new BatchVerifyTester().createFromProperty( 24 | "trex","TREXBatchTestDir"); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /msv/src/test/java/batch/verifier/XSDBatchTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.verifier; 11 | 12 | import junit.framework.TestSuite; 13 | 14 | /** 15 | * tests the entire RELAX test suite by using BatchVerifyTester. 16 | * 17 | * for use by automated test by ant. 18 | * 19 | * @author Kohsuke KAWAGUCHI 20 | */ 21 | public class XSDBatchTest { 22 | public static TestSuite suite() throws Exception { 23 | return new BatchVerifyTester().createFromProperty( 24 | "xsd","XSDBatchTestDir"); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /msv/src/test/java/com/sun/msv/driver/textui/DriverTest.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.driver.textui; 2 | 3 | import junit.framework.Test; 4 | import junit.framework.TestCase; 5 | import junit.framework.TestSuite; 6 | import util.Checker; 7 | import util.ResourceChecker; 8 | 9 | public class DriverTest extends TestCase 10 | { 11 | public DriverTest( String name ) { super(name); } 12 | 13 | public static void main(java.lang.String[] args) { 14 | junit.textui.TestRunner.run(suite()); 15 | } 16 | 17 | public static Test suite() { 18 | return new TestSuite(DriverTest.class); 19 | } 20 | 21 | /** tests the existence of all messages */ 22 | public void testMessages() throws Exception { 23 | ResourceChecker.check( 24 | Driver.class, 25 | "", 26 | new Checker(){ 27 | public void check( String propertyName ) { 28 | // if the specified property doesn't exist, this will throw an error 29 | System.out.println( 30 | Driver.localize(propertyName,new Object[]{"@@@","@@@","@@@","@@@","@@@"})); 31 | } 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /msv/src/test/java/com/sun/msv/driver/textui/ReportErrorHandlerTest.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.driver.textui; 2 | 3 | import junit.framework.Test; 4 | import junit.framework.TestCase; 5 | import junit.framework.TestSuite; 6 | import util.Checker; 7 | import util.ResourceChecker; 8 | 9 | public class ReportErrorHandlerTest extends TestCase 10 | { 11 | public ReportErrorHandlerTest( String name ) { super(name); } 12 | 13 | public static void main(java.lang.String[] args) { 14 | junit.textui.TestRunner.run(suite()); 15 | } 16 | 17 | public static Test suite() { 18 | return new TestSuite(ReportErrorHandlerTest.class); 19 | } 20 | 21 | /** tests the existence of all messages */ 22 | public void testMessages() throws Exception { 23 | ResourceChecker.check( 24 | ReportErrorHandlerTest.class, 25 | "", 26 | new Checker(){ 27 | public void check( String propertyName ) { 28 | // if the specified property doesn't exist, this will throw an error 29 | System.out.println( 30 | Driver.localize(propertyName,new Object[]{"@@@","@@@","@@@","@@@","@@@"})); 31 | } 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /msv/src/test/java/com/sun/msv/reader/dtd/DTDReaderTest.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.reader.dtd; 2 | 3 | import junit.framework.Test; 4 | import junit.framework.TestCase; 5 | import junit.framework.TestSuite; 6 | import util.Checker; 7 | import util.ResourceChecker; 8 | 9 | public class DTDReaderTest extends TestCase 10 | { 11 | public DTDReaderTest( String name ) { super(name); } 12 | 13 | public static void main(java.lang.String[] args) { 14 | junit.textui.TestRunner.run(suite()); 15 | } 16 | 17 | public static Test suite() { 18 | return new TestSuite(DTDReaderTest.class); 19 | } 20 | 21 | /** tests the existence of all messages */ 22 | public void testMessages() throws Exception { 23 | ResourceChecker.check( 24 | DTDReader.class, 25 | "", 26 | new Checker(){ 27 | public void check( String propertyName ) { 28 | // if the specified property doesn't exist, this will throw an error 29 | System.out.println( 30 | Localizer.localize(propertyName,new Object[]{"@@@","@@@","@@@","@@@","@@@"})); 31 | } 32 | }); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /msv/src/test/java/com/sun/msv/reader/trex/classic/TREXGrammarReaderTest.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.reader.trex.classic; 2 | 3 | import junit.framework.Test; 4 | import junit.framework.TestCase; 5 | import junit.framework.TestSuite; 6 | import util.Checker; 7 | import util.ResourceChecker; 8 | 9 | import com.sun.msv.reader.GrammarReader; 10 | import com.sun.msv.reader.trex.TREXBaseReader; 11 | 12 | public class TREXGrammarReaderTest extends TestCase 13 | { 14 | public TREXGrammarReaderTest( String name ) { super(name); } 15 | 16 | public static void main(java.lang.String[] args) { 17 | junit.textui.TestRunner.run(suite()); 18 | } 19 | 20 | public static Test suite() { 21 | return new TestSuite(TREXGrammarReaderTest.class); 22 | } 23 | 24 | /** tests the existence of all messages */ 25 | public void testMessages() throws Exception { 26 | final TREXGrammarReader reader = new TREXGrammarReader(null); 27 | 28 | Checker checker = new Checker(){ 29 | public void check( String propertyName ) { 30 | // if the specified property doesn't exist, this will throw an error 31 | System.out.println( 32 | reader.localizeMessage(propertyName,new Object[]{"@@@","@@@","@@@","@@@","@@@"})); 33 | } 34 | }; 35 | 36 | String prefixes[] = new String[]{"ERR_","WRN_"}; 37 | 38 | for( int i=0; iKohsuke KAWAGUCHI 20 | */ 21 | public class StringPairTest extends TestCase { 22 | 23 | public StringPairTest( String name ) { super(name); } 24 | 25 | public static void main(java.lang.String[] args) { 26 | junit.textui.TestRunner.run(suite()); 27 | } 28 | 29 | public static Test suite() { 30 | return new TestSuite(StringPairTest.class); 31 | } 32 | 33 | /** test equals and hashCode method */ 34 | public void testEqualsAndHashCode() { 35 | StringPair[] pairs = new StringPair[]{ 36 | new StringPair("namespace","foo"), 37 | new StringPair("namespac-","foo"), 38 | new StringPair("namespace","bar") }; 39 | 40 | for( int i=0; iorg/iso_relax/verifier/FactoryLoader. 16 | * 17 | * This class is NOT a part of the JUnit test cases. 18 | * 19 | * @author Kohsuke KAWAGUCHI 20 | */ 21 | public class FactoryLoaderTester extends JARVTester 22 | { 23 | public static void main(java.lang.String[] args) throws Exception { 24 | new TheFactoryImplTester().run(args); 25 | } 26 | 27 | protected VerifierFactory getFactory(String language) throws Exception { 28 | return VerifierFactory.newInstance(language); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /msv/src/test/java/com/sun/msv/verifier/jarv/TheFactoryImplTester.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.verifier.jarv; 11 | 12 | import org.iso_relax.verifier.VerifierFactory; 13 | 14 | /** 15 | * test org/iso_relax/verifier/FactoryLoader. 16 | * 17 | * This class is NOT a part of the JUnit test cases. 18 | * 19 | * @author Kohsuke KAWAGUCHI 20 | */ 21 | public class TheFactoryImplTester extends JARVTester 22 | { 23 | public static void main(java.lang.String[] args) throws Exception { 24 | new TheFactoryImplTester().run(args); 25 | } 26 | 27 | protected VerifierFactory getFactory(String language) { 28 | return new TheFactoryImpl(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /msv/src/test/java/com/sun/msv/verifier/jaxp/TestConst.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.verifier.jaxp; 2 | 3 | public class TestConst 4 | { 5 | static final String incorrectSchema = 6 | ""+ 7 | ""+ 8 | ""+ 9 | ""+ 10 | ""+ 11 | ""; 12 | 13 | static final String rngSchema = 14 | ""+ 15 | ""+ 16 | ""+ 17 | ""+ 18 | ""+ 19 | ""; 20 | 21 | static final String xsdSchema = 22 | ""+ 23 | ""+ 24 | ""; 25 | 26 | static final String validDocument = "abc"; 27 | static final String invalidDocument = ""; 28 | } 29 | -------------------------------------------------------------------------------- /msv/src/test/java/com/sun/msv/verifier/regexp/REDocumentDeclarationTest.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.verifier.regexp; 2 | 3 | import junit.framework.Test; 4 | import junit.framework.TestCase; 5 | import junit.framework.TestSuite; 6 | import util.Checker; 7 | import util.ResourceChecker; 8 | 9 | public class REDocumentDeclarationTest extends TestCase { 10 | 11 | public REDocumentDeclarationTest( String name ) { super(name); } 12 | 13 | public static void main(java.lang.String[] args) { 14 | junit.textui.TestRunner.run(suite()); 15 | } 16 | 17 | public static Test suite() { 18 | return new TestSuite(REDocumentDeclarationTest.class); 19 | } 20 | 21 | /** tests the existence of all messages */ 22 | public void testMessages() throws Exception { 23 | 24 | final REDocumentDeclaration decl = new REDocumentDeclaration(null,null); 25 | 26 | Checker checker = new Checker(){ 27 | public void check( String propertyName ) { 28 | // if the specified property doesn't exist, this will throw an error 29 | System.out.println( 30 | decl.localizeMessage(propertyName,new Object[]{"@@@","@@@","@@@","@@@","@@@"})); 31 | } 32 | }; 33 | 34 | ResourceChecker.check( REDocumentDeclaration.class, "", checker ); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /msv/src/test/java/util/Checker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package util; 11 | 12 | /** 13 | * used with ResourceChecker. 14 | * 15 | * @author Kohsuke KAWAGUCHI 16 | */ 17 | public interface Checker 18 | { 19 | void check( String propertyName ) throws Exception; 20 | } 21 | -------------------------------------------------------------------------------- /msv/src/test/resources/files/odf1.3/character-styles.odt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/test/resources/files/odf1.3/character-styles.odt -------------------------------------------------------------------------------- /msv/src/test/resources/files/odf1.3/character-styles_odt/Configurations2/accelerator/current.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/test/resources/files/odf1.3/character-styles_odt/Configurations2/accelerator/current.xml -------------------------------------------------------------------------------- /msv/src/test/resources/files/odf1.3/character-styles_odt/META-INF/manifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /msv/src/test/resources/files/odf1.3/character-styles_odt/Thumbnails/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/test/resources/files/odf1.3/character-styles_odt/Thumbnails/thumbnail.png -------------------------------------------------------------------------------- /msv/src/test/resources/files/odf1.3/character-styles_odt/manifest.rdf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /msv/src/test/resources/files/odf1.3/character-styles_odt/meta.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 5 6 | PT2M45S 7 | 8 | 2023-02-12T15:25:39.184000000LibreOffice/7.3.3.2$Windows_X86_64 LibreOffice_project/d1d0ea68f081ee2800a922cac8f79445e4603348Svante Schubert 9 | -------------------------------------------------------------------------------- /msv/src/test/resources/files/odf1.3/character-styles_odt/mimetype: -------------------------------------------------------------------------------- 1 | application/vnd.oasis.opendocument.text -------------------------------------------------------------------------------- /msv/src/test/resources/grammar/D16B SCRDM (Subset)/D16B (SCRDM Subset) RELEASE NOTES .doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/test/resources/grammar/D16B SCRDM (Subset)/D16B (SCRDM Subset) RELEASE NOTES .doc -------------------------------------------------------------------------------- /msv/src/test/resources/grammar/D16B SCRDM (Subset)/News.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/xmlark/msv/dc2a6420621a0637be48aa63704046ad3b6b01f2/msv/src/test/resources/grammar/D16B SCRDM (Subset)/News.docx -------------------------------------------------------------------------------- /msv/src/test/resources/grammar/ubl1.2/xsd/common/UBL-XAdESv141-2.1.xsd: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /msv/src/test/resources/grammar/ubl2.3/xsd/common/UBL-xmldsig1-schema-2.3.xsd: -------------------------------------------------------------------------------- 1 | 2 | 13 | 14 | 27 | 28 | 31 | 32 | 34 | 35 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /relames/README.md: -------------------------------------------------------------------------------- 1 | # MULTI-SCHEMA XML VALIDATOR SCHEMATRON ADD-ON 2 | 3 | The Multi-Schema XML Validator Schematron add-on is a Java tool 4 | to validate XML documents against RELAX NG [[1]](https://www.oasis-open.org/committees/relax-ng/) schemas annotated with 5 | Schematron schemas [[2]](https://www.schematron.com/). This release includes software developed by the Apache Software Foundation [[3]](https://www.apache.org/) 6 | 7 | ## Overview 8 | 9 | By using this tool, you can embed Schematron constraints into RELAX NG 10 | schemas. Then this tool validates documents against both RELAX NG grammar 11 | and embedded schematron constraints. Schematron makes it easy to write 12 | many constraints which are difficult to achieve by RELAX NG alone. 13 | 14 | To validate documents with Schematron-annotated RELAX NG grammar, enter 15 | the following command: 16 | 17 | ```java 18 | java -jar relames.jar MySchema.rng doc1.xml [doc2.xml ...] 19 | ``` 20 | 21 | To run the program, you must have Xalan-Java [[4]](https://xml.apache.org/xalan-j/) and JAXP-compliant 22 | XML parser in your classpath. 23 | 24 | ## Follow-up Documenation 25 | 26 | Please find the complete documentation [here](../docs/relames/README.md).! 27 | -------------------------------------------------------------------------------- /relames/schemas/id.rng: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | IDREF must refer to ID 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /relames/schemas/id.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 8 | 10 | ]> 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/grammar/SAction.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.grammar; 2 | 3 | import org.apache.xpath.XPath; 4 | 5 | /** 6 | * assert or report 7 | */ 8 | public class SAction { 9 | 10 | public final XPath xpath; 11 | public final String document; 12 | 13 | public SAction( XPath xp, String msg ) { 14 | this.xpath = xp; 15 | this.document = msg; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/grammar/SActions.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schematron.grammar; 11 | 12 | import java.util.Collection; 13 | 14 | /** 15 | * Set of reports and asserts. 16 | * 17 | * @author 18 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 19 | */ 20 | public class SActions { 21 | public final SAction[] asserts; 22 | public final SAction[] reports; 23 | 24 | public SActions( SAction[] _asserts, SAction[] _reports ) { 25 | this.asserts = _asserts; 26 | this.reports = _reports; 27 | } 28 | public SActions( Collection _asserts, Collection _reports ) { 29 | this( 30 | (SAction[]) _asserts.toArray(new SAction[_asserts.size()]), 31 | (SAction[]) _reports.toArray(new SAction[_reports.size()]) ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/grammar/SElementExp.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.grammar; 2 | 3 | import java.util.Collection; 4 | 5 | import org.apache.xml.utils.PrefixResolver; 6 | 7 | import com.sun.msv.grammar.Expression; 8 | import com.sun.msv.grammar.NameClass; 9 | import com.sun.msv.grammar.trex.ElementPattern; 10 | 11 | /** 12 | * {@link ElementPattern} with schematron annotation. 13 | */ 14 | public class SElementExp extends ElementPattern { 15 | 16 | /** this object is used to resolve prefixes found in XPath. */ 17 | public final PrefixResolver prefixResolver; 18 | 19 | /** schematron rules. */ 20 | public final SRule[] rules; 21 | 22 | /** actions directly apply to this element. */ 23 | public final SActions actions; 24 | 25 | public SElementExp( NameClass nc, Expression body, 26 | PrefixResolver pr, Collection rules, SActions actions ) { 27 | 28 | super(nc,body); 29 | 30 | this.prefixResolver = pr; 31 | this.rules = (SRule[]) rules.toArray(new SRule[rules.size()]);; 32 | this.actions = actions; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/grammar/SRule.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.grammar; 2 | 3 | import java.util.Collection; 4 | 5 | import javax.xml.transform.TransformerException; 6 | 7 | import org.apache.xml.utils.PrefixResolverDefault; 8 | import org.apache.xpath.XPath; 9 | import org.apache.xpath.XPathContext; 10 | import org.w3c.dom.Node; 11 | 12 | public class SRule extends SActions 13 | { 14 | private final XPath match; 15 | 16 | public SRule( XPath _match, Collection _asserts, Collection _reports ) { 17 | super(_asserts,_reports); 18 | this.match = _match; 19 | } 20 | 21 | /** 22 | * checks if the given Node matches this rule. 23 | */ 24 | public boolean matches( XPathContext xcntxt, Node node ) throws TransformerException { 25 | return match.execute( 26 | xcntxt, node, new PrefixResolverDefault(node) ) 27 | .num() != XPath.MATCH_SCORE_NONE; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/jarv/FactoryLoaderImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schematron.jarv; 11 | 12 | import org.iso_relax.verifier.VerifierFactory; 13 | import org.iso_relax.verifier.VerifierFactoryLoader; 14 | 15 | import com.sun.msv.schematron.reader.SRELAXNGReader; 16 | 17 | /** 18 | * {@link VerifierFactoryLoader} implementation. 19 | * 20 | * @author 21 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 22 | */ 23 | public class FactoryLoaderImpl implements VerifierFactoryLoader { 24 | public VerifierFactory createFactory(String name) { 25 | if(name.equals(SRELAXNGReader.RNG_PLUS_SCHEMATRON_URI)) 26 | return new RelamesFactoryImpl(); 27 | else 28 | return null; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/jarv/RelamesSchemaImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schematron.jarv; 11 | 12 | import org.iso_relax.verifier.Schema; 13 | import org.iso_relax.verifier.Verifier; 14 | import org.iso_relax.verifier.VerifierConfigurationException; 15 | 16 | import com.sun.msv.grammar.Grammar; 17 | 18 | /** 19 | * {@link Schema} implementation. 20 | * 21 | * @author 22 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 23 | */ 24 | class RelamesSchemaImpl implements Schema { 25 | 26 | private final Grammar grammar; 27 | 28 | RelamesSchemaImpl( Grammar _grammar ) { 29 | this.grammar = _grammar; 30 | } 31 | 32 | public Verifier newVerifier() throws VerifierConfigurationException { 33 | return new RelamesVerifierImpl(grammar); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/jarv/RelamesVerifierImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schematron.jarv; 11 | 12 | import javax.xml.parsers.ParserConfigurationException; 13 | 14 | import org.iso_relax.verifier.VerifierConfigurationException; 15 | import org.iso_relax.verifier.VerifierHandler; 16 | import org.iso_relax.verifier.impl.VerifierImpl; 17 | import org.xml.sax.ErrorHandler; 18 | import org.xml.sax.SAXException; 19 | 20 | import com.sun.msv.grammar.Grammar; 21 | import com.sun.msv.schematron.verifier.RelmesVerifier; 22 | import com.sun.msv.verifier.regexp.REDocumentDeclaration; 23 | 24 | /** 25 | * {@link org.iso_relax.verifier.Verifier} implementation. 26 | * 27 | * @author 28 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 29 | */ 30 | class RelamesVerifierImpl extends VerifierImpl { 31 | 32 | private final RelmesVerifier verifier; 33 | 34 | public RelamesVerifierImpl(Grammar grammar) throws VerifierConfigurationException { 35 | try { 36 | this.verifier = new RelmesVerifier(new REDocumentDeclaration(grammar),null); 37 | } catch( ParserConfigurationException e ) { 38 | throw new VerifierConfigurationException(e); 39 | } 40 | } 41 | 42 | public void setErrorHandler( ErrorHandler handler ) { 43 | super.setErrorHandler(handler); 44 | verifier.setErrorHandler(handler); 45 | } 46 | 47 | public VerifierHandler getVerifierHandler() throws SAXException { 48 | return verifier; 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/reader/PrefixResolverImpl.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.reader; 2 | 3 | import org.apache.xml.utils.PrefixResolver; 4 | import org.xml.sax.Locator; 5 | import org.w3c.dom.Node; 6 | 7 | import com.sun.msv.reader.GrammarReader; 8 | import com.sun.msv.reader.State; 9 | 10 | /** 11 | * prefix resolver. 12 | * 13 | * Note the default namespace is resolved to the current ns value. 14 | */ 15 | class PrefixResolverImpl implements PrefixResolver 16 | { 17 | PrefixResolverImpl( State owner ) { 18 | reader = ((SRELAXNGReader) owner.reader); 19 | currentNs = reader.getTargetNamespace(); 20 | currentResolver = reader.prefixResolver; 21 | location = owner.getLocation(); 22 | } 23 | private final Locator location; 24 | private final String currentNs; 25 | private final SRELAXNGReader reader; 26 | private final GrammarReader.PrefixResolver currentResolver; 27 | 28 | public String getBaseIdentifier() { 29 | return location.getSystemId(); 30 | } 31 | public String getNamespaceForPrefix( String prefix ) { 32 | if(prefix.equals("")) return currentNs; 33 | 34 | String nsUri = reader.schematronNs.getURI(prefix); 35 | if(nsUri!=null) return nsUri; 36 | 37 | // for the compatibility reason with the past version 38 | // also allow the current in-scope namespace bindings to take effect 39 | return currentResolver.resolve(prefix); 40 | } 41 | public String getNamespaceForPrefix( String prefix, Node n ) { 42 | return getNamespaceForPrefix(prefix); 43 | } 44 | public boolean handlesNullPrefixes() { 45 | return false; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/reader/SActionReceiver.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.reader; 2 | 3 | import com.sun.msv.schematron.grammar.SAction; 4 | 5 | public interface SActionReceiver { 6 | public void onAssert( SAction action ); 7 | public void onReport( SAction action ); 8 | } 9 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/reader/SActionState.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.reader; 2 | 3 | import javax.xml.transform.TransformerException; 4 | 5 | import org.apache.xpath.XPath; 6 | 7 | import com.sun.msv.reader.ChildlessState; 8 | import com.sun.msv.schematron.grammar.SAction; 9 | 10 | public abstract class SActionState extends ChildlessState { 11 | 12 | public void endSelf() { 13 | SRELAXNGReader reader = (SRELAXNGReader)this.reader; 14 | 15 | String test = startTag.getAttribute("test"); 16 | 17 | if( test!=null ) { 18 | try { 19 | onActionReady(new SAction( 20 | new XPath(test,null,new PrefixResolverImpl(this), XPath.SELECT), 21 | document.toString().trim() 22 | )); 23 | } catch( TransformerException e ) { 24 | reader.reportError( SRELAXNGReader.ERR_INVALID_XPATH, test, e.getMessage() ); 25 | } 26 | } else { 27 | reader.reportError( SRELAXNGReader.ERR_MISSING_ATTRIBUTE, startTag.qName, "context" ); 28 | } 29 | 30 | super.endSelf(); 31 | } 32 | 33 | private StringBuffer document = new StringBuffer(); 34 | public void characters( char[] buf, int start, int len ) { 35 | document.append( buf, start, len ); 36 | } 37 | 38 | protected abstract void onActionReady( SAction action ); 39 | 40 | public static class SAssertState extends SActionState { 41 | protected void onActionReady( SAction action ) { 42 | ((SActionReceiver)parentState).onAssert(action); 43 | } 44 | } 45 | public static class SReportState extends SActionState { 46 | protected void onActionReady( SAction action ) { 47 | ((SActionReceiver)parentState).onReport(action); 48 | } 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/reader/SGrammarState.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.reader; 2 | 3 | import com.sun.msv.reader.State; 4 | import com.sun.msv.reader.trex.ng.GrammarState; 5 | import com.sun.msv.util.StartTagInfo; 6 | import com.sun.msv.schematron.grammar.SRule; 7 | 8 | /** 9 | * @author Kohsuke Kawaguchi 10 | */ 11 | public class SGrammarState extends GrammarState implements SRuleReceiver { 12 | protected State createChildState(StartTagInfo tag) { 13 | if(!tag.namespaceURI.equals(SRELAXNGReader.SchematronURI)) 14 | return super.createChildState(tag); 15 | 16 | if( tag.localName.equals("rule") ) 17 | return new SRuleState(); 18 | if( tag.localName.equals("pattern") ) 19 | return new SPatternState(); 20 | return null; 21 | } 22 | 23 | public void onRule(SRule rule) { 24 | // TODO: what would be the semantics? 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/reader/SPatternState.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.reader; 2 | 3 | import com.sun.msv.reader.SimpleState; 4 | import com.sun.msv.reader.State; 5 | import com.sun.msv.schematron.grammar.SRule; 6 | import com.sun.msv.util.StartTagInfo; 7 | 8 | import java.util.ArrayList; 9 | import java.util.Iterator; 10 | import java.util.List; 11 | 12 | /** 13 | * @author Kohsuke Kawaguchi 14 | */ 15 | public class SPatternState extends SimpleState implements SRuleReceiver { 16 | 17 | private final List rules = new ArrayList(); 18 | 19 | protected State createChildState( StartTagInfo tag ) { 20 | 21 | if(!tag.namespaceURI.equals(SRELAXNGReader.SchematronURI)) 22 | return null; 23 | 24 | if( tag.localName.equals("rule") ) 25 | return new SRuleState(); 26 | return null; 27 | } 28 | 29 | public void onRule(SRule rule) { 30 | rules.add(rule); 31 | } 32 | 33 | public void endSelf() { 34 | for (Iterator itr = rules.iterator(); itr.hasNext();) { 35 | SRule rule = (SRule) itr.next(); 36 | ((SRuleReceiver)parentState).onRule(rule); 37 | } 38 | 39 | super.endSelf(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/reader/SRootMergedGrammarState.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.reader; 2 | 3 | import com.sun.msv.reader.trex.RootMergedGrammarState; 4 | import com.sun.msv.reader.State; 5 | import com.sun.msv.util.StartTagInfo; 6 | import com.sun.msv.schematron.grammar.SRule; 7 | 8 | /** 9 | * @author Kohsuke Kawaguchi 10 | */ 11 | public class SRootMergedGrammarState extends RootMergedGrammarState { 12 | protected State createChildState(StartTagInfo tag) { 13 | if(!tag.namespaceURI.equals(SRELAXNGReader.SchematronURI)) 14 | return super.createChildState(tag); 15 | 16 | if( tag.localName.equals("rule") ) 17 | return new SRuleState(); 18 | if( tag.localName.equals("pattern") ) 19 | return new SPatternState(); 20 | return null; 21 | } 22 | 23 | public void onRule(SRule rule) { 24 | // TODO: what would be the semantics? 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/reader/SRuleReceiver.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.schematron.reader; 2 | 3 | import com.sun.msv.schematron.grammar.SRule; 4 | 5 | public interface SRuleReceiver { 6 | void onRule( SRule rule ); 7 | } 8 | -------------------------------------------------------------------------------- /relames/src/main/java/com/sun/msv/schematron/verifier/Loc.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schematron.verifier; 11 | import org.xml.sax.Locator; 12 | 13 | /** 14 | * Poor man's locator object. 15 | */ 16 | class Loc { 17 | Loc( Locator src ) { 18 | this.line = src.getLineNumber(); 19 | this.col = src.getColumnNumber(); 20 | } 21 | final int line; 22 | final int col; 23 | } -------------------------------------------------------------------------------- /relames/src/main/resources/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Main-Class: com.sun.msv.schematron.Driver 3 | Created-By: 1.2.2 (Sun Microsystems Inc.) 4 | Class-path: xalan.jar msv.jar xmlParserAPIs.jar 5 | -------------------------------------------------------------------------------- /relames/src/main/resources/META-INF/services/org.iso_relax.verifier.VerifierFactoryLoader: -------------------------------------------------------------------------------- 1 | com.sun.msv.schematron.jarv.FactoryLoaderImpl 2 | -------------------------------------------------------------------------------- /relames/src/main/resources/com/sun/msv/schematron/reader/Messages.properties: -------------------------------------------------------------------------------- 1 | SRELAXNGReader.InvalidXPath = \ 2 | Bad XPath expression "{0}": {1} 3 | 4 | -------------------------------------------------------------------------------- /relames/src/main/resources/com/sun/msv/schematron/reader/Messages_ja.properties: -------------------------------------------------------------------------------- 1 | SRELAXNGReader.InvalidXPath = \ 2 | XPath\u5F0F"{0}"\u306F\u9593\u9055\u3063\u3066\u3044\u307E\u3059\uFF1A {1} 3 | -------------------------------------------------------------------------------- /relames/src/test/java/Relames.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | 11 | import com.sun.msv.schematron.Driver; 12 | 13 | /** 14 | * 15 | * @author 16 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 17 | */ 18 | public class Relames { 19 | 20 | public static void main(String[] args) throws Exception { 21 | Driver.main(args); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /rngconverter/README.md: -------------------------------------------------------------------------------- 1 | # RELAX NG Converter 2 | 3 | RELAX NG Converter is a tool to convert schemas written in various 4 | schema languages to their equivalent in RELAX NG. 5 | 6 | It supports schemas written in XML DTD, RELAX Core, RELAX namespace, 7 | TREX, W3C XML Schema, and RELAX NG itself. 8 | 9 | This release includes software developed by the Apache Software 10 | Foundation (https://www.apache.org/). 11 | 12 | ## Usage 13 | 14 | To convert a schema written in either RELAX Core, RELAX namespace, TREX, 15 | or W3C XML Schema, enter the following: 16 | 17 | ```java 18 | java -jar rngconv.jar myschema.xsd > result.rng 19 | ``` 20 | 21 | The converter detects the schema language automatically (except for XML 22 | DTDs) and writes the result to "result.rng". 23 | 24 | To convert an XML DTD, enter the following: 25 | 26 | ```java 27 | java -jar rngconv.jar -dtd myschema.dtd > result.rng 28 | ``` 29 | 30 | Note that you need the -dtd option. 31 | 32 | ## Follow-up Documenation 33 | 34 | Please find the complete documentation [here](../docs/rngconverter/README.md)! 35 | -------------------------------------------------------------------------------- /rngconverter/src/test/java/RELAXNGConverter.java: -------------------------------------------------------------------------------- 1 | public class RELAXNGConverter { 2 | public static void main( String[] args ) throws Exception { 3 | com.sun.msv.writer.relaxng.Driver.main(args); 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /rngconverter/src/test/java/batch/writer/RELAXNGTester.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.writer; 11 | 12 | import batch.BatchTester; 13 | import batch.driver.IValidatorImplForRNG; 14 | import batch.model.TestReader; 15 | 16 | import com.sun.msv.writer.GrammarWriter; 17 | 18 | /** 19 | * tests RELAX NG converter. 20 | * 21 | * @author Kohsuke KAWAGUCHI 22 | */ 23 | public class RELAXNGTester extends BatchTester { 24 | 25 | protected TestReader createReader() { 26 | return new TestReader( new TestBuilderImpl(validator, 27 | new IValidatorImplForRNG(strict) ) { 28 | protected GrammarWriter getWriter() { 29 | return new com.sun.msv.writer.relaxng.RELAXNGWriter(); 30 | } 31 | } ); 32 | } 33 | public static void main(String[] av) throws Exception { 34 | new RELAXNGTester().run(av); 35 | } 36 | 37 | protected void usage() { 38 | System.out.println( 39 | "usage " 40 | + this.getClass().getName() 41 | + " (relax|trex|xsd|dtd|rng) [-strict] \n" 42 | + " tests RELAX NG converter by\n" 43 | + " 1. converting schema files of the specified type into RELAX NG\n" 44 | + " 2. then parse it by RELAX NG parser\n" 45 | + " 3. then use the test instances to ensure the correctness\n"); 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /rngconverter/src/test/java/batch/writer/relaxng/RELAXNGWriterTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package batch.writer.relaxng; 11 | 12 | import junit.framework.TestSuite; 13 | import batch.writer.RELAXNGTester; 14 | 15 | /** 16 | * tests the RELAXNGWriter with the multiple test directories. 17 | * 18 | * for use by automated test by ant. 19 | * 20 | * @author Kohsuke KAWAGUCHI 21 | */ 22 | public class RELAXNGWriterTest { 23 | public static TestSuite suite() throws Exception { 24 | TestSuite s = new TestSuite(); 25 | 26 | append(s, "RELAXBatchTestDir", "relax"); 27 | append(s, "TREXBatchTestDir", "trex"); 28 | append(s, "XSDBatchTestDir", "xsd"); 29 | append(s, "DTDBatchTestDir", "dtd"); 30 | return s; 31 | } 32 | 33 | private static void append(TestSuite s, String propName, String target) throws Exception { 34 | s.addTest(new RELAXNGTester().createFromProperty(target, propName)); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /rngconverter/src/test/resources/testcases/any.xsd: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /schmit/README.md: -------------------------------------------------------------------------------- 1 | # Schmit: SCHema In Transformation 2 | 3 | Schmit is an [XSLT extension](https://xml.apache.org/xalan-j/extensions.html) that allows you to access schema annotation information from within the stylesheet. This functionality can be used to write more generic stylesheet that isn't tied to any particular XML vocabulary. The current release works for Apache Xalan. 4 | 5 | ## Simple Test 6 | 7 | To run an easy examples, build 'mvn install' and run: 8 | 9 | ```java 10 | java -jar schmit.jar -XSL -IN 11 | ``` 12 | 13 | For instance, from the schmit project directory call (by exchanging the correct on a bash) the following line 14 | 15 | ```java 16 | java -jar ./target/msv-schmit-2022.7-jar-with-dependencies.jar -IN ./src/resources/examples/simple/test.xml -XSL ./src/resources/examples/simple/test.xsl 17 | ``` 18 | 19 | To see the details of the command line syntax, just run: 20 | 21 | ```java 22 | java -jar ./target/schmit--jar-with-dependencies.jar 23 | ```java 24 | 25 | ## Follow-up Documenation 26 | 27 | Please find the complete documentation [here](../docs/schmit/readme.html)! 28 | -------------------------------------------------------------------------------- /schmit/src/main/java/com/sun/msv/schmit/Debug.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schmit; 11 | 12 | /** 13 | * A debug flag. 14 | * 15 | * @author 16 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 17 | */ 18 | class Debug { 19 | static final boolean debug = getDebugFlag(); 20 | 21 | private static boolean getDebugFlag() { 22 | try { 23 | return System.getProperty("com.sun.msv.schmit.debug")!=null; 24 | } catch( Throwable t ) { 25 | return false; 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /schmit/src/main/java/com/sun/msv/schmit/XalanNodeAssociationManager_2_0.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schmit; 11 | 12 | import java.util.HashMap; 13 | import java.util.Map; 14 | 15 | import org.w3c.dom.Node; 16 | 17 | /** 18 | * Implementation for older version of Xalan (2.0-2.1?) 19 | * 20 | * @author 21 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 22 | */ 23 | final class XalanNodeAssociationManager_2_0 extends XalanNodeAssociationManager { 24 | 25 | /** Actual data store. */ 26 | private final Map store = new HashMap(); 27 | 28 | public Object get(Node key) { 29 | return store.get( key ); 30 | } 31 | 32 | public void put(Node key, Object value) { 33 | store.put( key, value ); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /schmit/src/main/java/com/sun/msv/schmit/XalanNodeAssociationManager_2_5.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schmit; 11 | 12 | import java.util.HashMap; 13 | import java.util.Map; 14 | 15 | import org.apache.xml.dtm.DTM; 16 | import org.apache.xml.dtm.ref.DTMNodeProxy; 17 | import org.w3c.dom.Node; 18 | 19 | /** 20 | * Implementation for Xalan 2.5. 21 | * 22 | * @author 23 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 24 | */ 25 | final class XalanNodeAssociationManager_2_5 extends XalanNodeAssociationManager { 26 | 27 | private static final class Key { 28 | private final DTM dtm; 29 | private final int index; 30 | 31 | private Key( DTMNodeProxy proxy ) { 32 | this.dtm = proxy.dtm; 33 | this.index = proxy.getDTMNodeNumber(); 34 | } 35 | 36 | public boolean equals(Object obj) { 37 | if(!(obj instanceof Key)) return false; 38 | Key rhs = (Key)obj; 39 | return this.dtm==rhs.dtm && this.index==rhs.index; 40 | } 41 | 42 | public int hashCode() { 43 | return dtm.hashCode() ^ index; 44 | } 45 | } 46 | 47 | /** Actual data store. */ 48 | private final Map store = new HashMap(); 49 | 50 | public Object get(Node key) { 51 | return store.get( new Key((DTMNodeProxy)key) ); 52 | } 53 | 54 | public void put(Node key, Object value) { 55 | store.put( new Key((DTMNodeProxy)key), value ); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /schmit/src/main/java/com/sun/msv/schmit/grammar/AnnotatedPattern.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schmit.grammar; 11 | 12 | import java.util.List; 13 | 14 | /** 15 | * Pattern with annotation. 16 | * 17 | * @author 18 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 19 | */ 20 | public interface AnnotatedPattern { 21 | /** 22 | * Returns associations attached to this pattern. 23 | * 24 | * @return 25 | * a list of DOM Elements. 26 | */ 27 | List getAnnotations(); 28 | } 29 | -------------------------------------------------------------------------------- /schmit/src/main/java/com/sun/msv/schmit/grammar/relaxng/AnnotatedAttributePattern.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schmit.grammar.relaxng; 11 | 12 | import java.util.List; 13 | 14 | import com.sun.msv.grammar.AttributeExp; 15 | import com.sun.msv.grammar.Expression; 16 | import com.sun.msv.grammar.NameClass; 17 | import com.sun.msv.schmit.grammar.AnnotatedPattern; 18 | 19 | /** 20 | * {@link AttributeExp} with annotations. 21 | * 22 | * @author 23 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 24 | */ 25 | public class AnnotatedAttributePattern extends AttributeExp implements AnnotatedPattern { 26 | 27 | /** 28 | * Read-only list of {@link org.w3c.dom.Element}s that represents 29 | * annotation elements attached to this definition. 30 | */ 31 | private final List annotations; 32 | 33 | public AnnotatedAttributePattern(NameClass nameClass, Expression exp, List _annotations) { 34 | super(nameClass, exp); 35 | this.annotations = _annotations; 36 | } 37 | 38 | public List getAnnotations() { 39 | return annotations; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /schmit/src/main/java/com/sun/msv/schmit/grammar/relaxng/AnnotatedElementPattern.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schmit.grammar.relaxng; 11 | 12 | import java.util.List; 13 | 14 | import com.sun.msv.grammar.Expression; 15 | import com.sun.msv.grammar.NameClass; 16 | import com.sun.msv.grammar.trex.ElementPattern; 17 | import com.sun.msv.schmit.grammar.AnnotatedPattern; 18 | 19 | /** 20 | * {@link ElementPattern} with annotations. 21 | * 22 | * @author 23 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 24 | */ 25 | public class AnnotatedElementPattern extends ElementPattern implements AnnotatedPattern { 26 | 27 | /** 28 | * Read-only list of {@link org.w3c.dom.Element}s that represents 29 | * annotation elements attached to this definition. 30 | */ 31 | private final List annotations; 32 | 33 | public AnnotatedElementPattern(NameClass nameClass, Expression contentModel, List _annotations) { 34 | super(nameClass, contentModel); 35 | this.annotations = _annotations; 36 | } 37 | 38 | public List getAnnotations() { 39 | return annotations; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /schmit/src/main/java/com/sun/msv/schmit/grammar/xmlschema/AnnotatedXSElementExp.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schmit.grammar.xmlschema; 11 | 12 | import java.util.List; 13 | 14 | import com.sun.msv.grammar.xmlschema.ElementDeclExp; 15 | import com.sun.msv.schmit.grammar.AnnotatedPattern; 16 | 17 | /** 18 | * 19 | * 20 | * @author 21 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 22 | */ 23 | public class AnnotatedXSElementExp extends ElementDeclExp.XSElementExp implements AnnotatedPattern { 24 | 25 | private final List annotations; 26 | 27 | public AnnotatedXSElementExp(ElementDeclExp decl, List _annotations) { 28 | super(decl, decl.getElementExp().elementName, decl.getElementExp().contentModel); 29 | this.annotations = _annotations; 30 | } 31 | 32 | public List getAnnotations() { 33 | return annotations; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /schmit/src/main/java/com/sun/msv/schmit/reader/AnnotationParent.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schmit.reader; 11 | 12 | import org.w3c.dom.Node; 13 | 14 | /** 15 | * Receives parsed annotations. 16 | * 17 | * @author 18 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 19 | */ 20 | public interface AnnotationParent { 21 | /** 22 | * Receives parsed annotations. 23 | * 24 | * @param annotation 25 | * Either Element or Attr. 26 | */ 27 | void onEndAnnotation( Node annotation ); 28 | } 29 | -------------------------------------------------------------------------------- /schmit/src/main/java/com/sun/msv/schmit/reader/xmlschema/Util.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.schmit.reader.xmlschema; 11 | 12 | import com.sun.msv.util.StartTagInfo; 13 | 14 | /** 15 | * 16 | * 17 | * @author 18 | * Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) 19 | */ 20 | final class Util { 21 | static boolean isAnnotationElement( StartTagInfo tag ) { 22 | return tag.namespaceURI.equals( SchmitXMLSchemaReader.XMLSchemaNamespace ) 23 | && tag.localName.equals("annotation"); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /schmit/src/resources/examples/readme.txt: -------------------------------------------------------------------------------- 1 | To run examples, go into each sub directory, and run: 2 | 3 | $ java -jar schmit.jar -XSL -IN 4 | 5 | To see the details of the command line syntax, just run: 6 | 7 | $ java -jar schmit.jar 8 | -------------------------------------------------------------------------------- /schmit/src/resources/examples/simple/test.rng: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | root tag 6 | 7 | 8 | 1st child tag 9 | 10 | 11 | 12 | 13 | 2nd child tag 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /schmit/src/resources/examples/simple/test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /schmit/src/resources/examples/simple/test.xsl: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /src/site/copy-javadoc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -euo pipefail 4 | 5 | 6 | echo "Copy generated JavaDoc API from projects into /docs - must been built earlier with 'mvn install'..." 7 | rm -rf ../../docs/core/api 8 | mv ../../msv/target/apidocs ../../docs/core/api 9 | 10 | rm -rf ../../docs/xsdlib/api 11 | mv ../../xsdlib/target/apidocs ../../docs/xsdlib/api 12 | -------------------------------------------------------------------------------- /tahiti/README.md: -------------------------------------------------------------------------------- 1 | # TAHITI 2 | 3 | "Tahiti" is a Java tool to generate a Java object model from a schema. 4 | Currently, it supports RELAX NG. 5 | This release includes software developed by the Apache Software 6 | Foundation (https://xml.apache.org/). 7 | 8 | ## Overview 9 | 10 | This tool is a command line tool that can compile RELAX NG grammar to 11 | a Java object model that in turn parses XML documents written in that 12 | schema. 13 | 14 | The automatic Java object model generation makes it easy to read/write 15 | XML documents from your application. Also, This tool lets you heavily 16 | customize the generated object model. 17 | 18 | This tool should be considered as alpha-quality. And any feedback is 19 | more than welcome! 20 | 21 | ## Follow-up Documenation 22 | 23 | See [UsersGuide.html](./UsersGuide.html) for details. 24 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/compiler/Controller.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.compiler; 11 | 12 | import com.sun.tahiti.grammar.TypeItem; 13 | import com.sun.msv.reader.GrammarReaderController; 14 | import java.io.OutputStream; 15 | import java.io.IOException; 16 | 17 | /** 18 | * this interface acts as a controller of various processings. 19 | * 20 | *

21 | * Methods on the GrammarReaderController interface is used for error reporting. 22 | * 23 | * @author 24 | * Kohsuke KAWAGUCHI 25 | */ 26 | public interface Controller extends GrammarReaderController { 27 | /** 28 | * the contents of the specified {@link TypeItem} will be sent 29 | * to the returned DocumentHandler. 30 | */ 31 | OutputStream getOutput( TypeItem type ) throws IOException; 32 | } 33 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/compiler/ControllerImpl.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.compiler; 11 | 12 | import com.sun.msv.reader.GrammarReaderController; 13 | import org.xml.sax.Locator; 14 | import org.xml.sax.InputSource; 15 | import org.xml.sax.SAXException; 16 | import java.io.IOException; 17 | 18 | /** 19 | * an implementation of the Controller interface. 20 | * 21 | * This implementation delegates GrammarReaderController events to 22 | * another object. 23 | * 24 | * @author 25 | * Kohsuke KAWAGUCHI 26 | */ 27 | public abstract class ControllerImpl implements Controller { 28 | 29 | protected ControllerImpl( GrammarReaderController core ) { 30 | this.core = core; 31 | } 32 | 33 | protected GrammarReaderController core; 34 | 35 | public void error( Locator[] locs, String msg, Exception e ) { 36 | core.error( locs, msg, e ); 37 | } 38 | public void warning( Locator[] locs, String msg ) { 39 | core.warning( locs, msg ); 40 | } 41 | public InputSource resolveEntity( String a, String b ) 42 | throws SAXException, IOException { 43 | return core.resolveEntity(a,b); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/compiler/Symbolizer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.compiler; 11 | 12 | /** 13 | * used to resolve various objects to its id so that 14 | * they can be serialized. 15 | * 16 | * @author 17 | * Kohsuke KAWAGUCHI 18 | */ 19 | public interface Symbolizer { 20 | String getId( Object o ); 21 | } 22 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/compiler/generator/ModelGenerator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.compiler.generator; 11 | 12 | import com.sun.msv.grammar.*; 13 | import com.sun.tahiti.compiler.Symbolizer; 14 | import com.sun.tahiti.compiler.Controller; 15 | import com.sun.tahiti.compiler.java.ClassSerializer; 16 | import com.sun.tahiti.grammar.*; 17 | 18 | /** 19 | * serializes object models into some format. 20 | * 21 | * @author 22 | * Kohsuke KAWAGUCHI 23 | */ 24 | public interface ModelGenerator 25 | { 26 | /** 27 | * generate object models. 28 | */ 29 | void generate( AnnotatedGrammar grammar, Symbolizer symbolizer, Controller controller ) throws Exception ; 30 | 31 | public static final ModelGenerator xmlGenerator = new ModelGenerator() { 32 | public void generate( AnnotatedGrammar grammar, Symbolizer symbolizer, Controller controller ) throws Exception { 33 | new XMLGenerator(grammar,symbolizer,controller).generate(); 34 | } 35 | }; 36 | public static final ModelGenerator javaGenerator = new ModelGenerator() { 37 | public void generate( AnnotatedGrammar grammar, Symbolizer symbolizer, Controller controller ) throws Exception { 38 | new ClassSerializer(grammar,symbolizer,controller).generate(); 39 | } 40 | }; 41 | } 42 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/compiler/java/AtmostOneFieldSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.compiler.java; 11 | 12 | import com.sun.tahiti.grammar.*; 13 | import java.io.PrintWriter; 14 | import org.w3c.dom.Element; 15 | 16 | /** 17 | * serializes a field of (1,1)/(0,1) multiplicity. 18 | * 19 | *

20 | * We use non-collection class (String,Float,MyXYZType) as 21 | * the field type. 22 | * 23 | * @author 24 | * Kohsuke KAWAGUCHI 25 | */ 26 | class AtmostOneFieldSerializer extends SingleFieldSerializer 27 | { 28 | AtmostOneFieldSerializer( ClassSerializer parent, FieldUse fu ) { 29 | super(parent,fu); 30 | } 31 | 32 | 33 | String getTypeStr() { 34 | return parent.toPrintName(fu.type); 35 | } 36 | String setField( String objName ) { 37 | return format("this.{0}=({1}){2};",fu.name,getTypeStr(),objName); 38 | } 39 | String hasMoreToken() { 40 | return format("{0}!=null", fu.name ); 41 | } 42 | String marshall( Element e ) { 43 | if( fu.type instanceof ClassItem || fu.type instanceof InterfaceItem ) 44 | return format("{0}.marshall(out);", fu.name ); 45 | else 46 | return format("out.data({0},{1}.{2});", fu.name, 47 | parent.grammarShortClassName, e.getAttribute("dataSymbol") ); 48 | } 49 | String marshallerInitializer() { 50 | return null; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/compiler/java/ListFieldSerializer.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.compiler.java; 11 | 12 | import com.sun.tahiti.grammar.*; 13 | 14 | /** 15 | * serializes a collection field by using a Vector. 16 | * 17 | * @author 18 | * Kohsuke KAWAGUCHI 19 | */ 20 | class ListFieldSerializer extends VectorFieldSerializer 21 | { 22 | ListFieldSerializer( ClassSerializer parent, FieldUse fu ) { 23 | super(parent,fu); 24 | } 25 | 26 | 27 | String getTypeStr() { 28 | return "java.util.LinkedList /* of " + parent.toPrintName(fu.type) +" */"; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/compiler/java/SingleFieldSerializer.java: -------------------------------------------------------------------------------- 1 | package com.sun.tahiti.compiler.java; 2 | 3 | import com.sun.tahiti.grammar.*; 4 | import java.io.PrintWriter; 5 | 6 | abstract class SingleFieldSerializer extends FieldSerializer 7 | { 8 | public SingleFieldSerializer( ClassSerializer parent, FieldUse fu ) { 9 | super(parent,fu); 10 | } 11 | 12 | 13 | void writeVariableDef( PrintWriter out, AccessModifier mod ) { 14 | out.println("\t"+mod+" "+getTypeStr()+" "+fu.name+";"); 15 | } 16 | 17 | void writeGetterDef( PrintWriter out, AccessModifier mod ) { 18 | out.println("\t"+mod+" "+getTypeStr()+" get"+capitalizedFieldName+"() {"); 19 | out.println("\t\treturn this."+fu.name+";"); 20 | out.println("\t}"); 21 | out.println(); 22 | } 23 | 24 | void writeSetterDef( PrintWriter out, AccessModifier mod ) { 25 | out.println("\t"+mod+" void set"+capitalizedFieldName+"( "+getTypeStr()+" newVal ) {"); 26 | out.println("\t\tthis."+fu.name+" = newVal;"); 27 | out.println("\t}"); 28 | out.println(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/compiler/ll/FilterCalculator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.compiler.ll; 11 | 12 | import com.sun.msv.grammar.*; 13 | import com.sun.msv.grammar.util.ExpressionWalker; 14 | import java.util.Set; 15 | 16 | /** 17 | * computes the filter that will be used to parse <interleave>. 18 | * 19 | *

20 | * See the document of LL marshaller for why such a filter is necessary. 21 | * 22 | *

23 | * This class traverses the child elements and creates a name class that 24 | * contains all possible element names. 25 | * 26 | * @author 27 | * Kohsuke KAWAGUCHI 28 | */ 29 | public class FilterCalculator { 30 | 31 | // use the calc method. 32 | private FilterCalculator() {} 33 | 34 | /** 35 | * computes the set of all element symbols in this branch. 36 | */ 37 | public static Set calc( Expression exp ) { 38 | // compute the possible names. 39 | ElementNameCollector col = new ElementNameCollector(); 40 | exp.visit(col); 41 | 42 | // simplify it 43 | return col.symbols; 44 | } 45 | 46 | private static class ElementNameCollector extends ExpressionWalker { 47 | 48 | Set symbols = new java.util.HashSet(); 49 | 50 | public void onElement( ElementExp exp ) { 51 | symbols.add(exp); 52 | // don't visit the content model. 53 | } 54 | public void onAttribute( AttributeExp exp ) { 55 | // we don't need to traverse the body of attribute. 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/compiler/ll/Util.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.compiler.ll; 11 | 12 | import com.sun.msv.grammar.*; 13 | 14 | /** 15 | * LL grammar related utility methods. 16 | * 17 | * @author 18 | * Kohsuke KAWAGUCHI 19 | */ 20 | class Util 21 | { 22 | public static boolean isTerminalSymbol( Expression exp ) { 23 | return exp instanceof DataOrValueExp 24 | || exp==Expression.anyString 25 | || exp==Expression.epsilon; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/Accessor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.grammar; 11 | 12 | /** 13 | * 14 | * 15 | * @author 16 | * Kohsuke KAWAGUCHI 17 | */ 18 | public class Accessor { 19 | /** 20 | * no need to create an instance. 21 | * Use pre-defined values. 22 | */ 23 | private Accessor() {} 24 | 25 | public static Accessor field = new Accessor(); 26 | public static Accessor readOnly = new Accessor(); 27 | public static Accessor readWrite = new Accessor(); 28 | 29 | /** gets the default accessor. */ 30 | public static Accessor getDefault() { 31 | return readWrite; 32 | } 33 | 34 | /** 35 | * parses the string representation of the accessor 36 | * and returns one of the predefined value. 37 | * 38 | * @return 39 | * If the value is not recognized, return null. 40 | */ 41 | public static Accessor parse( String value ) { 42 | value = value.trim(); 43 | 44 | if(value.equalsIgnoreCase("field")) return field; 45 | if(value.equalsIgnoreCase("readOnly")) return readOnly; 46 | if(value.equalsIgnoreCase("readWrite")) return readWrite; 47 | return null; // unrecognized 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/ClassItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.grammar; 11 | 12 | import com.sun.msv.grammar.Expression; 13 | 14 | /** 15 | * represents a generated class. 16 | * 17 | * @author 18 | * Kohsuke KAWAGUCHI 19 | */ 20 | public class ClassItem extends TypeItem { 21 | 22 | protected ClassItem( String name, Expression exp ) { 23 | super(name); 24 | this.exp = exp; 25 | } 26 | 27 | /** 28 | * this flag is set to true if this class item is generated by automatic guessing, 29 | * rathen than the explicit instruction of the user. 30 | */ 31 | public boolean isTemporary = false; 32 | 33 | /** super class definition, if any. */ 34 | public SuperClassItem superClass; 35 | 36 | public Type getSuperType() { 37 | if(superClass==null) return null; 38 | return superClass.definition; 39 | } 40 | 41 | public Object visitJI( JavaItemVisitor visitor ) { 42 | return visitor.onClass(this); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/CollectionType.java: -------------------------------------------------------------------------------- 1 | package com.sun.tahiti.grammar; 2 | 3 | public class CollectionType { 4 | /** no need to create an instance. Use predefined values. */ 5 | private CollectionType() {} 6 | 7 | public static CollectionType set = new CollectionType(); 8 | public static CollectionType list = new CollectionType(); 9 | public static CollectionType vector = new CollectionType(); 10 | 11 | public static CollectionType getDefault() { 12 | return list; 13 | } 14 | 15 | /** 16 | * parses the string representation of the collection type 17 | * and returns one of the predefined value. 18 | * 19 | * @return 20 | * If the value is not recognized, return null. 21 | */ 22 | public static CollectionType parse( String value ) { 23 | value = value.trim(); 24 | 25 | if(value.equalsIgnoreCase("set")) return set; 26 | if(value.equalsIgnoreCase("list")) return list; 27 | if(value.equalsIgnoreCase("vector")) return vector; 28 | return null; // unrecognized 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/IgnoreItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.grammar; 11 | 12 | import com.sun.msv.grammar.Expression; 13 | 14 | /** 15 | * used to denote the ignored part of the grammar. 16 | * 17 | * @author 18 | * Kohsuke KAWAGUCHI 19 | */ 20 | public class IgnoreItem extends JavaItem { 21 | public IgnoreItem() { super("$ignore"); } 22 | 23 | public IgnoreItem( Expression exp ) { 24 | this(); 25 | this.exp=exp; 26 | } 27 | public Object visitJI( JavaItemVisitor visitor ) { 28 | return visitor.onIgnore(this); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/InterfaceItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.grammar; 11 | 12 | import com.sun.msv.grammar.Expression; 13 | 14 | /** 15 | * represents a generated interface. 16 | * 17 | * @author 18 | * Kohsuke KAWAGUCHI 19 | */ 20 | public class InterfaceItem extends TypeItem { 21 | 22 | protected InterfaceItem( String name, Expression body ) { 23 | super(name); 24 | this.exp = body; 25 | } 26 | 27 | public Type getSuperType() { return null; } // interfaces do not have the super type. 28 | 29 | public Object visitJI( JavaItemVisitor visitor ) { 30 | return visitor.onInterface(this); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/JavaItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.grammar; 11 | 12 | import com.sun.msv.grammar.OtherExp; 13 | 14 | /** 15 | * the base class of all special OtherExps 16 | * that are used to annotate tahiti data-binding information 17 | * to AGM. 18 | * 19 | * @author 20 | * Kohsuke KAWAGUCHI 21 | */ 22 | public abstract class JavaItem extends OtherExp { 23 | public JavaItem( String name ) { 24 | this.name = name; 25 | } 26 | 27 | public String name; 28 | 29 | public abstract Object visitJI( JavaItemVisitor visitor ); 30 | } 31 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/JavaItemVisitor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.grammar; 11 | 12 | /** 13 | * visits JavaItem. 14 | * 15 | * @author 16 | * Kohsuke KAWAGUCHI 17 | */ 18 | public interface JavaItemVisitor { 19 | Object onClass( ClassItem item ); 20 | Object onField( FieldItem item ); 21 | Object onIgnore( IgnoreItem item ); 22 | Object onInterface( InterfaceItem item ); 23 | Object onPrimitive( PrimitiveItem item ); 24 | Object onSuper( SuperClassItem item ); 25 | } 26 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/SuperClassItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.grammar; 11 | 12 | import com.sun.msv.grammar.Expression; 13 | 14 | /** 15 | * represents a derivation relationship between two classes. 16 | * 17 | * @author 18 | * Kohsuke KAWAGUCHI 19 | */ 20 | public class SuperClassItem extends JavaItem { 21 | public SuperClassItem() { 22 | super("superClass-marker"); 23 | } 24 | 25 | public SuperClassItem( Expression exp ) { 26 | this(); 27 | this.exp=exp; 28 | } 29 | 30 | /** actual super class definition. */ 31 | public ClassItem definition = null; 32 | 33 | public Object visitJI( JavaItemVisitor visitor ) { 34 | return visitor.onSuper(this); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/Type.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.grammar; 11 | 12 | import java.util.Set; 13 | 14 | /** 15 | * Type. Several types are generated, and several types are built-in (such as String.) 16 | * Generated types are modeled by TypeItem. Built-in types are modeled by SystemType. 17 | * 18 | * @author 19 | * Kohsuke KAWAGUCHI 20 | */ 21 | public interface Type { 22 | 23 | /** gets the fully-qualified name of this type. */ 24 | String getTypeName(); 25 | 26 | /** 27 | * gets the package name of this type. 28 | * This method returns null if this class does not reside in any package. 29 | */ 30 | String getPackageName(); 31 | /** gets the bare type name (without the package name.) */ 32 | String getBareName(); 33 | 34 | /** gets the super class if any. Otherwise null. */ 35 | Type getSuperType(); 36 | 37 | /** gets directly implemented interfaces. */ 38 | Type[] getInterfaces(); 39 | 40 | /* 41 | Is this method necessary? 42 | */ 43 | // boolean isInterface(); 44 | } 45 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/grammar/TypeItem.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.grammar; 11 | 12 | import java.util.Set; 13 | import java.util.Map; 14 | 15 | /** 16 | * base class of the generated type. 17 | * 18 | * @author 19 | * Kohsuke KAWAGUCHI 20 | */ 21 | public abstract class TypeItem extends JavaItem implements Type { 22 | 23 | public TypeItem( String name ) { 24 | super(name); 25 | // everyone inherites MarshallableObject 26 | interfaces.add( SystemType.get(com.sun.tahiti.runtime.sm.MarshallableObject.class) ); 27 | } 28 | 29 | public final Set interfaces = new java.util.HashSet(); 30 | 31 | /** a map of field name to FieldUse */ 32 | public final Map fields = new java.util.HashMap(); 33 | public FieldUse getFieldUse( String name ) { 34 | FieldUse r = (FieldUse)fields.get(name); 35 | if(r==null) fields.put(name,r=new FieldUse(name)); 36 | return r; 37 | } 38 | 39 | public String getTypeName() { return name; } 40 | public Type[] getInterfaces() { 41 | return (Type[])interfaces.toArray(new Type[interfaces.size()]); 42 | } 43 | 44 | public String getPackageName() { 45 | int idx = name.lastIndexOf('.'); 46 | if(idx<0) return null; 47 | else return name.substring(0,idx); 48 | } 49 | public String getBareName() { 50 | int idx = name.lastIndexOf('.'); 51 | if(idx<0) return name; 52 | else return name.substring(idx+1); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/reader/TahitiGrammarReader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.reader; 11 | 12 | import com.sun.tahiti.grammar.AnnotatedGrammar; 13 | 14 | /** 15 | * Base interface that must be implemented by any GrammarReader 16 | * that can construct Tahiti-annotated AGM. 17 | * 18 | * @author 19 | * Kohsuke KAWAGUCHI 20 | */ 21 | public interface TahitiGrammarReader 22 | { 23 | public static final String TahitiNamespace = 24 | "http://www.sun.com/xml/tahiti/"; 25 | 26 | /** 27 | * the same as the getResult method, but this one returns 28 | * an AnnotatedGrammar object. 29 | */ 30 | AnnotatedGrammar getAnnotatedResult(); 31 | 32 | 33 | public static final String ERR_INVALID_COLLECTION_TYPE = // arg:1 34 | "InvalidCollectionType"; 35 | public static final String ERR_INVALID_ACCESS_MODIFIER = // arg:1 36 | "InvalidAccessModifier"; 37 | public static final String ERR_INVALID_ACCESSOR = // arg:1 38 | "InvalidAccessor"; 39 | } 40 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/reader/TypeUtil.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.reader; 11 | 12 | import com.sun.tahiti.grammar.*; 13 | import java.util.Set; 14 | 15 | /** 16 | * Type-related utility methods. 17 | * 18 | * @author 19 | * Kohsuke KAWAGUCHI 20 | */ 21 | public class TypeUtil { 22 | 23 | /** 24 | * compute the common base type of types. 25 | * 26 | * TODO: this is a very interesting problem. Since one type has possibly 27 | * multiple base types, it's not an easy problem. 28 | * The current implementation is very naive. 29 | */ 30 | public static Type getCommonBaseType( Type[] t ) { 31 | // TODO: 32 | 33 | for( int i=1; iKohsuke KAWAGUCHI 17 | */ 18 | public interface BindableGrammar extends com.sun.msv.grammar.Grammar { 19 | LLParserTable getRootTable(); 20 | Object getRootSymbol(); 21 | } 22 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/Debug.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.ll; 11 | 12 | public class Debug 13 | { 14 | /** 15 | * set this field to true to enable debug information. 16 | */ 17 | // public static boolean debug = true; 18 | } 19 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/DefaultNonTerminalSymbol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.ll; 11 | 12 | import com.sun.msv.datatype.DatabindableDatatype; 13 | import org.relaxng.datatype.ValidationContext; 14 | 15 | /** 16 | * base class of the non-terminal symbols of LL grammar. 17 | * 18 | * @author 19 | * Kohsuke KAWAGUCHI 20 | */ 21 | public class DefaultNonTerminalSymbol extends NonTerminalSymbol { 22 | 23 | public DefaultNonTerminalSymbol( String symbolName ) { 24 | this.symbolName = symbolName; 25 | } 26 | 27 | private final String symbolName; 28 | 29 | public LLParser.Receiver createReceiver( final LLParser.Receiver parent ) { 30 | return new LLParser.CharacterReceiver(){ 31 | public void action(DatabindableDatatype dt, String literal, ValidationContext context ) throws Exception { 32 | ((LLParser.ObjectReceiver)parent).action( 33 | dt.createJavaObject(literal,context) ); 34 | } 35 | public void start() throws Exception {} 36 | public void end() throws Exception {} 37 | }; 38 | } 39 | 40 | public String toString() { return symbolName; } 41 | } -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/Filter.java: -------------------------------------------------------------------------------- 1 | package com.sun.tahiti.runtime.ll; 2 | 3 | import java.util.Set; 4 | 5 | /** 6 | * Input token filter for parsing interleave content models. 7 | * 8 | * This class filters out tokens so that "interleave" can be treated like a sequence. 9 | * 10 | * @author Kohsuke KAWAGUCHI 11 | */ 12 | public interface Filter { 13 | boolean rejects( Object symbol ); 14 | 15 | /** 16 | * Filter class that rejects only one token. 17 | */ 18 | public static final class SimpleFilter implements Filter { 19 | public SimpleFilter( Object symbol ) { this.symbol=symbol; } 20 | 21 | private Object symbol; 22 | 23 | public boolean rejects( Object symbol ) { 24 | return symbol==this.symbol; 25 | } 26 | } 27 | 28 | /** 29 | * Filter class that rejects tokens by using a set. 30 | */ 31 | public static final class SetFilter implements Filter { 32 | public SetFilter( Object[] _symbols ) { 33 | symbols = new java.util.HashSet(); 34 | for( int i=0; i<_symbols.length; i++ ) 35 | symbols.add(_symbols[i]); 36 | } 37 | 38 | private final Set symbols; 39 | 40 | public boolean rejects( Object symbol ) { 41 | return symbols.contains(symbol); 42 | } 43 | } 44 | 45 | /** a filter object that rejects nothing. */ 46 | public static final Filter emptyFilter = new Filter() { 47 | public boolean rejects( Object symbol ) { return false; } 48 | }; 49 | } 50 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/IgnoreSymbol.java: -------------------------------------------------------------------------------- 1 | package com.sun.tahiti.runtime.ll; 2 | 3 | public class IgnoreSymbol extends NonTerminalSymbol { 4 | 5 | private final String name; 6 | public IgnoreSymbol( String _name ) { 7 | this.name = _name; 8 | } 9 | 10 | public LLParser.Receiver createReceiver( final LLParser.Receiver parent ) { 11 | return LLParser.ignoreReceiver; 12 | } 13 | public String toString() { 14 | return name; 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/IntermediateSymbol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.ll; 11 | 12 | import com.sun.msv.datatype.DatabindableDatatype; 13 | import org.relaxng.datatype.ValidationContext; 14 | 15 | /** 16 | * Intermediate non-terminal symbols for LL grammar. 17 | * 18 | * Intermediate non-terminals are non-terminals with no associated action. 19 | * 20 | * @author 21 | * Kohsuke KAWAGUCHI 22 | */ 23 | public final class IntermediateSymbol extends NonTerminalSymbol 24 | { 25 | /** purely for the debug purpose. */ 26 | public final String identifier; 27 | public IntermediateSymbol( String identifier ) { 28 | this.identifier = identifier; 29 | } 30 | public String toString() { 31 | return identifier; 32 | } 33 | 34 | /** 35 | * Intermediate non-terminal does not have its own action. 36 | */ 37 | public LLParser.Receiver createReceiver( final LLParser.Receiver parent ) { 38 | // so it can simply return the parent receiver. 39 | return parent; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/LLAttributeExp.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.ll; 11 | 12 | import com.sun.msv.grammar.NameClass; 13 | import com.sun.msv.grammar.Expression; 14 | import com.sun.msv.grammar.AttributeExp; 15 | 16 | /** 17 | * AttributeExp with LL parser table. 18 | * 19 | * @author 20 | * Kohsuke KAWAGUCHI 21 | */ 22 | public class LLAttributeExp extends AttributeExp { 23 | /** LL parser table for this rule. */ 24 | public LLParserTable parserTable; 25 | 26 | public LLAttributeExp( NameClass nc, Expression body ) { 27 | super(nc,body); 28 | } 29 | 30 | public boolean equals( Object rhs ) { 31 | return this==rhs; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/LLElementExp.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.ll; 11 | 12 | import com.sun.msv.grammar.NameClass; 13 | import com.sun.msv.grammar.Expression; 14 | import com.sun.msv.grammar.trex.ElementPattern; 15 | 16 | /** 17 | * ElementExp with LL parser table. 18 | * 19 | * @author 20 | * Kohsuke KAWAGUCHI 21 | */ 22 | public class LLElementExp extends ElementPattern { 23 | /** LL parser table for this rule. */ 24 | public LLParserTable parserTable; 25 | 26 | public LLElementExp( NameClass nc ) { 27 | this(nc,Expression.nullSet); 28 | } 29 | 30 | public LLElementExp( NameClass nc, Expression body ) { 31 | super(nc,body); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/LLParserTable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.ll; 11 | 12 | /** 13 | * LL parser table. 14 | * 15 | * @author 16 | * Kohsuke KAWAGUCHI 17 | */ 18 | public interface LLParserTable { 19 | /** 20 | * looks up LL parsing table. 21 | * 22 | * @param symStackTop 23 | * the symbol of the current stack top. 24 | * @param symInput 25 | * the symbol of the current input token. 26 | * @return 27 | * null if there is no rule to apply. 28 | */ 29 | Rule[] get( Object symStackTop, Object symInput ); 30 | } 31 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/NamedSymbol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.ll; 11 | 12 | /** 13 | * Non-terminal name symbol for LL grammar. 14 | * immutable. 15 | * 16 | * @author 17 | * Kohsuke KAWAGUCHI 18 | */ 19 | public class NamedSymbol extends NonTerminalSymbol 20 | { 21 | public final String name; 22 | public NamedSymbol( String name ) { 23 | this.name = name; 24 | } 25 | public String toString() { 26 | return "N<"+name+">"; 27 | } 28 | 29 | public LLParser.Receiver createReceiver( final LLParser.Receiver parent ) { 30 | return new LLParser.ObjectReceiver() { 31 | public void start() throws Exception {} 32 | public void end() throws Exception {} 33 | public void action( Object item ) throws Exception { 34 | ((LLParser.FieldReceiver)parent).action( item, NamedSymbol.this ); 35 | } 36 | }; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/NonTerminalSymbol.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.ll; 11 | 12 | /** 13 | * base class of the non-terminal symbols of LL grammar. 14 | * 15 | * @author 16 | * Kohsuke KAWAGUCHI 17 | */ 18 | public abstract class NonTerminalSymbol { 19 | public abstract LLParser.Receiver createReceiver( LLParser.Receiver parent ); 20 | 21 | /** 22 | * the derived class should implement the toString method. 23 | * This method is expected to produce the small (10-15 characters) strings 24 | * like C<String> or N<name>. 25 | */ 26 | public abstract String toString(); 27 | } 28 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/ll/UnmarshallingException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.ll; 11 | 12 | /** 13 | * signals an error encountered during the unmarshalling. 14 | * 15 | * @author 16 | * Kohsuke KAWAGUCHI 17 | */ 18 | public class UnmarshallingException extends org.xml.sax.SAXException { 19 | public UnmarshallingException( Exception e ) { 20 | super(e); 21 | } 22 | public UnmarshallingException( String msg ) { 23 | super(msg); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/sm/MarshallableObject.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.sm; 11 | 12 | /** 13 | * Base interface for marshallable objects. 14 | * 15 | * @author 16 | * Kohsuke KAWAGUCHI 17 | */ 18 | public interface MarshallableObject { 19 | void marshall( Marshaller out ); 20 | } 21 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/sm/Marshaller.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.sm; 11 | 12 | import com.sun.msv.datatype.DatabindableDatatype; 13 | 14 | /** 15 | * interface of marshaller. 16 | * 17 | * A marshaller should implement this interface and perform actual 18 | * marshalling. 19 | * 20 | * @author 21 | * Kohsuke KAWAGUCHI 22 | */ 23 | public interface Marshaller { 24 | void startElement( String namespaceURI, String localName ); 25 | void endElement( String namespaceURI, String localName ); 26 | 27 | void startAttribute( String namespaceURI, String localName ); 28 | void endAttribute( String namespaceURI, String localName ); 29 | 30 | void data( Object data, DatabindableDatatype type ); 31 | } 32 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/runtime/sm/MarshallingException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.runtime.sm; 11 | 12 | /** 13 | * signals an error encountered during the marshalling. 14 | * 15 | * @author 16 | * Kohsuke KAWAGUCHI 17 | */ 18 | public class MarshallingException extends Exception { 19 | 20 | public MarshallingException( String msg, Exception nestedException ) { 21 | super(msg); 22 | this.nestedException = nestedException; 23 | } 24 | 25 | private Exception nestedException; 26 | public Exception getNestedException() { 27 | return nestedException; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/util/text/Model.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.util.text; 11 | 12 | /** 13 | * provides replacement strings for {@link Formatter}. 14 | * 15 | * @author 16 | * Kohsuke KAWAGUCHI 17 | */ 18 | public interface Model { 19 | /** 20 | * computes the replacement string for the specified parameter. 21 | * When a format string contains <%abc>, then "abc" is passed 22 | * as a parameter. 23 | */ 24 | String getParameter( String parameter ); 25 | } 26 | -------------------------------------------------------------------------------- /tahiti/src/main/java/com/sun/tahiti/util/xml/DOMVisitor.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.tahiti.util.xml; 11 | 12 | import org.w3c.dom.Document; 13 | import org.w3c.dom.Element; 14 | import org.w3c.dom.NodeList; 15 | import org.w3c.dom.Node; 16 | 17 | /** 18 | * visits all DOM elements in the depth-first order (in-order). 19 | * 20 | * @author 21 | * Kohsuke KAWAGUCHI 22 | */ 23 | public abstract class DOMVisitor 24 | { 25 | public void visit( Document dom ) { 26 | visit( dom.getDocumentElement() ); 27 | } 28 | 29 | public void visit( Element e ) { 30 | NodeList lst = e.getChildNodes(); 31 | int len = lst.getLength(); 32 | for( int i=0; iKohsuke KAWAGUCHI 23 | */ 24 | public final class XSLTUtil 25 | { 26 | /** gets an XSLT engine. */ 27 | public static TransformerHandler getTransformer( java.io.InputStream src ) 28 | throws TransformerConfigurationException { 29 | 30 | SAXTransformerFactory xsltFactory = new org.apache.xalan.processor.TransformerFactoryImpl(); 31 | return xsltFactory.newTransformerHandler(new StreamSource(src)); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /tahiti/src/main/resources/com/sun/tahiti/compiler/sm/Messages.properties: -------------------------------------------------------------------------------- 1 | MarshallerGenerator.OneOrMore = \ 2 | unable to produce a marshaller for {0} due to the ambiguous one-or-more. \n\ 3 | contact Sun for details. 4 | 5 | 6 | MarshallerGenerator.UndecidableChoice = \ 7 | unable to produce a marshaller for {0} due to the ambiguous choice. \n\ 8 | contact Sun for details. 9 | 10 | MarshallerGenerator.MultipleDefaults = \ 11 | unable to produce a marshaller for {0} due to the complex choice and default branch. \n\ 12 | contact Sun for details. 13 | 14 | Marshaller.IgnoreItem = \ 15 | unable to produce a marshaller for {0} because it\ 16 | has a non-nullable expression specified as "ignore". 17 | -------------------------------------------------------------------------------- /tahiti/src/main/resources/com/sun/tahiti/reader/Messages.properties: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # reader error 4 | # 5 | 6 | InvalidCollectionType = \ 7 | The value of the "t:collection" attribute must be either vector, list or set. 8 | 9 | InvalidAccessModifier = \ 10 | The value of the "t:access" attribute must be either public, protected or private. 11 | 12 | InvalidAccessor = \ 13 | The value of the "t:method" attribute must be either field, readonly or readwrite. 14 | 15 | 16 | # 17 | # normalizer error 18 | # 19 | 20 | 21 | Normalizer.BadSuperClassUse = \ 22 | "superClass" item can be referenced only from "class" items. 23 | 24 | Normalizer.BadItemUse = \ 25 | this parent item is not allowed for this child item. 26 | 27 | Normalizer.MultipleSuperClassBody = \ 28 | This "superClass" item has multiple children. 29 | 30 | Normalizer.MultipleInheritance = \ 31 | more than one super class items are found for the class item "{0}". 32 | 33 | Normalizer.MissingSuperClassBody = \ 34 | the super class item "{0}" doesn't have a child class item. 35 | 36 | Normalizer.BadSuperClassMultiplicity = \ 37 | class item "{0}" can possibly match its super class several times. 38 | 39 | Normalizer.BadSuperClassBodyMultiplicity = \ 40 | a super class item can reach its child class item "{0}" more than once, or maybe zero. 41 | 42 | Normalizer.BadInterfaceToClassMultiplicity = \ 43 | the interface item "{0}" may match multiple children. 44 | 45 | 46 | -------------------------------------------------------------------------------- /tahiti/src/main/resources/com/sun/tahiti/reader/relaxng/Messages.properties: -------------------------------------------------------------------------------- 1 | 2 | UndefinedRole = \ 3 | "{0}" is a bad value for the role attribute. 4 | 5 | NameNeeded = \ 6 | failed to generate a proper name for this role. specify t:name attribute. 7 | -------------------------------------------------------------------------------- /tahiti/src/test/java/Driver.java: -------------------------------------------------------------------------------- 1 | 2 | public class Driver { 3 | public static void main(String[] args) throws Exception { 4 | com.sun.tahiti.compiler.Driver.main(args); 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /tahiti/src/test/java/TestDriver.java: -------------------------------------------------------------------------------- 1 | import com.sun.msv.grammar.Grammar; 2 | import com.sun.tahiti.runtime.ll.*; 3 | import com.sun.tahiti.runtime.sm.*; 4 | import javax.xml.parsers.SAXParserFactory; 5 | import org.xml.sax.XMLReader; 6 | import org.xml.sax.SAXException; 7 | 8 | public class TestDriver 9 | { 10 | public static void main( String args[] ) throws Exception { 11 | 12 | if( args.length!=2 ) { 13 | System.out.println( 14 | "Usage: TestDriver \n"+ 15 | " This test driver uses the specified grammar to \n"+ 16 | " parse the specified instance."); 17 | return; 18 | } 19 | SAXParserFactory factory = new org.apache.xerces.jaxp.SAXParserFactoryImpl(); 20 | factory.setNamespaceAware(true); 21 | 22 | System.out.println("preparing a grammar"); 23 | long cnt = System.currentTimeMillis(); 24 | 25 | Unmarshaller unmarshaller = new Unmarshaller( getGrammar(args[0]) ); 26 | 27 | System.out.println("preparation complete: ("+(System.currentTimeMillis()-cnt)+"ms)"); 28 | 29 | XMLReader reader = factory.newSAXParser().getXMLReader(); 30 | reader.setContentHandler(unmarshaller); 31 | 32 | try { 33 | reader.parse(args[1]); 34 | } catch( SAXException e ) { 35 | if( e.getException()!=null ) 36 | e.getException().printStackTrace(); 37 | } 38 | 39 | MarshallableObject mo = unmarshaller.getResult(); 40 | System.out.println(mo); 41 | 42 | // serialize 43 | MarshallerAPI.marshall( mo, System.out, "UTF-8", true ); 44 | } 45 | 46 | static BindableGrammar getGrammar( String className ) throws Exception { 47 | return (BindableGrammar)Class.forName(className).getField("grammar").get(null); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /trexconverter/README.md: -------------------------------------------------------------------------------- 1 | # TREX CONVERTER 2 | 3 | MSV TREX Converter is a tool to convert schemas written in various 4 | schema languages to their equivalent in TREX. 5 | 6 | It supports schemas written in XML DTD, RELAX Core, RELAX namespace, 7 | RELAX NG, W3C XML Schema, and TREX itself. 8 | 9 | This release includes software developed by the Apache Software 10 | Foundation (https://www.apache.org/). 11 | 12 | ## Follow-up Documenation 13 | 14 | Please find the complete documentation [here](../docs/trexconverter/README.md)! 15 | -------------------------------------------------------------------------------- /trexconverter/src/main/resources/com/sun/msv/writer/trex/Messages.properties: -------------------------------------------------------------------------------- 1 | 2 | Driver.Usage = \ 3 | Usage: TREXConverter [-dtd] \n\ 4 | \n\ 5 | converts a schema written in various schema language to\n\ 6 | the equivalent schema written in TREX.\n 7 | 8 | Driver.GrammarError = \ 9 | failed to load the grammar 10 | -------------------------------------------------------------------------------- /trexconverter/src/main/resources/com/sun/msv/writer/trex/Messages_ja.properties: -------------------------------------------------------------------------------- 1 | Driver.Usage = \ 2 | \u4F7F\u3044\u65B9\uFF1ATREXConverter [-dtd] <\u5909\u63DB\u5143\u30B9\u30AD\u30FC\u30DE\u30D5\u30A1\u30A4\u30EB\u540D/URL>\n\ 3 | \n\ 4 | \u69D8\u3005\u306A\u30B9\u30AD\u30FC\u30DE\u8A00\u8A9E\u3067\u66F8\u304B\u308C\u305F\u30B9\u30AD\u30FC\u30DE\u3092\u3001\u540C\u7B49\u306ETREX\u6587\u6CD5\u306B\u5909\u63DB\u3057\u307E\u3059\n\ 5 | 6 | Driver.GrammarError = \ 7 | \u6587\u6CD5\u306E\u8AAD\u307F\u8FBC\u307F\u306B\u5931\u6557\u3057\u307E\u3057\u305F 8 | 9 | -------------------------------------------------------------------------------- /xsdlib/README.md: -------------------------------------------------------------------------------- 1 | # MSV XML DATATYPES LIBRARY 2 | 3 | MSV XML Datatypes Library, Java implementation of 4 | W3C's XML Schema Part 2 (https://www.w3.org/TR/xmlschema-2/), is 5 | 6 | intended for use with applications that incorporate XML Schema Part 2. 7 | 8 | This preview version implements the recommendation version 9 | (https://www.w3.org/TR/2001/REC-xmlschema-2-20010502/) of the W3C XML 10 | Schema Part 2 Datatype. 11 | 12 | This product includes software developed by the Apache Software 13 | Foundation (https://www.apache.org/). 14 | 15 | ## Follow-up Documenation 16 | 17 | Please find the complete documentation [here](../docs//xsdlib/README.md)! 18 | -------------------------------------------------------------------------------- /xsdlib/src/main/resources/META-INF/services/org.relaxng.datatype.DatatypeLibraryFactory: -------------------------------------------------------------------------------- 1 | com.sun.msv.datatype.xsd.ngimpl.DataTypeLibraryImpl 2 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/Const.java: -------------------------------------------------------------------------------- 1 | package com.sun.msv.datatype.xsd; 2 | 3 | public class Const 4 | { 5 | /** all built-in type names. */ 6 | public static String[] builtinTypeNames = new String[] { 7 | "anySimpleType", 8 | "duration", 9 | "dateTime", 10 | "time", 11 | "date", 12 | "gYearMonth", 13 | "gYear", 14 | "gMonthDay", 15 | "gDay", 16 | "gMonth", 17 | "string", 18 | "normalizedString", 19 | "token", 20 | "language", 21 | "Name", 22 | "NCName", 23 | "ID", 24 | "IDREF", 25 | "IDREFS", 26 | "ENTITY", 27 | "ENTITIES", 28 | "NMTOKEN", 29 | "NMTOKENS", 30 | "boolean", 31 | "base64Binary", 32 | "hexBinary", 33 | "float", 34 | "decimal", 35 | "integer", 36 | "nonPositiveInteger", 37 | "negativeInteger", 38 | "long", 39 | "int", 40 | "short", 41 | "byte", 42 | "nonNegativeInteger", 43 | "unsignedLong", 44 | "unsignedInt", 45 | "unsignedShort", 46 | "unsignedByte", 47 | "positiveInteger", 48 | "double", 49 | "anyURI", 50 | "QName", 51 | "NOTATION"}; 52 | } 53 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/DataTypeImplTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.datatype.xsd; 11 | 12 | import junit.framework.Test; 13 | import junit.framework.TestCase; 14 | import junit.framework.TestSuite; 15 | import util.Checker; 16 | import util.ResourceChecker; 17 | 18 | /** 19 | * tests DataTypeImpl. 20 | * 21 | * @author Kohsuke KAWAGUCHI 22 | */ 23 | public class DataTypeImplTest extends TestCase 24 | { 25 | public DataTypeImplTest( String name ) { super(name); } 26 | 27 | public static void main(java.lang.String[] args) { 28 | junit.textui.TestRunner.run(suite()); 29 | } 30 | 31 | public static Test suite() { 32 | return new TestSuite(DataTypeImplTest.class); 33 | } 34 | 35 | /** tests the existence of all messages */ 36 | public void testMessages() throws Exception { 37 | ResourceChecker.check( 38 | XSDatatypeImpl.class, 39 | "", 40 | new Checker(){ 41 | public void check( String propertyName ) { 42 | // if the specified property doesn't exist, this will throw an error 43 | System.out.println( 44 | XSDatatypeImpl.localize(propertyName,new Object[]{"@@@","@@@","@@@","@@@","@@@"})); 45 | } 46 | }); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/FractionDigitsFacetTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.datatype.xsd; 11 | 12 | import junit.framework.Test; 13 | import junit.framework.TestCase; 14 | import junit.framework.TestSuite; 15 | 16 | /** 17 | * tests FractionDigitsFacet. 18 | * 19 | * @author Kohsuke KAWAGUCHI 20 | */ 21 | public class FractionDigitsFacetTest extends TestCase 22 | { 23 | public FractionDigitsFacetTest( String name ) { super(name); } 24 | 25 | public static void main(java.lang.String[] args) { 26 | junit.textui.TestRunner.run(suite()); 27 | } 28 | 29 | public static Test suite() { 30 | return new TestSuite(FractionDigitsFacetTest.class); 31 | } 32 | 33 | public void testCountScale() 34 | { 35 | assertEquals( 0, FractionDigitsFacet.countScale("5.000000000000") ); 36 | assertEquals( 0, FractionDigitsFacet.countScale("-95") ); 37 | assertEquals( 1, FractionDigitsFacet.countScale("5.9") ); 38 | assertEquals( 1, FractionDigitsFacet.countScale("99925.900") ); 39 | assertEquals( 5, FractionDigitsFacet.countScale("6.0000400") ); 40 | assertEquals( 5, FractionDigitsFacet.countScale("6.0030400") ); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/TotalDigitsFacetTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.datatype.xsd; 11 | 12 | import junit.framework.Test; 13 | import junit.framework.TestCase; 14 | import junit.framework.TestSuite; 15 | 16 | /** 17 | * tests TotalDigitsFacet. 18 | * 19 | * @author Kohsuke KAWAGUCHI 20 | */ 21 | public class TotalDigitsFacetTest extends TestCase 22 | { 23 | public TotalDigitsFacetTest( String name ) { super(name); } 24 | 25 | public static void main(java.lang.String[] args) { 26 | junit.textui.TestRunner.run(suite()); 27 | } 28 | 29 | public static Test suite() { 30 | return new TestSuite(TotalDigitsFacetTest.class); 31 | } 32 | 33 | public void testCountScale() 34 | { 35 | assertEquals( 1, TotalDigitsFacet.countPrecision("5") ); 36 | assertEquals( 3, TotalDigitsFacet.countPrecision("500") ); 37 | assertEquals( 6, TotalDigitsFacet.countPrecision("500000") ); 38 | assertEquals( 6, TotalDigitsFacet.countPrecision("-500000.000000") ); 39 | assertEquals( 2, TotalDigitsFacet.countPrecision("0.05") ); 40 | assertEquals( 2, TotalDigitsFacet.countPrecision(".05") ); 41 | assertEquals( 3, TotalDigitsFacet.countPrecision("-0.952") ); 42 | assertEquals( 3, TotalDigitsFacet.countPrecision("-9.52") ); 43 | assertEquals( 3, TotalDigitsFacet.countPrecision("-952") ); 44 | assertEquals( 7, TotalDigitsFacet.countPrecision("-9520000") ); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/conformance/DerivationTester.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.datatype.xsd.conformance; 11 | 12 | class DerivationTester 13 | { 14 | } 15 | 16 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/conformance/ErrorReceiver.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.datatype.xsd.conformance; 11 | 12 | import com.sun.msv.datatype.xsd.TypeIncubator; 13 | import com.sun.msv.datatype.xsd.XSDatatype; 14 | import org.relaxng.datatype.DatatypeException; 15 | 16 | /** 17 | * receives conformance test error. 18 | * 19 | * @author Kohsuke KAWAGUCHI 20 | */ 21 | interface ErrorReceiver 22 | { 23 | /** 24 | * when unexpected result is encountered, this method is called 25 | * 26 | * return true to abort test 27 | */ 28 | boolean report( UnexpectedResultException exp ); 29 | 30 | /** 31 | * when derivation by restriction failed, this method is called 32 | * 33 | * return true to abort test 34 | */ 35 | boolean reportTestCaseError( XSDatatype baseType, TypeIncubator incubator, 36 | DatatypeException e ); 37 | } 38 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/conformance/TestPattern.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.datatype.xsd.conformance; 11 | 12 | import com.sun.msv.datatype.xsd.TypeIncubator; 13 | import org.relaxng.datatype.DatatypeException; 14 | 15 | /** 16 | * test pattern interface. 17 | * 18 | * @author Kohsuke KAWAGUCHI 19 | */ 20 | public interface TestPattern 21 | { 22 | /** returns the number of test cases to be generated */ 23 | long totalCases(); 24 | 25 | /** restart generating test cases */ 26 | void reset(); 27 | 28 | /** decorate the given TestCase. 29 | * 30 | * @return answer 31 | */ 32 | String get(TypeIncubator ti) throws DatatypeException; 33 | 34 | /** generate next test case */ 35 | void next(); 36 | 37 | /** true indicates get method can be safely called */ 38 | boolean hasMore(); 39 | } 40 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/conformance/UnexpectedResultException.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.datatype.xsd.conformance; 11 | 12 | import com.sun.msv.datatype.xsd.TypeIncubator; 13 | import com.sun.msv.datatype.xsd.XSDatatype; 14 | 15 | /** 16 | * signals unexpected test result. 17 | * 18 | * @author Kohsuke KAWAGUCHI 19 | */ 20 | public class UnexpectedResultException extends Exception 21 | { 22 | public final XSDatatype type; 23 | public final String baseTypeName; 24 | public final String testInstance; 25 | public final boolean supposedToBeValid; 26 | public final TypeIncubator incubator; 27 | 28 | UnexpectedResultException( XSDatatype typeObj, String baseTypeName, 29 | String testInstance, boolean supposedToBeValid, TypeIncubator ti ) 30 | { 31 | this.type = typeObj; 32 | this.baseTypeName = baseTypeName; 33 | this.testInstance = testInstance; 34 | this.supposedToBeValid = supposedToBeValid; 35 | this.incubator = ti; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/datetime/DateTimeFactoryTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.datatype.xsd.datetime; 11 | import junit.framework.Test; 12 | import junit.framework.TestCase; 13 | import junit.framework.TestSuite; 14 | 15 | import java.math.BigDecimal; 16 | 17 | /** 18 | * tests DateTimeFactory. 19 | * 20 | * @author Kohsuke KAWAGUCHI 21 | */ 22 | public class DateTimeFactoryTest extends TestCase { 23 | 24 | public DateTimeFactoryTest(java.lang.String testName) { 25 | super(testName); 26 | } 27 | 28 | public static void main(java.lang.String[] args) { 29 | junit.textui.TestRunner.run(suite()); 30 | } 31 | 32 | public static Test suite() { 33 | return new TestSuite(DateTimeFactoryTest.class); 34 | } 35 | 36 | public static void testCreateFromTime() 37 | { 38 | // 1 second 39 | IDateTimeValueType sec1 = DateTimeFactory. 40 | createFromTime(null,null,Integer.valueOf(1000),null); 41 | assertEquals( sec1, 42 | new BigDateTimeValueType(null, null, null, null, null, new BigDecimal("1"), null ) ); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/com/sun/msv/datatype/xsd/datetime/TimeDurationFactoryTest.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package com.sun.msv.datatype.xsd.datetime; 11 | import junit.framework.Test; 12 | import junit.framework.TestCase; 13 | import junit.framework.TestSuite; 14 | 15 | /** 16 | * tests TimeDurationFactory. 17 | * 18 | * @author Kohsuke KAWAGUCHI 19 | */ 20 | public class TimeDurationFactoryTest extends TestCase { 21 | 22 | public TimeDurationFactoryTest(java.lang.String testName) { 23 | super(testName); 24 | } 25 | 26 | public static void main(java.lang.String[] args) { 27 | junit.textui.TestRunner.run(suite()); 28 | } 29 | 30 | public static Test suite() { 31 | return new TestSuite(TimeDurationFactoryTest.class); 32 | } 33 | 34 | /** Test of create method, of class com.sun.msv.datatype.datetime.TimeDurationFactory. */ 35 | public void testCreate() { 36 | // TODO: Add your test code here. 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /xsdlib/src/test/java/util/Checker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * @(#)$Id$ 3 | * 4 | * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. 5 | * 6 | * This software is the proprietary information of Sun Microsystems, Inc. 7 | * Use is subject to license terms. 8 | * 9 | */ 10 | package util; 11 | 12 | /** 13 | * used with ResourceChecker. 14 | * 15 | * @author Kohsuke KAWAGUCHI 16 | */ 17 | public interface Checker 18 | { 19 | void check( String propertyName ) throws Exception; 20 | } 21 | -------------------------------------------------------------------------------- /xsdlib/src/test/javadoc/com/sun/msv/datatype/xsd/conformance/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Conformance Test with XML Schema Part 2 specification. 4 | 5 | This suite tests 6 | 7 |

    8 |
  1. Does implementation really rejects what it should reject? 9 |
  2. Does implementation really accepts what it should accept? 10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /xsdlib/src/test/resources/com/sun/msv/datatype/xsd/conformance/DerivationTest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | decimal 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | --------------------------------------------------------------------------------