nunojob:~ dscape/08$ echo The Black Sheep

Posts tagged ‘W3C’

xForms Example (CSS)

Sample Xforms Application using cssSo here comes my first ever XForms sample. If you are interested in testing them out I’ll have to give you some pointers. First off all your browser probably can’t render XForms. So you need to find a specific add-on for your browser to make it work. As this XForms where made in Mozilla Firefox with this add-on I strongly recommend that you use it to get the same results. This is not my fault, XForms is not as mature as HTML or CSS and therefor these things tend to happen. You will see what I’m talking about when I get to the Know Issues! :PNow two short notes:

  • For the load/save button to work you will need to change the path in the code. Just look for xforms:submission and replace the filepath for the one in your computer.
  • You need to comment what’s between this for the load button to work. Why? The bind is interfering with the instance replace. How do you fix it? If i knew I would have. I think that when I do remove the bind and add the schema this behavior will be fixed..

<!– remove this lines to erase load bug. Using a schema will fix this –><!– EOB: End of bug –>

Credits for the icons go to famfamfam.Here is the list of known issues (any help is welcome):

  • Not binded to the schema. That’s because I’m lasy and METS is hard work.
  • xforms:select1 won’t hide the scroll on overflow:hidden. I’m not sure this is my responsibility as the add-on doesn’t represent a full XForms implementation.
  • Submission not implemented. That was really not the point.
  • Submission button is relevant when no authorid or workid is given. Anyone?
  • Can’t style ‘add’ and ‘remove’ trigger differently from the other xforms|trigger. I tried creating a class for them having as result a weird inverted triagle. To replicate this bug you need to find a trigger and add style=”border:100px;”.

For now: that’s all folks! Have a nice week.

Creating a User Interface for XML Schema using xForms

We use XSLT all the time to convert a XML document into another format. XML Schemas are XML documents and I think it would be interesting to create the user interface and model for that specific schema using xForms. This would drastically decrease development time and would allow a quick view on what that XML Schema is all about. In other words, this would do for xForms what JAXB does for Java.

Why xForms? xForms is W3C recommendation for creating user interfaces and it’s based on the MVC pattern. This is enough to convince me, I’m all for standards.

While researching I found some works on this subject [here, here] but they are mostly on conference proceedings and therefor I thought no one had really implemented a Generic Schema to xForms transformation engine. Before giving up I asked Vítor Rodrigues about this, as IBM is know for their XML Alphaworks. Guess what? Now I have the solution.

Here’s what you need create an xForm from a Schema:

  • Download Eclipse WTP
  • Open Eclipse and browse to Help > Software Updates > Find and Install
  • Click New Remote Site
  • Name: Emerging Technologies Toolkit (ETTK) Updates
    URL: http://awwebx04.alphaworks.ibm.com/ettktechnologies/updates
  • Select it and click Finish
  • Now select Emerging Technologies Toolkit (ETTK) Updates > Emerging Technologies Toolkit – Technologies > Visual XForms Designer
  • Click next.
  • Accept the license, install the software and restart eclipse.

Now for the Visual XForms Designer I made a little screen-cast. Just click here to see it.

Piada do dia

You’ll also be installing an XForms extension that lets you view XForms documents directly in current versions of Firefox, Internet Explorer, Seamonkey, or Mozilla. If you don’t currently have one of these excellent, standards-compliant browsers installed, now’s a good time to get one.

em: http://www.ibm.com/developerworks/xml/library/x-xformsintro1

O Internet Explorer 8 deverá ser a primeira versão do browser a suportar totalmente os padrões web como CSS e RSS, uma vez que passou no teste de padrões web Acid2 Browser Test.

em: http://www.webtuga.com/Primeira-beta-do-Internet-Explorer-8-devera-chegar-em-meados-de-2008.wtuga

Misturar Microsoft e standards na mesma frase é, para mim, sempre uma boa piada. E, já agora, que raio é o Acid2 Browser Test? Santa ignorância. A minha, claro!

[EDIT: Se estão interessados em saber um pouco mais sobre o assunto podem ler o excelente contributo que o André Luís deixou como comentário]

Uma pequena introdução as assinaturas digitais XML

De acordo com o RFC2828 uma assinatura digital define-se como sendo um valor calculado com um algoritmo criptográfico e anexado ao objecto de dados de tal forma que se possa usar essa assinatura para verificar a autenticidade e integridade dos dados.Então o que é uma assinatura digital XML (W3C XMLDSIG)? É, como seria de esperar, uma assinatura digital mas adaptada a assinar documentos XML.A forma como funcionam é extremamente fiável.Logo para começar a assinatura não só assegura que a pessoa assinou aquele documento é de facto quem se espera – através de um certificado – como também que o mesmo se manteve inalterado até ao momento em que foi apresentado. Uma mensagem encriptada com uma chave pública apenas pode ser desencriptada com a correspondente chave privada.

Começamos por processar o documento. Para isso precisamos de transformar o ficheiro XML em um ficheiro que seja igual na fonte e no destino. Como sabem em XML ter

<nome>   Nuno Pinto</nome>

É igual a

<nome>Nuno Pinto</nome>

Logo surge a necessidade de criar uma representação única para cada documento XML. A este processo chamamos canonicalização. Numa assinatura digital XML existe a necessidade de explicitamente declarar qual foi o algoritmo usado para criar esta representação. Agora podemos processar o documento XML e criar, através de um algoritmo criptográfico num processo normalmente chamado de digest, uma impressão digital do documento. Em seguida, com a chave privada, encriptamos essa impressão digital e enviamos para o destinatário a nossa assinatura (que contém a chave pública, certificados, impressão digital assinada e os algoritmos que foram usados para o digest e a canonicalização).Ao receber o documento assinado pode-se verificar o resultado do digest do documento (usando os algoritmos contidos na assinatura). Depois podemos desencriptar a impressão digital assinada e comparar os dois valores. Se coincidirem é valido dizer que o documento é autentico e não foi alterado. Fixe!Por fim resta dizer que existem três tripos de assinaturas XMLDSIG.

  1. Detached: O documento XML a ser assinado e a assinatura estão são dois ficheiros distintos, sendo que esta tem uma referência ao documento que se propõe a assinar.
  2. Enveloped: O documento XML e a assinatura surgem no mesmo ficheiro de uma forma sequencial.
  3. Enveloping: O documento e a assinatura estão contidos em um envelope XML.

Se este artigo serviu para vos aguçar o apetite sobre este assunto, podem ler mais sobre o assunto no artigo Programing with Java XML Digital Signature API feito pelo Sean Mullan da Sun.

Follow

Get every new post delivered to your Inbox.