2011-12-22 3 views
0

XML 파일에서 기본 네임 스페이스에서 자유 형식을 사용하고 싶습니다. 그러나 여러 곳에서 특정 네임 스페이스에있는 몇 가지 요소를 허용해야합니다. 나는 그 요소들을 검증하기를 원한다. 그래서 내가 원하는 것은 다음과 같습니다 :하나의 네임 스페이스를 제외하고 자유 형식을 정의하는 XSD

<document xmlns:x="http://myNamespace"> 
    <someElement1> 
    <x:toBeValidated1/> 
    <someElement2> 
     <x:toBeValidated2 someAtt="someValue"> 
     <someMoreStuff/> 
     </x:toBeValidated2> 
    </someElement2> 
    </someElement1> 
</document> 

질문은, 이것을 확인할 수있는 스키마를 쓸 수 있습니까? 그것은 임의의 요소를 어디에서라도 허용해야하지만 http://myNamespace 네임 스페이스의 요소는 스키마의 해당 정의를 따릅니다.

답변

0

대부분이 일 수 있습니다.

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://myNamespace"> 
    <xs:element name="toBeValidated1"> 
     <xs:complexType> 
      <xs:sequence/> 
     </xs:complexType> 
    </xs:element> 

    <xs:element name="toBeValidated2"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/> 
      </xs:sequence> 
      <xs:attribute name="someAtt" type="xs:string"/> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 

을 그리고 문서의 루트 요소를 정의하는 스키마로 그를 가져옵니다 :

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:import namespace="http://myNamespace" schemaLocation="other.xsd"/> 
    <xs:element name="document" type="xs:anyType"/> 
</xs:schema> 

I를 당신은 당신이 유효성을 검사 할 수 있습니다 유형을 포함하는 스키마를 정의해야합니다 최소한 루트 요소를 정의 할 수는 없지만 모든 하위 요소 또는 특성이 허용되는 방식으로 정의 될 수 있다고 생각하지 마십시오.

관련 문제