2014-12-12 6 views
1

많은 xsd 스키마 파일로 설명되는 많은 xml 파일이 내 프로젝트에 있습니다. XSD 스키마는 복잡한 네임 스페이스 구조를 사용하며 로컬 파일 시스템 (https://www.jetbrains.com/idea/help/xml-catalog.html)에서 이러한 스키마의 URI를 확인하도록 IDE (IntelliJ Idea)를 구성하려고합니다. 그래서 내가 아이디어 설정을 엽니 다 선택 언어 & 프레임 워크 -> 스키마와 DTD를이 -> XML 카탈로그 및 다음과 같은 내용으로 xml-catalog.properties 파일의 경로를 가리 킵니다 : 나는 같은 디렉토리에 (xml-catalog.xml 파일을 생성IntelliJ 아이디어 : 스키마 및 DTD/XML 카탈로그 구성

catalogs=xml-catalog.xml 
relative-catalogs=yes 
#verbosity=99 

다음 xml-catalog.properties 파일) :

<?xml version="1.0"?> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="urn:oasis:names:tc:entity:xmlns:xml:catalog http://www.oasis-open.org/committees/entity/release/1.0/catalog.xsd" 
     prefer="public"> 
    <rewriteSystem systemIdStartString="http://www.mycompany.com/schemas" rewritePrefix="file:///c:/Projects/MyProject/schemas"/> 
</catalog> 

나는 아이디어가 내 로컬 디렉토리 c:/Projects/MyProject/schemas에 접두사 http://www.mycompany.com/schemas 모든 스키마를 해결할 것으로 기대하고 검증하는 코드가 강조 표시를 사용합니다. 그러나 편집자의 모든 URI는 빨간색으로 유지됩니다 ... 경로, URI 및 지시문을 사용하여 인터넷 검색 및 재생 중 ...

적어도 해결할 수있는 XML 카탈로그 설정을 보여줄 수 있습니까? ? 하나의 URI 또는 ​​공공/시스템 또는 나에게이 일의 상세한 매뉴얼을 점 ..

오아시스 XML 카탈로그 사양에 따라

답변

1

[1]로 작동합니다 당신의 예는 다음과 같습니다

http://www.mycompany.com/schemas/foo.xsd

재 작성을에 :

,210

파일 : /// C : /Projects/MyProject/schemas/foo.xsd

당신이 'rewriteURI'를 사용하여 시도 해 봤나 [2] 대신 'rewriteSystem'[1]?

다음은 JPL에서 수년 동안 광범위하게 사용해온 예입니다. 적어도, 나는 이것이 리눅스에서 안정적으로 작동한다는 것을 안다. & macosx; 그러나 나는 창문에 대해 어떤 주장도하지 않는다.

http://www.omg.org/spec/UML/20110701/UML.xmi

행 :

파일 : 아파치 XML 분석기 1.2 라이브러리 구현

<?xml version='1.0'?> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" 
     prefer="public"> 

    <rewriteURI 
     rewritePrefix="file:./www.omg.org/" 
     uriStartString="http://www.omg.org/"/> 

</catalog> 

[3] 위에서 다음 URI 재기록 ./ www.omg.org /spec/UML/20110701/UML.xmi

그러나 IntelliJ 14.1.3은 위의 ​​내용이 잘못되었다고 말합니다. 특히, IntelliJ는 'uriStartString'속성이 허용되지 않으며 'rewriteURI'에 'uriIdStartString'속성이 없다고 주장합니다. 즉, IntelliJ는 다음을 기대합니다.

<?xml version='1.0'?> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" 
     prefer="public"> 

    <rewriteURI 
     rewritePrefix="file:./www.omg.org/" 
     uriIdStartString="http://www.omg.org/"/> 

</catalog> 

Apache XML Resolver 1.2 라이브러리는이 양식을 처리하지 않습니다.

신뢰할 대상 : IntelliJ? 오아시스? 아파치 XML 리졸버?

OASIS XML Catalog spec 1.0은 [2]와 부록 B (비표준)에서는 'uriStartString'을 사용하지만 부록 A (비표준)에서는 'uriIdStartString'을 사용하는 데 도움이되지 않습니다.

Norm Welch가 이에 대해 언급 할 수 있다면 좋을 것입니다. 결국 그는 OASIS XML Catalog 스펙을 작성했으며 Apache XML Resolver 구현에 참여했다.

[1] https://www.oasis-open.org/committees/entity/spec-2001-08-06.html#s.rewritesystem

[2] 당신의 답변을 https://xerces.apache.org/xml-commons/components/resolver/resolver-article.html

[3] https://www.oasis-open.org/committees/entity/spec-2001-08-06.html#element-rewriteURI

+0

고맙습니다. 나는 아이디어를 업데이트했고 현재 버전은 14.1.3이다. 질문 ()의 설정이 현재 작동 중입니다. 그러나 모든 변경 requre IDE 재시작 (!). – svaor