# {py:mod}`arelle.oim.tc.value_validator` ```{py:module} arelle.oim.tc.value_validator ``` ```{autodoc2-docstring} arelle.oim.tc.value_validator :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ValueConstraintValidator ` - ```{autodoc2-docstring} arelle.oim.tc.value_validator.ValueConstraintValidator :summary: ``` ```` ### API `````{py:class} ValueConstraintValidator(constraint: arelle.oim.tc.metadata.model.TCValueConstraint, namespaces: collections.abc.Mapping[str, str]) :canonical: arelle.oim.tc.value_validator.ValueConstraintValidator ```{autodoc2-docstring} arelle.oim.tc.value_validator.ValueConstraintValidator ``` ```{rubric} Initialization ``` ```{autodoc2-docstring} arelle.oim.tc.value_validator.ValueConstraintValidator.__init__ ``` ````{py:method} validate(value: str) -> bool :canonical: arelle.oim.tc.value_validator.ValueConstraintValidator.validate ```{autodoc2-docstring} arelle.oim.tc.value_validator.ValueConstraintValidator.validate ``` ```` ````{py:method} first_violation(value: str) -> str | None :canonical: arelle.oim.tc.value_validator.ValueConstraintValidator.first_violation ```{autodoc2-docstring} arelle.oim.tc.value_validator.ValueConstraintValidator.first_violation ``` ```` `````