2014-12-05 3 views
0

XSD 유효성 검사가 현장에서 어떻게 일어나는지 알고 싶습니다.XML 스키마 유효성 검사 (XSD)

<xs:simpleType name="MaxText"> 
    <xs:restriction base="xs:string"> 
     <xs:minLength value="1"/> 
     <xs:maxLength value="10000000000000"/> 
    </xs:restriction> 
</xs:simpleType> 

은 문자열 길이의 실제 검증을 수행하려면 다음과 같이 내가 XSD를 정의하는 경우 는 자바 필요가 메모리에 XML의 전체 문자열 값을로드 할 수 있습니까? 그렇다면 "java.lang.OutOfMemoryError : Java heap space"를 던질 가능성이 있습니다.

모든 의견을 이해하십시오.

감사합니다, Mayuran

답변

0

글쎄, 그것은 XML 파서와 스키마 유효성 검사기의 구현에 따라 달라집니다,하지만 대부분의 구현은 각 텍스트 노드를 필요로한다는 것이 매우 가능성이 생각하는 (또는 속성 값)에 맞도록 Java (등) 문자열의 한계

문자열, 배열 등의 크기에 2^31 제한을 두었을 때 향후 몇 년 안에 문제가 증가 할 것으로 예상됩니다. 프로그래밍 언어를 다시 디자인하는 것은 매우 어려울 것입니다. 이러한 구조를 처리하기 위해 (int) 데이터 형식을 사용하는 것이 매우 보편적이기 때문에 Java를 통해이 문제를 해결할 수 있습니다.