2010-03-09 5 views
1

저의 현재 프로젝트에는 원래 책 형태로 출판 된 많은 콘텐츠 저장소가 있습니다. 이 내용의 대부분은 영어와 많은 외국어로 출간되었으며 주로 Quark Express와 이후의 InDesign을 사용했습니다. 이 컨텐트는 저장 및 향후 사용을 위해 사용자 정의 XML 구조로 내보내졌습니다. 문제는 영문 XML이 영어 버전과 다른 외국어 XML의 구조를 벗어난 편집자에 의해 영어 XML이 내 보낸 후 구조 및 메타 데이터에서 시간이 지남에 따라 향상된다는 것입니다.XML 문서를 비교하는 더 좋은 방법은 무엇입니까?

영어 XML :

<chapter meta="meta data added"> 
    <section meta="some meta about the section"> 
     <paragraph>some english paragraph</paragraph> 
     <list> 
      <li>some english list item</li> 
     </list> 
    </section> 
</chapter> 

외국 XML : 예를 들어

<chapter> 
    <section> 
     <paragraph>some original foreign language paragraph</paragraph> 
    </section> 
</chapter> 

당신이 없는 요소뿐만 아니라 속성없는이 시간에 거기에 볼 수 있듯이. 문제는이 시점에서 외국어 구조를 영어와 비교하고 누락 된 메타 데이터 특성 및 요소를 추가 한 다음 XML의 번역되지 않은 부분에 대해보고하고자하는 것입니다.

이 작업을 완료하려면 현재 요소 데이터를 제거하고 웹 응용 프로그램에 배치해야합니다. 거기에서 나는 사용자가 들어 와서 영어 대응 물과 일치하도록 (Jquery를 사용하여 항목을 클릭 한 다음 일치를 허용 함)이 데이터를 (고유 ID로) 속성으로 저장할 수 있습니다. 이 시점에서 어떤 두 요소가 두 언어 문서간에 일치하는지 파악한 다음 외국어 콘텐츠를 영어 구조화 된 XML로 전달할 수 있습니다. 이로 인해 영어 구조화 된 XML 안에 고유 한 ID가없는 요소를 쿼리 할 수있는 외국어 콘텐츠 (uniqueID로 표시)가 남겨 지므로 어떤 항목을 번역해야하는지 알 수 있습니다.

이 프로세스는 정상적으로 작동하지만 꽤 수동적이어서 누군가가 들어가서 단락을 클릭해야합니다. 글자 그대로 수십만 페이지가 넘는 콘텐츠 페이지로, 나는 프로세스를 자동화하는 방법을 찾고 있습니다. 구조에 대한 XML 문서를 비교할 수있는 더 좋은 방법이있어 위의 목표를 수동으로 개입하지 않아도 완료 할 수 있습니까?

현재 프로세스는 C#, ASP.Net, Linq to XML 및 Jquery를 사용합니다. 그러나 언어와 도구는 관련이 없습니다! 더 자동화 된 솔루션을 찾고 싶습니다. DB를 사용한다면 문제 없습니다. 우리가 플랫폼을 전환해야한다면, 괜찮습니다. 언어보다는 구현 문제입니다. 감사!

답변

1

이전에는 텍스트 압축 도구 (Beyond Compare)와 비교하기 전에 XSLT를 사용하여 두 가지 XML을 일반 형식으로 변환했습니다.

변환을 수행하는 데 외부 데이터가 필요한 경우에도 사용할 수 있습니다. 변환의 매개 변수로 액세스 할 수있는 .NET XslCompiledTransform 클래스를 사용하여 외부 데이터를 XSL 변환에 전달할 수 있습니다.

+0

매우 흥미로운 것 같습니다. 변환에 어떤 종류의 외부 데이터를 전달합니까? 나는 그 부분을 잘 따랐는지 확신 할 수 없다. –

+0

@TimC : 원할 경우 많은 다른 것들을 전달할 수 있습니다. 현재 프로세스가 "C#, ASP.Net, Linq와 XML 및 Jquery를 다른 것"으로 사용하기 때문에 언급 만합니다. XML을 처리하기 전에 추가 데이터가 필요했기 때문에 사용할 수 있다고 생각했습니다. 예를 들어 변환을 실행하기 전에 하나 이상의 조회 테이블이 필요한 경우 - 조회 테이블을 변환 중에 참조 할 수있는 XML 문서로 전달할 수 있습니다. –

관련 문제