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>
"이상한 오류가 있습니다."라는 말은 끔찍한 문제 설명입니다. 그 이유는 "이상한 오류"가 무엇인지 알려주지 못하기 때문에 여기에서 화면을 볼 수 없기 때문입니다. ** 특정 문제 **는 무엇입니까? –
이름 'test : entries'를 (n) '요소 선언'구성 요소로 해석 할 수 없습니다. – sparkr
다른 스키마 ('entries' 요소가 선언 된 스키마)를 포함하십시오. – helderdarocha