code: public ModelNode parse(final String value, final Location location) throws XMLStreamException {
          ModelNode node = ParseUtils.parseAttributeValue(value, isAllowExpression(), getType());
          try {
              elementValidator.validateParameter(getXmlName(), node);
          } catch (OperationFailedException e) {
              throw new XMLStreamException(e.getFailureDescription().toString(), location);
          }
  
          return node;
      }
docs: Creates and returns a {@link ModelNode} using the given {@code value} after first validating the node
  against {@link #getValidator() this object's validator}.
  <p>
  If {@code value} is {@code null} and a {@link #getDefaultValue() default value} is available, the value of that
  default value will be used.
  </p>
  
  @param value the value. Will be {@link String#trim() trimmed} before use if not {@code null}.
  @param location current location of the parser's {@link javax.xml.stream.XMLStreamReader}. Used for any exception
  message
  
  @return {@code ModelNode} representing the parsed value
  
  @throws XMLStreamException if {@code value} is not valid