2013-03-28 7 views
3

델파이 XE 사용 :델파이 클래스를 XML로 표현 :

XML 데이터 바인딩 마법사는 XML/XSD를 기반으로 Delphi 클래스를 생성합니다.

BUT 또한 다른 방법으로 이동해야합니다. Delphi 클래스를 XML로 변환해야합니다. 나는 XE에서 그 어떤 지원도 찾지 못한다. 내가해야합니까

하나의 옵션이가 쓰기입니다 (I 델파이 정말 반사를 지원하지 않기 때문에 그것은 훨씬 더 어려운 C#을보다있어, 분명히 .NET,이 C#을 함께 달성하기 위해 매우 간단 알고 있지만) C#에서 SharpDevelop 클래스를 사용하고 C# 코드에서 XML을 생성 할 수있는 MS 유틸리티 (무료 다운로드)를 사용하십시오. VS 2005도 지원하지만 설치되지 않았으므로 관련되지 않습니다.

누구나이 작업을 수행하는 방법에 대한 제안이 있습니다. Delphi에서 XML/XSD로 바로 연결 하시겠습니까? 오픈 소스 툴은 좋을 것입니다.

답변

3

로버트 러브 (Robert Love)는 2009 년 말에 해당 주제를 다루는 기사를 작성했습니다 : Xml Serialization - Basic Usage. Delphi 2010에서 사용 가능한 "새로운"RTTI를 사용합니다.

+1

감사합니다. 확실히 시작하는 것이 좋습니다. '오래된'RTTI 자료에서 입안에 맛이 없어 '새로운'RTTI 자료에 익숙하지 않습니다. :-) 그러나 이것은보기 쉽습니다. 문제는 좀 더 복잡한 수업을 표현하기 위해해야 ​​할 일이 얼마나 많은가하는 것입니다. 그의 예는 매우 단순합니다. – Vector

+1

@Mikey 'all'을 다룰 수 있기를 원한다면 많은 일을해야하지만, 간단하게 유지한다면 괜찮습니다. 그렇기 때문에 Delphi XML 데이터 바인딩 마법사는 거의 XML 기능을 지원하지 않습니다. 모든 클래스를 XML로 표현할 수는 없으며 그 반대의 경우도 마찬가지입니다. –

+0

감사합니다. 확실히 XML로 모든 것을 표현할 수는 없습니다. 내가해야 할 일은 그 단순한 예를 들어 표현한 것 이상입니다. 중첩 된리스트/배열 등으로 작업해야합니다. 우리가 볼 것입니다 ... 더 나 빠지면 손으로도 할 수 있습니다. – Vector

5

NativeXmlOmniXML 오픈 소스 라이브러리는 Delphi 객체를 XML (XSD가 아님)로 변환 할 수 있습니다. 그들은 객체 직렬화와 비 직렬화를 2010 년 이전의 버전에서도 지원합니다.

첫 번째 단계에서이를 사용하여 XML 파일을 만든 다음 Delphi 클래스 코드 생성을 위해 데이터 바인딩 마법사에 전달할 수 있습니다 .

+0

감사합니다 - 체크 아웃합니다. 델파이로 돌아갈 필요가 없습니다. Delphi 클래스를 XML로 나타내면됩니다. – Vector