Modelagem XML com UML Aline Franciele Correia da Silva Roteiro ● ● Motivação Conceitos básicos ○ ○ ○ ● ● ● Mapeando XML em UML Limitações Geração automatizada ○ ○ ● XML XML Schema UML Ferramentas Resultados Referências principais Motivação MOTIVAÇÃO ● UML é uma linguagem de modelagem que permite representar um sistema de forma padronizada; ● UML é para “todos”; ● UML complementa a contrução do XSD; ● Com um pouco de adaptação, geração automatizada. CONCEITOS BÁSICOS Xml ● Troca de informação; ● Recomendação da W3C; ● Flexibilidade do SGML com a simplicidade do HTML; ● Simplicidade para e máquinas legibilidade e ilimitadas; ● Facilidade no geral. tanto possibilidade para de humanos criação de quanto tags XML SCHEMA ● Baseada no formato XML para validação de documentos XML; ● Alternativa ao DTD; ● XSD UML ● UML é uma linguagem unificada; ● Legibilidade e possibilidade de reuso; ● Representação visual do XSD. Modelando XML usando UML Um exemplo prático Em um cenário fícticio, uma empresa de logística quer criar um mecanismo de acompanhamento de remessas a partir da sua sede para seus escritórios regionais. Quando os produtos são enviados, a sede envia informações eletronicamente em XML sobre a remessa. Uma vez que a expedição chegou ao seu destino, a confirmação é enviada eletronicamente para a sede. Mapeando UML em XML Schema Classes complexType <xs:element name="OrdemEnvio"> <xs:complexType> <xs:sequence> <xs:element name="envioId" type="xs:int"/> <xs:element name="origem" type="Origem"/> <xs:element name="destino" type="Destino"/> <xs:element name="pedido" type="Pedido"/> </xs:sequence> </xs:complexType> </xs:element> <xs:sequence> Tipos Tipo Endereço int e double Atributos Atributos em XML <xs:element name="imposto"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:double"> <xs:attribute name="moeda" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> informação </xs:element> adicional Generalização Extension <xs:complexType name="Origem"> <xs:complexContent> <xs:extension base="Endereco"/> </xs:complexContent> </xs:complexType> POO Multiplicidade maxOccurs e minOccurs unbounded Limitações ● UML não consegue captar todos os detalhes presentes em XML Schemas; ● Ordenação, restrição, chaves, etc. ● UML Profile ○ Mecanismo de extensão genérico para personalizar modelos UML para determinados domínios e plataformas. UML Profile Geração automatizada GERAÇÃO DO XSD ● Ferramentas ● XMI ○ ● Troca de metadados entre ferramentas XSD hyperModel Resultados + + hyperModel Resultados + hyperModel <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <!-- OrdemEnvio --> <!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> <xsd:complexType name="OrdemEnvio"> <xsd:sequence> <xsd:element name="EnvioId" type="xsd:int"/> <xsd:element name="origem" type="Origem"/> <xsd:element name="destino" type="Destino"/> <xsd:element name="pedido" type="Pedido"/> </xsd:sequence> </xsd:complexType> Resultados + <xs:element name="OrdemEnvio" type="OrdemEnvio"/> <xs:complexType name="OrdemEnvio"> <xs:sequence> <xs:element name="destino" type="Destino" minOccurs="1" maxOccurs="1"/> <xs:element name="envioId" type="xs:string" minOccurs="1" maxOccurs="1"/> <xs:element name="origem" type="Origem" minOccurs="1" maxOccurs="1"/> <xs:element name="pedido" type="Pedido" minOccurs="1" maxOccurs="1"/> <xs:element name="Destino" type="Destino" minOccurs="1" maxOccurs="1"/> <xs:element name="Origem" type="Origem" minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> CONCLUSÃO ● UML ajuda, mas não faz tudo; ● UML complementa a contrução do XSD; ● Geração automatizada é possível, mas com adaptações. REFERÊNCIAS PRINCIPAIS David Carlson. Modeling XML Applications with UML: Business Applications. Boston: Addison-Wesley, 2001. Practical E- MALIK, Ayesha. Design XML schemas using UML: Translating business concepts into XML vocabularies. 2003. Disponível em: <http://www. ibm.com/developerworks/library/x-umlschem/>. Acesso em: 09 nov. 2015. O'REILLY. Modeling XML Vocabularies with UML: Part I. Disponível em: <http://www.xml.com/pub/a/2001/08/22/uml.html>. Acesso em: 11 nov. 2015. Obrigada