2012-08-16 3 views
2

:요소로 구분 된 목록에 대한 XSD를 정의하는 방법이 있나요 나는 다음과 같은 XML 구조에 대한 스키마를 정의하고 싶습니다

요소 "개체"는 내용의 목록으로 가득해야
<object>System<S/>Design<S/>Part</object> 

잠재적으로 공간을 포함 할 수있는 열거 형 값 (System, Design, Part)은 공간 분리 목록을 사용할 수없는 이유입니다. 분리 기호로 요소를 사용합니다.

그러나 단순한 콘텐츠를 모성 할 수있는 모든 xsd 요소는 요소를 부모로 만들지 않으며 verso를 사용하지 않습니다. 이 문제를 해결할 방법이 있습니까?

답변

2

XSD 1.1로 옮기고 어설 션을 사용하지 않는 한 대답은 아니오입니다.

XSD 1.0에서는 혼합 내용 요소의 텍스트 노드에 나타나는 텍스트를 제한 할 방법이 없습니다. 이것은 XML을 사용하도록 설계되지 않았기 때문입니다 (이러한 구조의 XPath/XSLT에도 문제가 있습니다). 이 같은

테스트 텍스트 = "모든 $ s의()"개체 "의 선언에 대한 주장을 할 수 XSD 1.1

은 $ S = ('시스템', '디자인', '부분을 만족 ')

2

그것을 해결하는 가장 쉬운 방법은 예를 들어, 약간 다른 XML 구조를 사용하는 것입니다 :이 원하는대로 개별 항목 값이 공백을 포함 할 수 있습니다

<object> 
    <item>System</item> 
    <item>Design</item> 
    <item>Part</item> 
</object> 

, 그리고에 쉽게한다 XSD의 열거 형 목록을 사용하여 합법적 인 값을 제한하고 구조를 표시합니다. 데이터를 조금 더 직접적으로 표현할 수 있습니다 : 무언가 또는 다른 것들의 목록을 사용하여 객체를 설명하고 있습니다 (나는 실제로 그들이 무엇인지 전혀 모르기 때문에 item이라고 부릅니다 - XML에 좀 더 유익한 이름을주세요!) . 목록의 무언가 또는 각각은 문제의 개념적 모델에있는 별개의 객체이며, 각 XML 객체가 고유 한 XML 객체 (여기서는 별개의 인스턴스 요소 유형 item).