문제

스키마 생성기를 통해 XML 파일 중 하나를 실행했으며 하나의 노드를 제외하고 생성 된 모든 것이 예상되었습니다.

<xs:element name="office" type="xs:NCName"/>

정확히 무엇입니까 xs:NCName? 왜 오히려 그것을 사용할 것입니다 xs:string?

도움이 되었습니까?

해결책

ncname 콜로네스 이름이 아닌 이름 예를 들어 "이름"입니다. 자격을 갖춘 이름 인 Qname과 비교하여 "ns : name". 이름이 다른 네임 스페이스에 의해 자격을 갖추지 않아야한다면 NCNAME입니다.

XS : String은 이름에 전혀 제한을 제한하지 않지만 XS : NCName은 기본적으로 불만을 제기합니다. ":"String에 나타납니다.

다른 팁

@SKYL은 실제로이 답을 작성하기 위해 저에게 유발 했으므로 중복성을 염두에 두십시오.

NCName "비 식민지 이름"을 나타냅니다. ncname은 XML 스키마 정규식으로 정의 할 수 있습니다. [\i-[:]][\c-[:]]*

... 그리고 그 재성분은 무엇을 의미합니까?

\i 그리고 \c XML 스키마 정의에 정의 된 다중 특성 탈출입니다.
http://www.w3.org/tr/xmlschema-2/#dt-ccesn
\i 초기 XML 이름 문자 세트의 탈출은 \c XML 이름 문자 세트입니다. [\i-[:]] 세트로 구성된 세트를 의미합니다 \i 콜론 문자로 구성된 세트를 제외합니다 :. 그래서 평범한 영어로는 "모든 초기 캐릭터이지만 :". 전체 정규 표현식은"하나의 초기 XML 이름 문자이지만 콜론은 아니지만 콜론이 아닌 XML 이름 문자는 없습니다. "

ncname의 실제 제한

ncname의 실제 제한은 다음과 같은 여러 기호 문자를 포함 할 수 없다는 것입니다. :, @, $, %, &, /, +, ,, ;, 공백 문자 또는 다른 괄호. 또한 ncname은 나중에 ncname에 나타날 수 있지만 숫자, dot 또는 마이너스 문자로 시작할 수 없습니다.

NCNAME가 필요한 곳은 어디입니까?

네임 스페이스 준수 XML 문서에서 모든 이름은 자격을 갖춘 이름 또는 NCNAME이어야합니다. 다음 값은 NCNAME (자격이없는 이름이 아님)이어야합니다.

  • 네임 스페이스 접두사
  • ID를 나타내는 값
  • idref를 나타내는 값
  • 표기법을 나타내는 값
  • 처리 명령 대상
  • 엔티티 이름

실제로 말하면 ...

허용 캐릭터 : -, ., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, _, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z

또한, - 그리고 . 값의 첫 번째 문자로 사용할 수 없습니다.

허용되지 않은 캐릭터 : , !, ", #, $, %, &, ', (, ), *, +, ,, /, :, ;, <, =, >, ?, @, [, \, ], ^, `, {, |, }, ~

http://books.xmlschemata.org/relaxng/ch19-77215.html

공간이나 콜론이 없습니다. "_"및 "-"를 허용합니다.

값이 허용 된 것으로 제한되어 있는지 확인할 수 있도록 문자열 대신에 이것을 사용합니다. 예를 들어 Django의 "슬러그"개념과 같은 이름/식별자에 대한 특정 규칙에 잘 매핑됩니다.

나는 그 사람을 끌어 올렸다 [\i-[:]][\c-[:]]* 우리를 위해 영어로 번역합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top