Simples Exemplo de assinatura de um XML em Java

Pessoal, boa tarde.

Estou pesquisando sobre como assinar um xml para utiliza-lo via web services atraves de um certificado digital.

Se alguem tiver algum simples exemplo em como iniciar o desenvolvimento disso eu agradeço.

O fato e que no meu trampo isso e muito utilizado para enviar e receber arquivos xml via web services. (Porem estes assinados atraves de um certificado digital).

Pesquisei sobre mas nao encontrei quase nada sobre.

Se houver algum livro que aborde isso, fico grato se alguem me passar o nome…hehe

ou também se alguem postar um simples exemplo sobre melhor ainda…

Desde já agradeço…

Segue um tutorial :

http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/

E aki uns exemplos:
http://www.javac.com.br/jc/posts/list/122-nfe-assinatura-dos-xmls-de-envio-de-lote-cancelamento-e-inutilizacao-certificado-a3.page

Valeuu! XD

Cara utilizei o exemplo passado, porém tive alguns erros:

| INFO: 
[Fatal Error] :1:79: São necessários espaços em branco após a palavra-chave PUBLIC na declaração DOCTYPE.
org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 79; São necessários espaços em branco após a palavra-chave PUBLIC na declaração DOCTYPE.
| ERROR: | org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 79; São necessários espaços em branco após a palavra-chave PUBLIC na declaração DOCTYPE.
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:254)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:300)
	at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:121)
	at AssinarXMLsCertfificadoA3.documentFactory(AssinarXMLsCertfificadoA3.java:221)
	at AssinarXMLsCertfificadoA3.assinaEnviNFe(AssinarXMLsCertfificadoA3.java:108)
	at AssinarXMLsCertfificadoA3.main(AssinarXMLsCertfificadoA3.java:65)
CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)

Não consegui enxegar onde está este bendido erro…hehe

Qualque ajuda fico grato…

Abrs