2014-06-24 1 views
0

내 프로그램에서 스키마에 대해 유효성을 검사해야하는 몇 가지 XML 파일이 있습니다. 나는 스키마 파일을 로컬에 저장하고 XML 파일을 가져올 때 적용 할 스키마를 알고 있습니다. XML 파일 중 하나를 스키마에 대해 유효성 검사를 시도 할 때 이상한 오류가 발생하며이 스키마는 import 문을 사용하여 특정 네임 스페이스를 가져옵니다.네임 스페이스를 사용하여 스키마에 대해 XML 유효성 검사

<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:test="http://www.test.com/test" xmlns:tns="http://www.test.com/test/folder/targetnamespace" targetNamespace="http://www.test.com/test/folder/targetnamespace" elementFormDefault="qualified"> 
    <import namespace="http://www.test.com/test" schemaLocation="test.xsd"/> 
    <element name="tag1"> 
     <complexType> 
      <sequence minOccurs="1" maxOccurs="1"> 
       <choice> 
        ... 
        ... 
       </choice> 
       ... 
       ... 
       <element name="..." type="..." minOccurs="1" maxOccurs="unbounded"/> 
      </sequence> 
     </complexType> 
    </element> 
    <complexType name="tag2"> 
     <sequence> 
      <choice minOccurs="1" maxOccurs="1"> 
       ... 
       ... 
      </choice> 
      <element ref="test:entries" minOccurs="1" maxOccurs="1"/> 
     </sequence> 
    </complexType> 
</schema> 

test.xsd이 XSD 파일과 같은 위치에 있습니다 : 여기 내 XML에 적용 할 샘플 XSD입니다. 이 스키마에 대해 유효성을 검사하려는 XML은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?> 
<tag1 xmlns="http://www.test.com/test/folder/targetnamespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="http://www.test.com/test"> 
    <id>ABCDEF</id> 
    <profile> 
     ... 
     ... 
     <test:entries> 
      ... 
      ... 
     </test:entries> 
    </profile> 
</tag1> 

어떤 점이 잘못 되었습니까? 스키마 파일의 위치가 XML에 누락되어 있습니까? 이 XML을 유효성 검사 루틴에서로드하는 스키마 파일에 대해 유효성을 검사합니다. 이견있는 사람?

<?xml version="1.0" encoding="UTF-8"?> 
<schema targetNamespace="http://www.test.com/test/folder/targetnamespace" 
    elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema" 
    xmlns:tns="http://www.test.com/test"> 

    <complexType name="EntriesType"> 
     <sequence> 
      ... 
      ... 
     </sequence> 
    </complexType> 

    <complexType name="..."> 
     ... 
     ... 
    </complexType> 
    <element name="entries" type="tns:EntriesType"></element> 
</schema> 
+1

"이상한 오류가 있습니다."라는 말은 끔찍한 문제 설명입니다. 그 이유는 "이상한 오류"가 무엇인지 알려주지 못하기 때문에 여기에서 화면을 볼 수 없기 때문입니다. ** 특정 문제 **는 무엇입니까? –

+0

이름 'test : entries'를 (n) '요소 선언'구성 요소로 해석 할 수 없습니다. – sparkr

+0

다른 스키마 ('entries' 요소가 선언 된 스키마)를 포함하십시오. – helderdarocha

답변

0

는 어떻게 든 내 검증 루틴에서 XSD 파일을 모두로드하여 제거하는 관리 : 여기

가져온 스키마입니다. XSD 파일 중 하나를 다른 파일로 가져 오더라도 네임 스페이스에 대한 모든 참조를 수정 한 후에도 항상 실패합니다. 그래서 나는 validator 루틴에 XSD 파일을 모두로드하기로 결정했고 그 이후로 작업을 시작했습니다.

관련 문제