code: @Nonnull
    public PSLet readLetFromXML (@Nonnull final IMicroElement eLet)
    {
      final PSLet ret = new PSLet ();
  
      eLet.forAllAttributes ( (sNS, sAttrName, sVal) -> {
        final String sAttrValue = _getAttributeValue (sVal);
        if (sAttrName.equals (CSchematronXML.ATTR_NAME))
          ret.setName (sAttrValue);
        else
          if (sAttrName.equals (CSchematronXML.ATTR_VALUE))
            ret.setValue (sAttrValue);
          else
            _warn (ret, "Unsupported attribute '" + sAttrName + "'='" + sAttrValue + "'");
      });
  
      eLet.forAllChildElements (eLetChild -> {
        if (CSchematron.NAMESPACE_SCHEMATRON.equals (eLetChild.getNamespaceURI ()))
        {
          _warn (ret, "Unsupported Schematron element '" + eLetChild.getLocalName () + "'");
        }
        else
          _warn (ret, "Unsupported namespace URI '" + eLetChild.getNamespaceURI () + "'");
      });
      return ret;
    }
docs: Read a &lt;let&gt; element
  
  @param eLet
  The source micro element. Never <code>null</code>.
  @return The created domain object. May not be <code>null</code>.