public String get(final String uuid, final String... extra)
        throws BadRequestException, DocumentNotFoundException, ServerErrorException
    {
        final String xslt = extra[0];
        if (extra.length == 0 || xslt == null)
            return super.get(uuid, extra);

        final XMLDocument  document;
        final XSLTDocument transformer;
        final XSDDocument  schema;

        try {

            if (!dao.exists(uuid)) {
                document = getRemote(uuid);
                dao.create(document);
            } else
                document = dao.get(uuid);


            if (!xsltDAO.exists(xslt)) {
                transformer = getRemoteXSLT(xslt);
                xsltDAO.create(transformer);
            } else
                transformer = xsltDAO.get(xslt);

            try {
                final String xsd = transformer.getXSD();

                if (!xsdDAO.exists(xsd)) {
                    schema = getRemoteXSD(xsd);
                    xsdDAO.create(schema);
                } else
                    schema = xsdDAO.get(xsd);

            } catch (final DocumentNotFoundException dnfe) {
                throw new BadRequestException("XSD not found", dnfe);
            }

        } catch (final SQLException sqe) {
            throw new ServerErrorException("Database Error", sqe);
        }

        validate(document, schema);
        return transform(document, transformer);
    }