code: public Property createProperty(final String name) {
          final PropertyFactory factory = getFactory(name);
          if (factory != null) {
              return factory.createProperty();
          } else if (isExperimentalName(name)) {
              return new XProperty(name);
          } else if (allowIllegalNames()) {
              return new XProperty(name);
          } else {
              throw new IllegalArgumentException("Illegal property [" + name
                      + "]");
          }
      }
docs: {@inheritDoc}