2012-03-28 2 views
0

나는 매우 간단한 문제가 있는데, 이는 내 게시물 아래에서 볼 수있는 주어진 XML 스키마 파일과 관련이 있습니다. 그것은 일주일 만에 작성해야하는 시험에서 나왔고 스키마가 잘 형성되었다는 것에 관한 질문이었습니다.왜 XML 스키마의 형식이 올바른지 모르십니까?

오류는 이미 노란색으로 표시되어 있으며 네임 스페이스에 대한 힌트를 얻었지만 결국에는 문제를 해결하는 방법을 모릅니다. 내 첫번째 생각은 형식 정의 Type="Book"Type="urn:Book"과 같은 접두사가 필요하지만 전혀 확신 할 수 없다는 것이 었습니다.

이 경우 지식 부족을 해결하는 데 도움이되는 조언을 보내 주셔서 감사합니다. 당신이 BooktargetNamespace 속성을 사용하여 urn:schemaS 네임 스페이스에 있음을 지정되기 때문이다

enter image description here

답변

1

. 이 작업을 수행하려면 urn:schemaS의 네임 피스 접두어를 정의하고 type="nsPrefix:Book"의 정규화자를 정의해야합니다.

Read this tutorial

+0

이 빠른 답변을 주셔서 대단히 감사합니다. 많은 도움이되었습니다. 특히이 경우 네임 스페이스의 기능에 대해 생각해 보았습니다. – Matthias

+0

@Matthias가 정답으로 사용합니다. –

0

명명 된 complexType 이름이 대상 네임 스페이스와 관련된 자격을 갖춘 하나입니다 선언 - 그래서 당신이 선언되는 것은 urn:schema5 네임 스페이스의 유형 Book입니다.

형식을 참조 할 때 정규화 된 이름을 지정해야하며 스키마는 대상 네임 스페이스가 기본값이 아니며 일반적인 XML 네임 스페이스 선언을 사용합니다. 아무 것도 없기 때문에 존재하지 않는 기본 네임 스페이스 ('')에 Book 유형을 사용하려고합니다.

<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns="urn:schema5" 
    targetNamespace="urn:schema5" 
    elementFormDefault="qualified"> 
: 기본 하나의 네임 스페이스를 대상으로 선언

<xs:element name="book" type="schema5:Book" maxOccurs="3"/> 

또는 (내 선호를) 사용 후

<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:schema5="urn:schema5" 
    targetNamespace="urn:schema5" 
    elementFormDefault="qualified"> 

과 :

당신은 네임 스페이스 선언을 추가하거나이

그런 다음 다른 작업을 수행 할 필요가 없습니다.

관련 문제