2012-07-25 2 views
0

XML 어셈블러가있는 파이프 라인이있는 송신 포트가 있습니다. 내 모든 파일은 다음과 같습니다.XML의 루트 노드에서 xmlns = ""를 제거하려면 어떻게합니까?

<?xml version="1.0" encoding="utf-8"?> 
<Root xmlns="http://LMS.OIv2.Sierra.SierraRouteUpdate"> 
<Orders OrderCode="" SCAC="" CarrierName=" /> 
<Orders OrderCode="" SCAC="" CarrierName="" /> 
</Root> 

루트 노드에서 xmlns 속성을 제거하려면 어떻게해야합니까?

+0

좋은 참조 링크를 찾을 수 있기 때문에 답변으로 추가하지 않겠지 만 그럴 수는 없다고 확신합니다. xmlns 특성을 제거하면 스키마에 대해 유효성을 검사 할 수없는 잘못된 XML 문서가됩니다. Microsoft의 모든 xml serializer는 xmlns를 작성합니다. 이것을 확인하는 사람은 누구입니까? – Eddy

+0

http://biztalktalk.wordpress.com/2012/06/26/changing-removing-document-namespaces/#comment-26 이 사람은 그가 그렇게했다고 말합니다. 나는 그가 말하는 것을 얻지 못한다. 이 코드를 작동시키기 위해 어디에 넣으시겠습니까? –

+0

그래, 그게 해결 방법입니다. xml을 문자열 (더 이상 XML 문서가 아님)로 가져오고 문자열을 대체하여 네임 스페이스 참조를 제거합니다. – Eddy

답변

2

이 유형의 메시지 처리를위한 유스 케이스는 완전히 호환되는 XML 파서를 구현하지 않는 레거시 시스템과 통합 할 때 사용됩니다. "이론적으로"모든 시스템은 유효한 XML을 처리 할 수 ​​있어야하지만 실제로 많은 문자열과 플랫 파일을 처리하는 것과 같은 방식으로 XML을 처리합니다.

예제 Visual Studio 프로젝트를 포함하도록 blog post을 업데이트하여 BizTalk 파이프 라인 구성 요소 내에 코드 구현을 보여주었습니다. 이게 도움이 되길 바란다.

+0

+1 비어있는 네임 스페이스가있는 스키마를 사용하는 것에 비해 송신 파이프 라인 구성 요소의 이점은 파이프 라인 구성 요소가 송신 문서에서 xmlns를 제거 할 수 있다는 것입니다. 문서가 이제는 BizTalk의 라우팅 메커니즘 외부에 있으므로 동일한 xmlns # root를 사용하는 여러 문서가 있는지 여부는 신경 쓰지 않습니다. 대형 문서의 경우 XmlDocument보다 메모리 사용량이 적은 XmlReader 기반 솔루션을 사용할 수도 있습니다. – StuartLC

+0

구성 요소에는 TargetNamespace 속성이 있습니다. 정확히 거기에는 무엇이 있을까요? –

+0

이것은 나를 위해 작동하지 않습니다. 이 구성 요소에 파이프 라인 오류가 있습니다. 내가 원하는 형식으로 출력 파일을 얻는 것이 얼마나 어려운지 나는 믿을 수 없다. 나는 biztalk가 싫어. 내가 biztalk에서 가장 단순한 작업을 수행하는 데 필요한 시간보다 훨씬 짧은 시간에 사용자 정의 edi 코드를 작성할 수 있습니다. –

관련 문제