2011-08-31 6 views
0

XML 파일 작업을 할 때 도움이되는 도구를 찾고 있습니다. 필자는 다른 XML 구조를 이해해야하고, 종이에 모든 것을 그려야하거나 다이어그램을 직접 모델링해야 할 때 상당히 짜증이납니다.XML 모델링 도구

누구에게 XML 구조를 찾는 데 도움이 될만한 도구가 있는지 알고 싶습니다.

나는이 필요한 이유를 이해하지 못하는 사람의 경우,이 상상이 경우, 어머니와 아버지에

<parent id="1"> 
<name> ... </name> 
</parent> 
<parent id="2"> 
<name> ... </name> 
</parent> 

<child mother="1" father="2"></child> 

는 부모 요소의 id로 설정됩니다.

가끔은 (ID 또는 일부 문자열 식별자를 사용하여)이 방법으로 다른 노드와 연결된 거대한 구조가 있습니다. 이 수동으로 처리하는 짜증 그리고 XML (최소한의 입력)에서 다이어그램을 그릴 수있는 몇 가지 자동 방법이 있는지 알고 싶습니다. 단지의 첫 번째 큰 전망을 얻기 위해,

난 당신이 도구에 대한 요구하는지 알고

답변

2

주셔서 감사합니다, 당신은 UML과 함께 귀하의 질문에 태그를 지정하는, 그러나 아마 당신은 펄과 함께 Graph::Easy 모듈을 좋아할 귀하의 XML. ,

enter image description here

그냥 아주 간단한 예제 :

#!/usr/bin/perl -w 
use 5.010; 
use strict; 
use warnings; 

use Graph::Easy; 
use IO::All; 
use Path::Class; 
use XML::LibXML; 

my $graph = Graph::Easy->new(timeout => 100); 
my $parser = XML::LibXML->new(); 
my $xmlFile = file('...') # Replace by your path. 

my $dom = $parser->parse_file($xmlFile); 
foreach my $childNode ($dom->findnodes('//child')) 
{ 
    $graph->add_edge 
    (
     $childNode->getAttribute('id'), 
     $childNode->getAttribute('mother'), 
     'has mother' 
    ); 
    $graph->add_edge 
    (
     $childNode->getAttribute('id'), 
     $childNode->getAttribute('father'), 
     'has father' 
    ); 
} 

$graph->as_svg > io("graph.svg"); 

및 결과 :

여기
<test> 
    <parent id="1"/> 
    <parent id="2"/> 
    <child id="11" mother="1" father="2"/> 
    <child id="10" mother="1" father="2"/> 
</test> 

가 작은 스크립트입니다

다음은 샘플 XML입니다 그러나 당신은 쉽게 더 나아가 다른 유형의 선을 추가 할 수 있습니다. 색상 등의 예에 의하여 :

enter image description here

+0

내가 실제로 찾고 있었던 것처럼 보입니다! 고마워요 :) –

1

은 아마도 잘못된 도구를 사용하고? XML은 하향식 트리 구조로 저장된 데이터를 식별하는 데 가장 적합합니다. 설명하는 구조가 더 복잡한 관계를 가지고 있습니다 (부모는 경우에 따라 최상위 요소 일 수도 있고 다른 요소에서는 하위 요소 일 수도 있습니다) ... 관계형 데이터베이스 (예 : SQL 기반)가 설명하는 것이 더 좋을 수도 있습니다.

+0

사실 저는 XML을위한 도구를 사용하지 않았습니다 ... –

+0

XML은 모델링에 유용하며 다른 것을 사용하는 지점을 보지 못해 관계를 설명하기 위해 XML을 많이 사용합니다. 그러나 문제는 제가 스키마의 디자이너가 아니라 다른 누군가의 디자이너 인 경우입니다. 관계가 많은 다른 사람의 구조를 이해하는 것은 고통 스럽습니다. –

+1

XML 자체를 도구로 언급했습니다. 디자인 관점에서 볼 때, 원하는 데이터 세트에 대한 관계형 데이터베이스를 쿼리하여 xml 시트에서 추출하는 것이 훨씬 쉽습니다. 데이터베이스 스키마 자체는 데이터 간의 관계를 설명하며 MySql Workbench와 같은 도구를 사용하여 시각화하는 것이 매우 쉽습니다. 나는 XML 기반의 프로젝트와 SQLite 데이터베이스와 잘 어울리는 훌륭한 XML 구문 분석 스크립트를 사용하여 분석을위한 귀중한 도구가되었습니다. –