2011-09-16 2 views
2

xml 데이터를 activerecord 방식으로 처리하고 싶습니다. 따라서 각 xml 구조에 대해 1 클래스 (xsd obviusly가 필요합니다)와 과 같은 작업을 수행 할 가능성이 있습니다. 사용자 활성 코드 ()와 같은 성 능 recordrecord do.XML 데이터를 activerecord 패턴으로 처리 : 어떤 방식 으로든?

문제는 이들이 관계형 데이터베이스가 아니라 XML 파일이라는 점입니다.

이것을 수행 할 라이브러리가 있습니까? 만약 MS 라이브러리가 아닌 제 3 자 라이브러리가 더 낫습니다.

프로그램 "출력"입니다 :이 달성하려는 이유

내가 다른 접근 방법이 더 나은 경우 당신은 결국 나에게 몇 가지 제안을 줄 수 있도록 내가 짓고 있어요 프로그램을 설명 할 것, 이해하기 현지 법률에 따라 회사가 고객의 개인 정보를 취급하는 방법에 대한 정보가 포함 된 긴 MS-Word (또는 pdf) 문서와 같은 것입니다.

잡스 (법률에 정의 된 바와 같이 법률이 변경할 수 있으므로 사용자가 편집 할 수 있어야 함)와 같은 것을 포함하는 "글로벌"XML 파일이 각 직원이 회사에 가질 수 있습니다. 다른 데이터도 있습니다. 일반적인 예입니다).

그러면 사용자가이 프로그램을 사용하려는 각 회사의 xml 파일을 갖게됩니다. 이 xml 파일에는 각 emplyee가 작업 (전역 xml 파일에서 선택)에 대한 참조를 갖는 직원 목록이 있습니다.

분명히 프로그램에는 훨씬 더 많은 데이터가 있지만 작동 원리는 설명되어 있습니다.

내가 관계형 데이터베이스를 사용해야하는지 잘 모르겠다. 하나를 사용하는 경우 정말 놀란다. 사용자가 프로그램을 설치하면 데이터를 내보내거나 가져올 수 있도록하는 데 "문제가있다"는 것이다. 새 컴퓨터에서. 또한 사용자가 자신의 컴퓨터에 데이터베이스를 설치하도록 강요하지 않으려합니다 (파일에 sqlite와 유사한 데이터베이스가있을 수 있음).

이 문제에 대한 제안이 있으십니까? 모두에게 감사합니다.

+0

분명히 그렇지 않습니다. 유감 스럽지만 브라우저가 느려졌습니다. 그러나이 질문을 쓰는 동안 나는 wordreference를 5 번 사용했습니다 ... 정말 시도했지만 영어는 제 모국어가 아닙니다. 나는 내가 표현할 수있는 방법을 안다. –

답변

1

Linq-to-XML은 사용하기가 쉽지만 RDBMS와 같은 방식으로 관련 데이터를 읽고 저장하는 데 더 많은 일이 있습니다. RDBMS는 참조 무결성, ACID 트랜잭션, 동시 사용자, 성능 향상에 관한 것이므로 지금 당장 떠오르는 몇 가지 요소를 언급합니다. 이 어려운 작업을 생각해 보면,이 모든 작업을 데이터베이스 파일을 배포하는 것보다 혼자서하는 것이 더 무서운 것 같습니다.

일부 XML-based databases이 있지만 얼마나 성숙하고 사용자 친숙한 지 모르겠습니다. 나는 일반 텍스트 파일을 기반으로 데이터베이스 시스템을 읽는 것을 기억합니다.

이미 제안한대로 포장 도로와 관계형 데이터베이스 (local database)를 사용할 것입니다. 다양한 지원 및 툴링이 가능합니다.

0

Linq to Xml 어때요?

+0

나는 그것에 대해 읽었지 만, 읽기만 돕는다. 나는 * writing *에 대해 어떤 개선도하지 않는다. 사실 새로운 사용자를 효율적으로 삽입하려면 모든 인스턴스를 만들어야합니다.새로운 사용자 ("name", ThatJob) .Save(); * 또는 각 클래스의 해당 코드를 모두 작성하는 것보다 더 쉽게 할 수 있습니다. 데이터 삽입에 도움이되는 라이브러리가 있습니까? (여기서 데이터를 삽입하는 코드에 대해 읽었습니다. http://msdn.microsoft.com/en-us/library/system.xml.linq.xcontainer.add.aspx) –

+0

Linq To를 사용하여 파일에 데이터를 쉽게 쓸 수 있습니다 Xml. XElement는 이러한 목적을위한 메소드를 포함합니다. 다음과 같이 쓸 수 있습니다 새 사용자 ("name", "role"). Save (XDocument doc). – mironych

+0

Mhh ... 샘플을 게시 할 수 있습니까? 내 말은, 내 자신의 (그래서 올바르게 클래스를 serialize) 저장해야합니까? 또는 이미 구현되어 있습니까? xmlserializer와 같은 클래스에있는 각 속성에 대해 * 지루한 부분을 작성하지 않으려합니다. –

관련 문제