docs: public ProjectBuilder read(final InputStream in, final URI file) throws IOException {
          try {
              final Document document = readDocument(in, file);
              final Element project = document.getDocumentElement();
              return new ProjectBuilder(
                      getChildren(project, ELEM_DELIVERABLE)
                              .map(this::readDeliverable)
                              .collect(Collectors.toList()),
                      getChildren(project, ELEM_INCLUDE)
                              .map(this::getHref)
                              .filter(Optional::isPresent)
                              .map(Optional::get)
                              .collect(Collectors.toList()),
                      getChildren(project, ELEM_PUBLICATION)
                              .map(this::readPublication)
                              .collect(Collectors.toList()),
                      getChildren(project, ELEM_CONTEXT)
                              .map(this::readContext)
                              .collect(Collectors.toList())
              );
          } catch (SAXException e) {
              throw new IOException(e);
          } catch (TransformerConfigurationException e) {
              throw new RuntimeException(e);
          }
      }