2017-02-16 10 views
3

안드로이드 장치에서 XSD에 대한 XML 파일의 유효성을 검사하려고합니다.안드로이드에서 XSD에 대한 XML 유효성을 검사 할 해결책이 없음

내가 많이 봤는데 검색 좀 xerces-for-android 같은 솔루션을 발견. 스택 오버플로에서 this과 같은 일부 페이지를 발견했습니다. 이는 javax.xml을 피할 것을 제안합니다. 이러한 목적으로 Xerces를 사용합니다.

다른 Android APIs(17, 20,25)에서 테스트했지만 불행히도 나는 아무런 성공도 거두지 못했습니다.

대체 방법을 제안 해주세요.

답변

1

1-https://code.google.com/archive/p/xerces-for-android/

2로 이동 - 중간 페이지 소스에 왼쪽 메뉴 &에서 소스를 클릭합니다.

3 - 코드 다운로드를 클릭하십시오. & 우편 번호 내용을 추출하십시오.

4 - 추출 된 콘텐츠에서 "xerces-for-android/trunk/src"폴더로 이동합니다.

5 - [AndroidApp | AndroidModule] "src/main/java"디렉토리에서 "mf"폴더를 복사하십시오.

6 - 이제 "src/main"디렉토리에 "resources"라는 폴더를 만들어야합니다. Android Studio (모듈/앱 -> 새로 만들기 -> 폴더 -> 자바 리소스 폴더의 오른쪽 클릭)에서이 작업을 수행 할 수 있습니다.

7 - 그 폴더 안에는 다음 폴더 구조를 만들어야합니다
MF/조직/아파치/Xerces에/IMPL/MSG
&
MF/조직/아파치/Xerces에/IMPL/XPath는/정규식

8 - ".properties"확장자를 가진 파일을이 디렉토리 내의 동등한 익명 내용 폴더에서 복사하십시오.


당신은 SDK 수입을 사용하고 MF ... 패키지 것들을 사용하지 않는 것이

SchemaFactory factory = new XMLSchemaFactory(); 
Source schemaFile = new StreamSource(/*Input stream to your schema*/); 
Source xmlSource = new StreamSource(/*Input stream to your xml source*/); 
Schema schema = factory.newSchema(schemaFile); 
Validator validator = schema.newValidator(); 
validator.validate(xmlSource); 

같은과 XSD와 XML 파일의 유효성을 검사합니다.

import mf.javax.xml.transform.Source; 
import mf.javax.xml.transform.stream.StreamSource; 
import mf.javax.xml.validation.Schema; 
import mf.javax.xml.validation.SchemaFactory; 
import mf.javax.xml.validation.Validator; 
import mf.org.apache.xerces.jaxp.validation.XMLSchemaFactory; 

편집

는 코멘트를 답장.

안드로이드에서 Xml 스키마로 XML 문서의 유효성을 검사하는 방법에 대한 정보를 얻으 려 할 때이 프로젝트에 대한 의견을 찾았지만 Zip과 설명서 만 포함되어 있습니다.

나는 커밋을 한 저장소를 찾고, 마지막 커밋이 4 년 전에 이루어진 https://github.com/MaTriXy/xerces-for-android을 발견했다.

자원 내에서 .profile이 아닌 .jar 파일을 복사 한 후 .profile을 찾을 수 없다는 예외가 발생하여 새로운 정보를 찾고 .profile이 resources 폴더 내에 있어야한다는 것을 알았습니다 Android Studio.

아마도 이것은 프로젝트가 Eclipse/Ant의 항아리 였고 이제는 AndroidStudio/Gradle에서 작동하지 않는다고 가정합니다.

.aar을 만들 수 있습니다. 프로젝트에 Android 라이브러리 모듈을 만들고 동일한 단계를 수행 한 다음 애플리케이션을 컴파일하여 릴리스하십시오.

프로젝트 내에있는 디렉토리.

/프로젝트 _/yourmodule/빌드/출력/AAR/

이라는 파일 yourmodule-release.arr되며 해당 패키지를 사용하여 모듈을 제거 할 수 있어야한다.

정보를 찾고있는 중, jarjar에 관한 정보를 찾았습니다.이 적응을보다 간단한 방법으로 진행하는 프로젝트 인 것으로 보입니다.

https://github.com/shevek/jarjar

좋은 하루 되세요.

+0

완벽한 답변을드립니다. 폴더를 복사하는 대신 lib에 jar 파일을 사용하는 솔루션이 있습니까 ??? – Sohrab

+0

편집 된 답변의 응답 –