2012-05-30 3 views
2

나는 한 다음 XML 파일 :Webstorm이 오류로 표시하지 않는 방식으로 XInclude를 사용하여 다른 XML에서 XML ID를 참조 할 수 있습니까?

기본 파일

<?xml version="1.0" encoding="utf-8" standalone="no"?> 
<template_structure xmlns:xi="http://www.w3.org/2001/XInclude"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
        xsi:noNamespaceSchemaLocation="template_structure_validator.xsd"> 
    <xi:include href="parameter_definitions.xml" parse="xml"/> 
    <parameters> 
     <parameter idref="first_param" value="10"/> 
    </parameters> 
</template_structure> 

parameter_definitions.xml

<parameter_definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:noNamespaceSchemaLocation="template_structure_validator.xsd"> 
    <def_parameter id="first_param" advanced="true"> 
     <description> 
      first parameter 
     </description> 
    </def_parameter> 
    <def_parameter id="second_param" advanced="true"> 
     <description> 
      second parameter 
     </description> 
    </def_parameter> 
</parameter_definitions> 

template_structure_validator.xsd :

<xs:element name="parameter_definitions"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="def_parameter" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="def_parameter"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="description"/> 
     </xs:sequence> 
     <xs:attribute name="id" use="required" type="xs:ID"/> 
     <xs:attribute name="advanced" use="required" type="xs:boolean"/> 
    </xs:complexType> 
</xs:element> 
<xs:element name="parameters"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="parameter"> 
    <xs:complexType> 
     <xs:attribute name="idref" use="required" type="xs:IDREF"/> 
        <xs:attribute name="value" use="required" type="xs:string"/> 
    </xs:complexType> 
</xs:element> 
<xs:element name="js_template_structure"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="parameter_definitions"/> 
      <xs:element ref="parameters"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

Webstorm에로드 할 때 주 파일에 "first_param" is unresolved 오류가 표시됩니다. 어떻게 해결할 수 있습니까?

답변

0

IDREF는 속성에 지정된 값이 문서의 다른 곳에서 ID 속성 값으로 지정되도록 요구합니다. IDREF 값은 ID 값으로 다른 곳에 표시해야합니다

<xs:attribute name="id" type="xs:ID" use="required"/> 
<!--...--> 
<xs:attribute name="idref" use="required" type="xs:IDREF"/> 
당신은 내가의 속성으로 정의 된 ID-속성 값이 그 template_structure_validator.xsd 위에서 볼 수
+0

gztomas

+0

외모를 id 및 idref 소스와 같은 ID는 [동일한 문서] (http://www.w3.org/TR/xinclude/#references-property)이어야합니다. –