[xsd] XSD : xs : integer와 xs : int의 차이점은 무엇입니까?

나는 XSD를 만들기 위해 시작에 대한 예를 몇에서 발견 xs:integer하고 xs:int.

xs:integer과 의 차이점은 무엇입니까 xs:int? 언제 사용해야 xs:integer합니까? 언제 사용해야 xs:int합니까?



답변

차이점은 다음과 같습니다.
xs:int부호있는 32 비트 정수입니다.
xs:integer제한되지 않은 정수 값입니다. 자세한 내용은 참조하십시오 https://web.archive.org/web/20151117073716/http://www.w3schools.com/schema/schema_dtypes_numeric.asp
예를 들어, XJC (자바) 생성 Integer을 위해 xs:intBigInteger위해 xs:integer.

결론 : xs:int크로스 플랫폼에서 작업하고 숫자가 문제없이 통과되는지 확인 하려면 사용 하십시오. 더 큰 숫자를 원하면 xs:long대신 사용하십시오 xs:integer(으로 생성됨 Long).


답변

XS : 정수 fractionDigits 제로로하고, 그렇지 않으면 법적 될 소수점 및 트레일 링 제로를 금지 어휘 공간 설정면과, 진수 : 유형 XS의 제한 사항입니다. 유한 한 크기의 머신에서 실행되는 구현은 임의로 크거나 작은 값을 허용 할 필요가 없지만 최소값 또는 최대 값은 없습니다. (10 진수 16 자리 값을 지원하는 데 필요합니다.)

XS : INT의 유형 XS의 제한이다 긴 2147483647에 maxInclusive 패싯 세트 -2147483648에 minInclusive 패싯과. (보시다시피, 2 개의 보완 32 비트 부호있는 정수 필드에 편리하게 맞습니다. xs : long은 64 비트 부호있는 정수 필드에 적합합니다.)

일반적인 규칙은 당신이 말하고 싶은 것과 일치하는 것을 사용하는 것입니다. 요소 나 속성에 대한 제약이 그 값이 정수 여야한다는 것이라면 xs : integer는이를 간결하게 말합니다. 값이 2- 보완 표현에서 최대 32 비트로 표현 될 수있는 정수 여야한다는 제약 조건 인 경우 xs : int를 사용합니다. (두 번째이지만 때로는 중요한 문제는 도구 체인이 다른 도구보다 더 잘 작동하는지 여부입니다. 도구 체인보다 오래 지속되는 데이터의 경우 먼저 데이터를 듣는 것이 좋습니다. 도구를 공급하기 위해서만 존재하는 데이터의 경우 도구 체인을 변경하면 관심이 없을 것입니다. 도구 체인을 듣지 않을 이유가 없습니다.)


답변

일부 사람들에게 중요 할 수있는 pedantry에 대한 메모를 추가 할 것입니다. xs : int가 부호있는 32 비트 정수라고 말하는 것은 올바르지 않습니다. 이러한 형태의 단어는 이진 디지털 컴퓨터 내의 메모리 (또는 레지스터 등)에서의 구현을 의미합니다. XML은 문자 기반이며 최대 32 비트 부호있는 값을 “2147483647”(물론 내 따옴표)로 구현합니다. 이는 32 비트 이상입니다! 사실 인 것은 xs : int가 (간접적으로) xs : integer의 제한으로, 최대 및 최소 허용 값이 부호 비트가있는 32 비트 정수의 해당 구현에 부과 된 제한과 동일하게 설정된다는 것입니다.


답변