2017-03-13 3 views
0

types.xsd를 가져 오는 main.xsd가 첨부되어 있습니다. XmlSpy (또는 이와 유사한)에서 이것을 열면 main.xsd는 정상적으로 유효성을 검사합니다. 그러나 네임 스페이스 접두사 ns0이 선언에서 제거 된 경우 접두사가 어디에도 사용되지 않더라도 유효성을 검사하지 않습니다.접두사없이 XSD가 유효하지 않습니다.

좋은 : <xs:schema xmlns:ns0="http://schemas.asidua.com/CCP/IntegrationServices/2011-11-18/Data"

나쁜 : <xs:schema xmlns="http://schemas.asidua.com/CCP/IntegrationServices/2011-11-18/Data"

검증 오류 메시지 : 접두사가 필요한 이유 "Cannot resolve declaration or definition 'ArrayOfString' in namespace 'http://schemas.asidua.com/CCP/IntegrationServices/2011-11-18/Data'"

사람 설명시겠습니까?

좋은 파일 : GoodMain.xsd 잘못된 파일 : BadMain.xsd 수입 유형의 xsd : 네임 스페이스 접두사 ns0 어디서나 사용하지 않을 경우 Types.xsd

+0

내가 그래서 NS0 접두사를 추가하여 –

답변

0

"의 xmlns ="를 정의하여 (그런데,이 "별명"당신이 올바른 용어를 사용하는 경우. 당신은 더 잘 이해 될 것이다.라는 아니에요), 내가 말한 모든 비정규 요소 것 이 기본 네임 스페이스에 속합니다. 문제는 내가 스키마의 "targetNamespace ="특성을 갖고 있지 않기 때문에 대상 기본 네임 스페이스가없는 네임 스페이스가 존재한다는 것입니다. 여기

<xs:schema targetNamespace="http://schemas.asidua.com/CCP/IntegrationServices/2011-11-18/Data" xmlns="http://schemas.asidua.com/CCP/IntegrationServices/2011-11-18/Data" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:q2="http://microsoft.com/wsdl/types/" elementFormDefault="unqualified" attributeFormDefault="unqualified"> 

전체 파일 : best.xsd

3

, 당신은 안전하게 제거 할 수 있습니다 네임 스페이스 선언 xmlns:ns0="http://schemas.asidua.com/CCP/IntegrationServices/2011-11-18/Data"

당신이 할 수있는 ' do는 다른 네임 스페이스 선언으로 바꾸는 것입니다. xmlns="http://schemas.asidua.com/CCP/IntegrationServices/2011-11-18/Data". 그러면 기본 네임 스페이스가 변경되어 스키마 문서에서 접두어가없는 모든 이름의 의미가 변경됩니다. 의견에 대 한 응답에서

업데이트 : 기본 네임 스페이스 D가 스키마에 선언 된 경우는 특히, 다음, 전 세계적으로 선언 된 요소 등 유형 (<element name="x"/>) 이름을 참조하는 동안, 스키마의 targetNamespace가 될 것이다 요소 또는 유형 (type="x", ref="x")이 네임 스페이스 D에있게됩니다. D가 targetNamespace와 같지 않으면 문제가 발생합니다.

+0

을 제안 "접두사"하는 용어 "별칭을"로 변경 한 다음

나는 지금 XSD를 정의 나는 실질적으로 –

+0

답변 해 주셔서 대단히 감사합니다. 내 이해를 명확히하기 위해 ns0 접두어를 추가하여 XSD에서 기본 네임 스페이스를 효과적으로 제거했습니다. xmlns = "http : // etc"를 사용하여 네임 스페이스를 설정합니다. 이것은 "SchemaAttribute"복합 유형의 "AdapterItemEntityNames"요소가 기본 네임 스페이스에 있지만 복합 유형 "ArrayOfString"이 아닌 것을 의미합니다. 그렇다면 유형의 요소가 기본 네임 스페이스에 포함되지만 유형 자체는 그렇지 않다고 제안합니다. –

+0

나는 그것을 지금 얻는다라고 생각한다! "xmlns ="를 정의함으로써 모든 규정되지 않은 요소가이 기본 네임 스페이스에 속하게됩니다. 문제는 내가 스키마의 "targetNamespace ="특성을 갖고 있지 않기 때문에 대상 기본 네임 스페이스가없는 네임 스페이스가 존재한다는 것입니다. –