Hi,

While working on property value constraints I stumbled on the following:

[nt:propertyDefinition]
  ...
- jcr:requiredType (STRING) protected mandatory
    < 'STRING', 'URI', 'BINARY', 'LONG', 'DOUBLE',
      'DECIMAL', 'BOOLEAN', 'DATE', 'NAME', 'PATH',
      'REFERENCE', 'WEAKREFERENCE', 'UNDEFINED'

The type names are defined in javax.jcr.PropertyType. For example

TYPENAME_STRING = "String";

Now JSR-283 says about string constraints (3.7.3.6.1): "For STRING and URI properties, the constraint string is a regular expression pattern according to the syntax of java.util.regex.Pattern."

So jcr:requiredType can be for example "STRING" but not "String". The former however results in an IllegalArgumentException when passed to PropertyType.valueFromName().

Michael




Reply via email to