문제

메시지 검증 프로그램을 만들려고 노력하고 있으며 특정 메시지 유형에 적용되는 쉽게 수정 가능한 규칙을 작성하고 싶습니다. 규칙 변경의 위험으로 인해 객체 코드 외부의 이러한 유효성 검사 규칙을 정의하기로 결정했습니다.

규칙을 정의하는 기본 인터페이스를 만들었고이 간단한 데이터를 저장하는 가장 좋은 방법이 무엇인지 궁금합니다. 나는 XML에 기대어 있었지만 너무 무거울 것 같습니다.

각 규칙에는 매우 작은 데이터 세트 (예 : 규칙 유형, 값, 적용 가능한 마스크 등) 만 있으면됩니다.

내가 볼 수있는 좋은 자원을 아는 사람이 비슷한 기능을 수행 할 것입니다. 나는 내가 부딪친 대부분의 예제에서 볼 수있는 기능의 하위 집합이 거의 필요하지 않은 것처럼 보이는 문제에 대해 XML에 너무 깊이 파고 들지 않을 것입니다.

간결한 예제를 찾을 수 있다면 평평한 파일로 갈 것인지 여부를 결정할 수 있습니다.

귀하의 의견에 미리 감사드립니다!

도움이 되었습니까?

해결책

개인적으로 작고 쉽게 수정할 수있는 XML의 경우 tinyxml 훌륭한 도서관이되기 위해. 각 클래스가 자체 형식을 이해하도록 할 수 있으므로 객체 계층 구조는 XML에 직접 표시됩니다.

그러나 XML이 필요하다고 생각하지 않으면 더 가벼운 스토리지로 가고 싶을 수도 있습니다. . 기본 데이터를 이해하고 수정하고 기능을 확장하는 것이 훨씬 쉽다는 것을 알았습니다.

(또한, 부스트 :: 직렬화 XML 아카이브가 있지만 쉽게 수정할 수있는 것은 아닙니다)

다른 팁

가장 간단한 것은 C ++ >> 연산자를 사용하여 쉽게 구문 분석 할 수 있도록 설계된 플랫 파일을 사용하는 것입니다. 공백으로 분리 된 간단한 토큰.

글쎄, 당신이 당신의 규칙이 인간을 읽을 수 있기를 원한다면, XML은 갈 길이며, c ++를 사용하여 인터페이스 할 수 있습니다. xerces. 성능 및 크기를 원한다면 간단한 구조를 사용하여 데이터를 바이너리로 저장할 수 있습니다.

이를 구현하는 또 다른 방법은 XML 스키마에서 규칙을 정의한 다음 XML 데이터 바인딩 도구가 XML 구문 분석 및 직렬화 코드와 함께 해당 C ++ 객체 모델을 생성하도록하는 것입니다. 그러한 도구 중 하나 (내가 작업하고있는)는 Codesynthesis XSD입니다.

http://www.codesynthesis.com/products/xsd/

아이디어에 대한 2 분 개요는 C ++/트리 매핑 문서의 "Hello World"예제를 참조하십시오.

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