2013-12-09 2 views
1

XML 스키마에 너무 익숙하지 않지만 요소에 모든 유형의 자식을 name 특성으로 포함 할 수있는 스키마를 갖고 싶습니다. 예를 들어 , 요소 MYTYPE : (분명히 작동하지 않습니다) 나는 노력특성 및 anyType 하위가있는 XML 스키마 요소

<myType name="type1"> 
    <value>my value</value> 
    <country>US</country> 
</myType> 

:

<xsd:element name="myType" minOccurs="1" maxOccurs="unbounded" type="xsd:anyType"> 
    <xsd:complexType> 
     <xsd:attribute name="name" type="xsd:string" use="required"/> 
    </xsd:complexType> 
</xsd:element> 

답변

1

이 XML :

<?xml version="1.0" encoding="UTF-8"?> 
<myType name="type1"> 
    <value>my value</value> 
    <country>US</country> 
</myType> 

이 XSD 당 유효한가 :

(210)
<?xml version="1.0" encoding="utf-8"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="myType"> 
    <xsd:complexType> 
     <xsd:sequence> 
     <xsd:any processContents="lax" maxOccurs="unbounded"/> 
     </xsd:sequence> 
     <xsd:attribute name="name" type="xsd:string" use="required"/> 
    </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 

는 설명 :

  • xsd:any 항목 요소가 myType의 자식이 될 수 있습니다.
  • xsd:any/@processContents="lax" 설정 "이 수 할 일을 기준으로 요소 내용을 확인하기 위해 XML 프로세서를 지시한다 : 그것은 요소를 확인하고있는 것이 스키마를 정보를 얻을 수 속성,하지만 사람들을 위해 오류 신호를하지 않을 것입니다 그것을 할 수 없습니다 스키마 정보를 얻으십시오. "
+0

안녕하세요, 위와 같은 문제가 있지만 위의 코드를 사용하면 콘텐츠 형식이 '요소 전용'오류이므로 '공백 이외의 문자 콘텐츠가 허용되지 않습니다. 누군가를 위해 해답이 작동합니까? –

+0

대답은 요소 자식 만있는 질문의 XML에서 작동합니다. 텍스트와 요소 자식의 혼합을 지원하려면'mixed = "true"를'xsd : complexType'에 추가하십시오. – kjhughes