2013-09-04 3 views
1

Java에서 스키마 요소 이름을 가져 오는 데 문제가 있습니다. xml 스키마를로드하고 XML 스키마에 대해 xml 파일의 유효성을 검사 할 수있는 작은 xml 편집기를 만들고 있습니다. 스키마를 파싱하고 모든 요소 이름을 가져온 다음 내용 보조자에 배치하여 사용자가 사용 가능한 모든 요소를 ​​볼 수있게하려고합니다. XML 스키마에서 모든 요소 이름을 검색하는 방법

는 이미 XSOM 사용 설명서를 읽고,하지만 난 노력하고 자신을 잃어 때문에

는 누군가가 내 addElementsFromSchema (파일 xsdfile) 기능을 구현하는 데 도움이 수 ... 많은 이해하지 못했다.

public static void addElementsFromSchema(File xsdfile){ 

} 
+0

모든 ''정의의 목록을 가져 오시겠습니까? 이름 (각 에 정의 된대로) 만 원하거나 각 요소의 전체 유형 정의가 필요합니까? – VGR

+0

각 요소의 전체 유형 정의를 얻어야합니다. 그러나 내용 보조자에는 이름 ("="...) 만 표시됩니다. – Student22b

+0

시각적으로 각 요소의 정의를 어떻게 나타낼 지 알고 있습니까? 원본 XML을 표시 하시겠습니까? 아니면 다른 것을 염두에 두시겠습니까? – VGR

답변

0

적어도 현재로서는 요소 이름을 얻으려는 것 같습니다. XML 스키마의 요소 선언은 매우 복잡 얻을 수있는,

XSOMParser parser = new XSOMParser(); 
parser.parse(xsdfile); 

XSSchemaSet schemas = parser.getResult(); 
Iterator<XSElementDecl> i = schemas.iterateElementDecls(); 
while (i.hasNext()) { 
    XSElementDecl element = i.next(); 
    String name = element.getName(); 
    // Add to editor 
} 

이 요소를가 훨씬 더 어렵다 정의를보기 : 당신은 같은과 요소 이름을 얻을 수 있습니다.

+0

감사 합니다만, 많은 에러가납니다 : thread AWT-EventQueue-0 예외 java.lang.NoClassDefFoundError : org/relaxng/datatype/ValidationContext 원인 : java.lang.ClassNotFoundException : org.relaxng.datatype .ValidationContext – Student22b

+0

클래스 경로에 relaxngDatatype.jar이 필요합니다. http://xsom.java.net에서 : ** xsom.jar의 두 가지 맛은 relaxngDatatype.jar 및 JAXP 1.1에 따라 다릅니다. XSOM을 사용하는 응용 프로그램을 배포 할 때 적어도 xsom.jar 및 relaxngDatatype.jar가 있는지 확인하십시오. ** – VGR

+0

대단히 감사합니다! 그것은 위대한 작품. – Student22b

관련 문제