문제

번역을 수행하기 위해 XSLT 및/또는 Java 또는 C# 클래스를 생성하기 위해 Altova MapForce(또는 이와 유사한 것)를 고려하고 있습니다.현재 우리는 데이터베이스에서 바로 데이터를 가져와 웹 서비스에 게시할 XML 문자열을 수동으로 구축합니다.

db -> (내부)XML -> XSLT -> (외부)XML이어야 합니까?여러분은 넓은 세상에서 무엇을 하시나요?

도움이 되었습니까?

해결책

기본 XML 직렬화 클래스 중 하나를 사용하여 내부 XML 생성을 수행한 다음 XSLT를 사용하여 외부 XML로 변환합니다.개체 변경으로 인해 문제가 발생하는 경우 번역 코드(XSLT 번역을 구동하는 모든 것)가 번역에 필요한 XML을 계속 가져오도록 스키마를 생성할 수도 있습니다.

매핑을 수행하는 데 도움이 되는 XSLT 편집기가 시장에 많이 나와 있지만 저는 그냥 일반 XML 편집기를 사용하는 것을 선호합니다.

다른 팁

네, MapForce를 통해 올바른 길을 가고 있다고 생각합니다.실제 변환을 수행하기 위한 코드를 작성하고 싶지 않은 경우에도 MapForce가 이를 수행할 수 있습니다.이것은 유지 관리할 코드가 적기 때문에 장기적으로 더 나을 수 있습니다.

더 비싼 옵션(예:BizTalk) B2B 통합 및 오케스트레이션이 꼭 필요한 경우는 제외됩니다.

어떤 데이터베이스를 사용하고 있나요?Oracle에는 몇 가지 훌륭한 XML 매핑 도구가 있습니다.몇 가지 Java 바인딩 도구가 있습니다(하나는 http://java.sun.com/developer/technicalArticles/WebServices/jaxb).그러나 고급스러운 기능이 있다면 "to_xml" 메소드가 내장된 Ruby를 사용하는 것을 고려해 보세요.

팁 #1:XSLT를 모두 사용하지 마세요.

도구 지원이 형편없습니다.결과 솔루션은 유지 관리가 불가능합니다.

팁 #2:불필요한 단계를 모두 제거합니다.

결과 세트(JDBC 또는 등가물을 사용한다고 가정)를 아웃바운드 XML로 변환하기만 하면 됩니다.

팁 #3:스키마 기반 도구의 모든 사용이 올바르지 않다고 가정하고 그에 따라 계획하십시오.

즉, 그냥 가짜로 만드세요.돌연변이 SOAP(중복된 것으로 알고 있음) 페이로드를 생성해야 한다면 작동하는 SOAP 메시지를 모형으로 만든 다음 이를 템플릿으로 바꾸면 됩니다.속도는 형편없습니다.

즉, 최선/정답은 "XML Writer" 스타일 솔루션을 사용하는 것입니다.몇 가지가 있습니다.

내가 쓴 글이 제일 좋은데, LOX(XML용 경량 개체).

공개 API는 Builder 디자인 패턴을 사용합니다.내부의 일부 마법으로 인해 잘못된 형식의 XML을 생성하는 것은 불가능합니다.

참고: XML이 답이라면 질문을 잘못하신 것입니다.때때로 우리는 우리의 의지에 반하여 그것을 어떤 식으로든 사용하도록 강요받습니다.그런 일이 발생하면 개발자의 노력을 최소화하고 코드 유지 관리성을 향상시키는 도구를 사용하는 것이 중요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top