segunda-feira, 25 de fevereiro de 2008

XML Schema - Agenda (Compromisso)

Xml Schema do arquivo XML de compromisso:

<?xml version="1.0" encoding="iso-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001 /XMLSchema">
<xs:element name="Agenda">
<xs:complexType>
<xs:sequence>
<xs:element name="Compromisso" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Assunto" type="xs:string"/>
<xs:element name="Local" type="xs:string"/>
<xs:element name="DataInicio" type="xs:date"/>
<xs:element name="HoraInicio" type="xs:time"/>
<xs:element name="DataFim" type="xs:date"/>
<xs:element name="HoraFim" type="xs:time"/>
<xs:element name="Descrição" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>


No Schema os campos DataInicio e DataFim são do tipo date e com isso só aceitam dados no formato: AAAA-MM-DD.

Os campos HoraInicio e HoraFim são do tipo time e só aceitam dados no seguinte formato: "HH-MM-SS"

XML - Agenda (Compromisso)


Exemplo de arquivo XML que pode ser usado para armazenar compromissos.


<?xml version="1.0" encoding="iso-8859-1" ?>
<Agenda>
   <Compromisso>
      <Assunto>Aula XML</Assunto>
      <Local>PUC São Gabriel</Local>
      <DataInicio>2008-02-02   </DataInicio>
      <HoraInicio>07:00:00</HoraInicio>
      <DataFim>2008-02-02   </DataFim>
      <HoraFim>08:40:00</HoraFim>
      <Descrição>Aula de XML com o Kutova</Descrição>
   </Compromisso>
</Agenda>


O arquivo definido tem 2 compromissos, o primeiro uma aula e o segundo uma reunião, com o XML é possível criar restrições e validações de valores para cada "campo", por exemplo é possível realizar validações para que a data inserida não seja invalida, para realizar esses tipos de validações vamos usar o XML Shema que vai ser tratado no próximo post.


XML

Provavelmente você já ouviu falar sobre a linguagem de marcação XML (Extensible Markup Language), o objetivo deste post é explicar de forma simples o que é e para que serve o XML.

O XML é uma linguagem de marcação criada pela W3C (World Wide Web Consortium) com o objetivo principal de facilitar a troca de informações pela internet.

Linguagens de marcação

As linguagens de marcação são usadas há muito tempo fora dos computadores, por exemplo, na publicação de jornais, o autor responsável pela criação de um documento criava o conteúdo e junto ao conteúdo incluía marcas para formatação da página, como exemplo, no título o autor incluía a marca de centro e negrito para que os editores entendam que o título deve ficar centralizado e em negrito quando a publicação for impressa. As linguagens de marcação se tornaram amplamente usadas na internet e a linguagem mais utilizada é o HTML, que funciona como explicado no exemplo, são usadas tags (marcas) para que o seu navegador entenda como os sites devem ser formatados (exibidos).

Diferença entre HTML e XML

O XML também é uma linguagem de marcação e a principal diferença entre o HTML e o XML é que o HTML é utilizado para descrever a formatação do conteúdo que será exibido enquanto o XML descreve a estrutura e o significado dos dados. O uso de linguagem de marcação para descrever e estruturar dados torna possível a reutilização desses dados em vários ambientes diferentes, desde que haja uma padronização em como representar os dados.

O HTML utiliza de tags pré definidas para realizar a formatação dos documentos enquanto o XML permite que o autor crie suas próprias tags para descrever e estruturar os dados.

Para entender melhor vamos supor que você tenha um site de informações de filmes, todas as informações publicadas no seu site são salvas em arquivos XML, caso você tenha um concorrente e vocês entrem em um acordo de compartilhar informações, basta que vocês definam qual vai ser a estrutura dos seus arquivos XML e então comecem a compartilhar os arquivos XML. Veja a seguir um exemplo do arquivo XML para armazenar informações de um filme:

<Filme> Matrix </Filme>
<Ano> 1999 </Ano >
<Genero> Ficção </Genero>
<Sinopse> Luta do ser humano para se livrar do domínio das máquinas que evoluíram... </Sinopse>

Perceba que o arquivo é de fácil entendimento, sendo fácil perceber que o arquivo traz informações como ano, gênero e sinopse do filme Matrix. A possibilidade de criar marcas para definir praticamente qualquer estrutura de dados é o que torna o XML "extensível".

