2014-03-07 4 views
4

의 유효성을 검사하는 방법은 JDK 7하게 IntelliJ IDEA는 : XML 스키마 1

와 IDEA 1302에서 XML 스키마 1.1을 시도하고 이것은 내가 튜토리얼에서 가져온 XML 스키마 코드입니다. 내가하게 IntelliJ IDEA에서이 파일을 열고 "유효성 검사"를 클릭하면, 다음과 같은 오류를 얻을 :

CVC-복잡한 type.2.4.a을 : 잘못된 내용이 요소 'OpenContent라는'로 시작 발견되었다. '{ "http://www.w3.org/2001/XMLSchema"중 하나 주석, "http://www.w3.org/2001/XMLSchema"simpleContent를, "http://www.w3.org/2001/XMLSchema"complexContent, "http://www.w3.org/2001/XMLSchema"그룹 "http://www.w3.org/2001/XMLSchema"모든 "http://www.w3.org/2001/XMLSchema"선택 "http://www.w3.org/2001/XMLSchema" : sequence, "http://www.w3.org/2001/XMLSchema": 속성, "http://www.w3.org/2001/XMLSchema": attributeGroup, "http://www.w3.org/2001/XMLSchema : anyAttribute} '가 필요합니다.

<?xml version="1.0"?> 
<schema xmlns="http://www.w3.org/2001/XMLSchema" 
     targetNamespace="http://www.books.org" 
     xmlns:pub="http://www.books.org" 
     elementFormDefault="qualified"> 

    <complexType name="Publication" abstract="true"> 
     <openContent mode="interleave"> 
      <any /> 
     </openContent> 
     <sequence> 
      <element name="Title" type="string" /> 
      <element name="Author" type="string" /> 
      <element name="Date" type="gYear"/> 
     </sequence> 
    </complexType> 

    <complexType name="BookPublication"> 
     <complexContent> 
      <extension base="pub:Publication"> 
       <openContent mode="none"> 
       </openContent> 
       <sequence> 
        <element name="ISBN" type="string"/> 
        <element name="Publisher" type="string"/> 
       </sequence> 
      </extension> 
     </complexContent> 
    </complexType> 

    <element name="BookStore"> 
     <complexType> 
      <sequence> 
       <element name="Book" type="pub:BookPublication" maxOccurs="unbounded" /> 
      </sequence> 
     </complexType> 
    </element> 

</schema> 

IDEA에서 사용하는 유효성 검사기를이를 확인하거나 업그레이드 할 수있는 방법이 있나요 :

는 XSD 파일은 XML 스키마 1.1 향상된 기능을 사용하고 있습니다? <schema>xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"vc:minVersion="1.1"를 추가

+0

[스키마 1.1 기능이 필요한 xml 스키마를 나타내는 방법] (https://stackoverflow.com/questions/21555511/how-to-indicate-that-an-xml-schema-that- requires-schema-1-1-features) – Joost

답변

0

시도 :

<schema xmlns="http://www.w3.org/2001/XMLSchema" 
     targetNamespace="http://www.books.org" 
     xmlns:pub="http://www.books.org" 
     elementFormDefault="qualified" 
     xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" 
     vc:minVersion="1.1" 
> ... </schema> 

그것은 당신이 XSD 1.1 스키마를 사용하는 IDEA를 알려줍니다.

WebStorm 8과 함께 XSD 1.1을 사용했습니다.이 파서는 IDEA와 동일한 파서를 사용합니다.

xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" 
    vc:minVersion="1.1" 

(@helderdarocha을 말했듯이 를)

+0

불행히도 Id가 작동하지 않았습니다. "http://www.w3.org/2007/XMLSchema-versioning"이라는 URL이 맞습니까? IDEA errror는 (1) "외부 리소스 http://www.w3.org/2007/XMLSchema-versioning이 등록되지 않았습니다"및 (2) "조기 종료"입니다. 등록했지만 아직 작동하지 않습니다. – user193116

+0

해야합니다. http://www.w3.org/2007/XMLSchema-versioning/을 확인하십시오. IDEA를 업그레이드 할 수 있습니다. XSD 1.1은 최근 버전이므로 최신 버전에서만 지원됩니다. 내 WebStorm 8은 Early Access입니다. WS 7에서 작동하는지 확신 할 수 없네. – helderdarocha

+0

그러나 '파일 조기 종료'는 잘 못된 문제인 것처럼 보입니다. – helderdarocha

0

당신의 XML-검증이 XSD 1.0 및 1.1 (뿐만 아니라 하나 개의 버전) 지원하지만, 자동으로 XSD의 버전을 인식 할 수없는 경우에는 속성을 추가 할 필요가 "schema"태그와 유효성 검사기는 검사에 필요한 버전을 알 수 있습니다.

XML 유효성 검사기가 XSD 1.0 만 지원하는 경우 지원되지 않는 항목을 제거해야 유효성을 검사 할 수있는 유일한 방법이며 minVersion에 대한 참조가 작동하지 않습니다.

예를 들어 :

  1. XML 검사기 "닷넷 4.0 (XSD 1.0)"유효하지 않은 문서에 대해 말할 것이다, 당신은 최소 버전을 지정 여부에 상관없이; 당신이 XSD 1.0 모드에서 문서를 확인할 경우 "이를 minVersion"가 지정되지 않은 경우

    2.1, 검증이 잘못된 문서에 대해 말할 것이다 :

  2. XML 검사기 "Xerces를 2.11.0는"두 XSD의 버전 만 지원. minVersion이 추가되면 유효성 검사기는 1.1 버전의 항목 검사를 건너 뜁니다.

    2.2 XSD 1.1 모드에서 문서의 유효성을 검사 할 경우 "minVersion"은 필요하지 않습니다.

IDEA에 문제가 없다고 말하고 싶습니다. 다른 검사기를 사용하면 검사가 통과 할 수 있습니다. 항상 XML이 실제로 정확한지 확인하기 위해 여러 가지 유효성 검사기 및 버전에서 XML을 검사하는 것이 좋습니다.

관련 문제