Показаны сообщения с ярлыком XSD. Показать все сообщения
Показаны сообщения с ярлыком XSD. Показать все сообщения

XML Data Binding

Как визуализировать модель данных WSDL

Вариант 1. Eclipse + hyperModel

1) Установить plug-in для Eclipse.
2) Далее импортировать XSD документ.
3) После генерации UML документа открыть его.
4) ПКМ на schema и выбрать Open With - Class Dynagram

Вариант 2. XML Schema to Graphviz + graphviz

Пример:

Сначала нужно скачать XML Schema to Graphviz

Потом установить пакет для визуализации данных graphviz:

$ brew install graphviz
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/graphviz-2.
######################################################################## 100,0%
==> Pouring graphviz-2.38.0.mountain_lion.bottle.tar.gz
🍺  /usr/local/Cellar/graphviz/2.38.0: 469 files, 69M

Далее нужно извлечь XSD из WSDL, это можно сделать с помощью Altova XMLSpy 2011:
1) WSDL - Types - Edit Schema(s) in Shema View
2) ПКМ - Save as...

И наконец визуализировать схему:
$ cd ~/Downloads/xmlschematograph-commandline
$ java -jar XmlSchemaToGraph.jar -o output.dot file:/Users/Devtype/Downloads/schema.xsd 
$ dot -Tpng output.dot > output.png

Вариант 3. xsdvi

Пример: http://xsdvi.sourceforge.net/ipo.svg

Скачать xsdvi

java -jar ~/Downloads/xsdvi/dist/lib/xsdvi.jar schema.xsd


Как валидировать XML по XSD?

Free Online XML Validator Against XSD Schema - FreeFormatter.com

XSD Input:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
   <xs:element name="zoo">
      <xs:complexType>
         <xs:sequence>
            <xs:element minOccurs="0" name="animals">
               <xs:complexType>
                  <xs:sequence>
                     <xs:choice maxOccurs="unbounded" minOccurs="0">
                        <xs:element name="fox" type="xs:string"/>
                        <xs:element name="wolf" type="xs:string"/>
                        <xs:element name="lion" type="xs:string"/>
                        <xs:element name="bear" type="xs:string"/>
                     </xs:choice>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema>

XML Input:
<?xml version="1.0" encoding="UTF-8"?>
<zoo>
   <animals>
      <fox>Eve</fox>
      <wolf>Buffy</wolf>
      <bear>Mario</bear>
      <lion>Ace</lion>
      <bear>Maximus</bear>
   </animals>
</zoo>