2008-10-15 3 views
1

우리는 데이터 소스에 쿼리를 보내는 데 사용되는 테스트 도구가 있습니다. 이 도구는 XML 파일로 입력을받습니다. XML 파일은 우리가 표현하려고 시도한 데이터 구조가 한 층 깊었던 한 간단하고 구문 분석하기 쉬웠습니다. 하지만 이제는 이러한 데이터 구조가 더욱 복잡해지고 XML로 표현하는 것이 매우 혼란스러워지고 있습니다. XML 대신 데이터 구조를 나타 내기 위해 사용할 수있는 것에 대한 생각은 무엇입니까?C++에서 데이터 구조를 나타 내기위한 XML 대체

:

class Foo { 
int userId, 
string name, 
vector<Location> loc, 
map<string, string> attributes; 
} 

class Location { 
    Address addr; //class Address 
    vector<LocatedTime> lcTime; //class LocatedTime 
    Position ps; //class Position 
} 

... 등이 중첩 된 구조의 수를 가지고 :

하기 전에 : 이제

class Foo { 
int userId; 
string name; 
string address; 
string eMail; 
} 

.

저는 JSON에 기대고 있었지만 모든 표현 형식에 개방되어 있습니다.

답변

2

YAML 당신이 찾고있는 것일 수도 있습니다.

4

Protocol Buffers을 보았습니까? 이진 직렬화는 처리 시간 및 저장 공간에서 매우 효율적입니다. 현재 C++, Java 및 Python에서 "올바르게"지원되며, 더 많은 구현이 제공됩니다 (제 3 자로부터 - 나 자신과 같은 C# 포트 구현).

1

Lua (또는 다른 스크립팅 언어) 사용을 고려해보십시오. 프로그래밍 언어의 모든 기능을 사용하여 멋진 데이터 구조 구문 (JSON과 비슷한 수준)을 얻을 수 있습니다. 따라서 변수 (데이터 구조를 조각 단위로 구축하고 반복적으로 값을 선언하는 등), 루프 (테스트 데이터가 반복되는 경우가 많음), 함수 (데이터의 상용구 구조에 대한 매크로로 생각할 수 있음)가 있습니다.

루아는 작기 때문에 (프로그램에 100-200K를 추가 함) C 코드와의 인터페이스가 매우 우아하기 때문에 이런 종류의 사용에 특히 유용합니다.

관련 문제