No próximo post vou mostrar um exemplo mais detalhado de um arquivo criado para armazenar compromissos.

quinta-feira, 14 de fevereiro de 2008

RSS e Atom

Para o melhor entendimento desse post vamos pensar na seguinte situação:
Imagine que você gosta de várias revistas e livros e geralmente você precisa ir a várias bancas para poder adquirir o que você quer. Agora imagine se todas essas bancas tivessem um serviço de avisar quando cada revista que te interessa chega e ainda, levá-las até a sua casa sem você ter que ligar pedindo? Essa é a grande vantagem na utilização dos serviços de distribuição de informações na internet, e é esta tecnologia que será abordada no restante deste post.


O que é RSS?

RSS ("Really Simple Syndication") é uma forma simples de distribuir informações na internet. Um documento RSS é feito na linguagem XML e geralmente exibe o grande volume de informações existente em uma página na internet de forma resumida.

O que é Atom?

também é um modelo pada distribuição de informações na internet assim como o RSS. O Atom também é baseado em XML, mas seu desenvolvimento é tido como mais sofisticado. Alguns estudiosos do assunto afirmam que o Atom será o substituto natural do RSS. Para obter mais informações sobre essa tecnologia, visite seu site oficial.

Quais as diferenças entre RSS e Atom?

O Atom tem o mesmo objetivo do RSS, é escrito também em XML, exibe feeds parecidos aos do RSS, porém apresenta algumas vantagens. Do ponto de vista de quem recebe os feeds, o Atom dá menos problemas na leitura, oferece título e subtítulo, nome do autor com ou sem seu email, data e horário da atualização (o RSS é data e horário da publicação), e dá a informação em forma de resumo.
Só exite uma única versão existente do Atom, enquanto o RSS tem várias versões e grandes incompatibilidades entre elas. O Atom apresenta vantagens sobre os RSS e muitos acham que os RSS estarão superados por ele em breve

Como os dados RSS e Atom são usados?

O RSS e o Atom geram "arquivos" que são chamados de feeds. Nos feeds são incluídas informações como título, página (endereço exato de onde há algo novo), descrição da alteração, data, autor, etc, de todas as últimas atualizações do site ao qual ele está agregado. De poucos em poucos minutos o arquivo RSS é atualizado mostrando as alterações recentes. Os feeds são enviados para um agregador onde o usuário pode realizar as leituras e acessar as novidades descritas. Veja o video no final do post para ajudar a entender o funcionamento.

Quais os principais elementos desses padrões?

ID, Identifica o Feed usando uma URL, você pode colocar seu Nome de Domínio nesta parte
Title, contem o título do Feed, este valor não pode ser deixado em branco.
Author, nome do autor do Feed, um feed pode ter inúmeros autores.
Updated, Indica quando foi a ultima vez que a entrada foi modificada.

O que são agregadores?

Os agregadores de notícias são sistemas que lêem os feeds e os exibem amigavelmente. Existem alguns programas que, após serem instalados no seu computador, podem ser alimentados com os links dos feeds. Outros sistemas, mais práticos, são páginas na internet, e basta acessar o endereço da página para alimentar o sistema com os seus feeds preferidos. Assista ao vídeo no final do post para entender melhor o funcionamento dos agregadores. Existe uma grande quantidade de agregadores a minha recomendação é para o google reader.

Lista de agregadores via software:

  • Google Desktop
  • Akregator
  • RSS Owl
  • FeedReader
  • Active Web Reader
  • Pluck RSS Reader
  • RSS Bandit
  • Blam Feed Reader
  • ThinFeeder

Lista de agregadores via site:

  • Google Reader
  • Gobits Reader
  • Bloglines
  • Origo
  • Goowy
Vídeo explicativo:





Referências:

http://www.ufmg.br/online/web/arquivos/003127.shtml

http://pt.wikipedia.org/wiki/Atom

http://revolucao.etc.br/feedsxmlatomrss/

http://pt.wikipedia.org/wiki/RSS

terça-feira, 12 de fevereiro de 2008

TecWeb

Blog criado para armazenar trabalhos e exercícios desenvolvidos na disciplina de Tecnologias da Web.