# `RDF.XSD.Facets.MaxLength`
[🔗](https://github.com/rdf-elixir/rdf-ex/blob/v3.0.1/lib/rdf/xsd/facets/max_length.ex#L1)

`RDF.XSD.Facet` for `maxLength`.

`maxLength` is the maximum number of units of length, where units of length
varies depending on the type that is being derived from.
The value of `maxLength` must be a `nonNegativeInteger`.

see <https://www.w3.org/TR/xmlschema11-2/datatypes.html#rf-maxLength>

# `max_length`

```elixir
@callback max_length() :: non_neg_integer() | nil
```

Returns the value of this `RDF.XSD.Facet` on specific `RDF.XSD.Datatype`.

# `max_length_conform?`

```elixir
@callback max_length_conform?(
  facet_constraint_value :: any(),
  value :: any(),
  RDF.XSD.Datatype.uncanonical_lexical()
) :: boolean()
```

Validates if a `value` and `lexical` conforms with a concrete `facet_constraint_value` for this `RDF.XSD.Facet`.

This function must be implemented on a `RDF.XSD.Datatype` using this `RDF.XSD.Facet`.

# `conform?`

```elixir
@spec conform?(RDF.XSD.Datatype.t(), any(), RDF.XSD.Datatype.uncanonical_lexical()) ::
  boolean()
```

Checks if a `value` and `lexical` conforms with the `c:max_length_conform?/3` implementation on the `datatype` `RDF.XSD.Datatype`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
