From: BoD (BoD@JRAF.org)
Date: 08/12/2003 - 16:18
En effet, j'ai peut-être mal cherché, mais je n'ai pas trouvé le moyen
avec cette API de travailler en mode "non validateur". J'ai la main sur
la classe Transformer, mais pas sur le parseur qu'elle instancie et utilise.
Voici un extrait de mon code :
// recupération du xml à transformer
// ici je peut le mettre en non validant, mais ce
// n'est pas le parsing du xml source qui pose probleme mais
// celui de la feuille de style
documentBuilderFactory.setValidating(false);
DocumentBuilder docBuilder = ocumentBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new ByteArrayInputStream(bytes));
// recupération de la feuille XSLT
String xslt = findXsltPI(doc);
StreamSource xsltSource = new StreamSource(new
FileInputStream(Constants.SERVLET_FS_ROOT + "styles/" + xslt),
"file:///" + Constants.SERVLET_FS_ROOT + "styles/");
Transformer transformer = transformerFactory.newTransformer(xsltSource);
ByteArrayOutputStream outBaos = new ByteArrayOutputStream();
// transformation
transformer.transform(new DOMSource(doc), new StreamResult(outBaos));
byte outBytes[] = outBaos.toByteArray();
--
En fait en relisant, je me dis qu'au lieu de faire une StreamSource je
devrais peut-être faire une DOMSource comme je le fais plus haut :)
BoD
Sylvain Wallez wrote:
> Eric van der Vlist wrote:
>
>
>>On Mon, 2003-12-08 at 16:28, BoD wrote:
>>
>>
>>
>>>Merci de votre aide, je vais regarder document().
>>>Cependant, pour mon entité nbsp, je serai quand-meme obligé d'avoir la section DOCTYPE, et dans ce cas, comment éviter ce problème? Faut-il déclarer tous les éléments ?!
>>>
>>>
>>
>>Non, la plupart des parseurs peuvent travailler en mode "non validateur". La manière spécifier cela dépend du parseur que vous utilisez pour parser votre transformation XSLT.
>>
>>
>
>
> Ou a défaut, on peut aussi déclarer le contenu de l'élément
> xsl:stylesheet comme étant ANY, et les attributs présents sur cet
> élément. Comme ça, le parser sera content, même s'il est en mode
> validateur ;-)
>
> <!ELEMENT xsl:stylesheet ANY>
> <!ATTLIST xsl:stylesheet
> version CDATA #required
> xmlns:xsl CDATA #required
> xmlns CDATA #required
> >
>
> Sylvain
>
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|