2011-10-04 3 views
1

느슨한 : 아직도 내가 하루의 대부분이 물건에 최대 읽어 봤는데= 나는이 같은 섹션을 정의하는 일반적인 스키마가

<xs:element name="detail"> 
    <xs:annotation> 
     <xs:documentation> 
     </xs:documentation> 
    </xs:annotation>  

    <xs:complexType> 
     <xs:sequence> 
      <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
     <xs:anyAttribute processContents="skip"/> 
    </xs:complexType> 
</xs:element> 

을 할 수 있지만 ' detail 요소 아래의 실제 xml 문서에서 찾을 수있는 필드로 들어가는 방법에 대해 머리를 감싸는 것처럼 보입니다.

나는 그것을 다음과 같이 수 있다는 것을 알고

<detail> 
    <drawing> 
     <name="test"/> 
    </drawing> 
</detail> 

또는

<detail> 
    <icon> 
     <icon_name="testIcon"/> 
     <icon_image="iconImage.jpg"/> 
    </icon> 
</detail> 

XML 빈스는 와일드 카드이기 때문에 세부 요소에 무슨 일이 일어나고 있는지 알 수있는 방법이 없습니다, 그래서 그 요소들에 뛰어들 수있는 방법을 제공하지 않습니다. xmlbeans 사이트는 와일드 카드 요소를 한 레벨 위로 이동하기 위해 내가 읽은 문서를 수정했다는 것을 나타내지 만 잘라내거나 건조하지는 않습니다. 특정 코드에있을 수있는 요소에 대해 요소 참조를 수행하도록 스키마를 수정할 수도 있습니다. 이것에 대한 생각?

답변

0

detail 요소에는 유효한 XML이 포함될 수 있으므로 내용에 액세스하는 일반적인 방법 (XPath, DOM 탐색 또는 유사)을 사용하거나 각 자식을 특정 스키마와 구체적으로 일치시키려는 방법으로 제한됩니다. 고유 네임 스페이스). 그러면 알려진 스키마와 일치하는 하위 항목을 XML에서 개체를 생성하는 좋아하는 라이브러리에 공급할 수 있습니다.

다른 옵션은 스키마에서 유효한 각 자식 유형을 지정할 수 있습니다 (확장 성을 위해 아래쪽에 선택적으로 와일드 카드 사용).

관련 문제