For completeness...
<!--------------------------->
<!-- RDF M&S extension -->
<!--------------------------->
<rdfs:ConstraintProperty rdf:ID="literalRange">
<rdfs:Label> literalRange </rdfs:Label>
<rdfs:comment>
This property is introduced to allow the implementation of enumerations, which can
hardly be seen as classes (the setelements do not have to obey a certain
classproperty). When property A has literalRange = bag B, then when A gets a value,
typechecking software should check if this value belongs to the bag B. If so, then
types match, otherwise return an RDF validation error.
</rdfs:comment>
<rdfs:domain rdf:resource="rdfs:#Property"/>
<rdfs:range rdf:resource="rdfs:#Bag"/>
</rdfs:ConstraintProperty>