XSD

2012-02-26 2 views
1

에서 "모델 방문자"코드를 생성하는 도구는 누구나 XML 스키마에 정의 된 모델을 방문하기위한 코드 파일을 생성하는 몇 가지 도구를 제안 할 수 있습니까?XSD

이상적으로 입력 XML을 읽고 사용자가 MyModelElement를 찾으면 visitMyModelElement()와 같은 메서드를 호출하는 스트리밍 XML 파서를 생성해야합니다. 그럼 난 그냥 빈 방법을 채울 거라고 내 "매퍼"코드가됩니다.

짧은 버전으로 배경을 설명하려고합니다. 나는 우리가 또 다른 나무에 트리 매핑 문제에 접근하는 방법을 생각하고 : https://gis.stackexchange.com/questions/1879/how-to-convert-gml-to-features-in-arcobjects

- 을 그냥 몇 가지 BigCustomer에서 약간의 밤이에서 OutOfMemoryException을 호출 할 '최고의 practicioners의 모범 사례'를 살펴했다 우리가 그들을 따라 가면 일어날 것입니다. 주변에 더 나은 방법이 있습니까?

는 질문에

답변

2

대답 정확 하 (내 질문은 충분히 명확 아니었다면 나는 더 많은 정보를 작성합니다)하지만, JAXB 플러스 JAXB 플러그인과 자바에 확실히 solveable입니다. JAXB에는 XML 스키마를 주석이있는 Java 클래스로 컴파일하는 스키마 컴파일러 (XJC)가 있습니다. JAXB 참조 구현의 XJC는 몇 가지 추가 코드를 생성 할 수있는 플러그인으로 확장 될 수 있습니다. 나는 XJC에 a number of plugins을 썼다. 그래서 나는 방문자 패턴 코드를 생성하는 것이 큰 문제는 아니라고 주장 할 것이다.

그러나 고전적인 방문자 패턴이 올바른 접근 방식이라고 생각하지 않습니다. OGC 스키마를 사용하면 수천 번의 "방문"방법이 아니라 여러 hundres로 쉽게 착륙 할 수 있으므로 실제로 도움이되지 않을 수 있습니다.

다음은 핵심 작업에 대한 올바른 접근 방식인지 잘 모르겠습니다. 나는 방문자가 정말로 물건을 편안하게하지 않을 것이지만 그것들을 성가신하게 만들 것이라고 생각한다. 비 정렬 화 된 객체를 수동으로 처리 할 것입니다. On .Net에서 XSD 도구 중 하나를 사용하여 XML/객체 매핑을 만든 다음 비 정렬 화 된 객체의 처리를 ArcObjects에 수동으로 작성합니다.

그런데, 여기에이 있습니다. JAXB 생성 코드를 기반으로 구현했습니다. 그것은 GML과 JTS 기하학 사이에서 변환합니다. (JTS는 Geometry에 대한 널리 사용되는 API 중 하나 인 Java Topology Suite의 약자입니다.) .Net/ArcObjects가 아닌 Java/JTS의 경우와 거의 같습니다.

+0

제안 해 주셔서 감사합니다. 이번 주에 파서/시리얼 화자를 살펴 보겠습니다. –

+0

xsd.exe를 사용하여 정적 C# 클래스를 생성했습니다. 그리고 1.2 MB 파일이 있습니다. 좋은. 이제 또 다른 트리가 있습니다 : ArcObjects 기하학 모델. 이 매핑을 만드는 것은 매우 어려운 작업입니다 (반대도 마찬가지 임). 그래서 다른 사람들이 어떻게 그런 일을하는지 확인하고 싶었습니다. –

+0

방금 ​​'@lexicore'라고 말하고 싶었습니다.이 코드는 영리 해 보이고 친절하게 문제의 일부가 해결되었습니다. 그 사람 알렉세이를 아십니까? 나는 그에게 많은 xsd-schemas를 감독하는 방법을 묻는다. 수동 또는 자동? ' 그러나 당신의 프로필을 보았습니다. 당신은 그 사람입니다. 권리? –