element FormDefault 의 역할

17292 단어 xmlschema
http://blog.csdn.net/tuwen/article/details/2260796 
XML schema 에서 element FormDefault = "?" 이 속성 은 XML Schema 처리 프로그램 이 XML schema 에서 정의 하 는 요소 나 유형 을 어느 네 임 스페이스 에 두 는 지 표시 합 니 다.
하나의 schema 에서 설명 한 요소 나 유형 은 두 개의 네 임 스페이스 중 하나 로 만 돌아 갈 수 있 습 니 다. 이 두 가 지 는 이름 없 는 공간 과 targetNamespace 속성 이 가리 키 는 목표 네 임 스페이스 입 니 다.한편, targetNamespace 속성 은 xs: schema 의 정의 에서 만 설명 할 수 있 기 때문에 하나의 schema 에서 정의 하 는 요소 나 유형 은 유명한 네 임 스페이스 에 만 속 할 수 있 습 니 다 (그러나 이름 없 는 네 임 스페이스 에 속 할 수도 있 습 니 다).
element FormDefault = "qualified" 일 때 모든 전역 요소 의 하위 요 소 는 부족 한 방식 으로 목표 네 임 스페이스 에 놓 이지 만 전역 요소 나 유형 은 목표 네 임 스페이스 에 놓 입 니 다.element FormDefault = "unqualified" 일 때 모든 전역 요소 의 하위 요 소 는 이름 없 는 네 임 스페이스 에 결 성 됩 니 다.속성의 네 임 스페이스 는 attributeFormDefault = "?" 와 유사 하 게 지 정 됩 니 다.
알 아야 할 것 은 element FormDefault = "?" 는 역할 영역 이 있 고 계승 되 는 것 입 니 다. 하위 정의 에서 부모 정 의 를 덮어 쓰 지 않 는 한.
다음 세 가지 예 는 element FormDefault 의 사용 효 과 를 설명 한다.
1. 목표 네 임 스페이스, 전역 element FormDefault = "unqualified" 를 정의 합 니 다.이 때 전역 요소 나 유형 을 제외 하고 일부 요 소 는 이름 없 는 공간 으로 돌아 갑 니 다.
unqualified.xsd

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"  
  3.     targetNamespace="aaaa"  
  4.     elementFormDefault="unqualified"> 
  5. <xs:element name="c"> 
  6.    <xs:complexType> 
  7.     <xs:sequence> 
  8.      <xs:element name="c1" type="xs:double"/> 
  9.      <xs:element name="c2" type="xs:string"/> 
  10.     </xs:sequence> 
  11.    </xs:complexType> 
  12. </xs:element> 
  13. </xs:schema> 

unqualified.xml

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <n:c xmlns:n="aaaa"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xsi:schemaLocation="aaaa unqualified.xsd"> 
  5. <c1>3.141593E0</c1> 
  6. <c2>String</c2> 
  7. </n:c> 

2. 목표 네 임 스페이스, 전역 element FormDefault = "qualified" 를 정의 합 니 다.이 때 전역 요소 나 유형 은 목표 네 임 스페이스 로 돌아 가 고 국부 요 소 는 부족 한 방식 으로 목표 네 임 스페이스 로 돌아 갑 니 다.
qualified.xsd

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  3. targetNamespace="aaaa" 
  4. elementFormDefault="qualified"> 
  5. <xs:element name="c"> 
  6.    <xs:complexType> 
  7.     <xs:sequence> 
  8.      <xs:element name="c1" type="xs:double"/> 
  9.      <xs:element name="c2" type="xs:string"/> 
  10.     </xs:sequence> 
  11.    </xs:complexType> 
  12. </xs:element> 
  13. </xs:schema> 

qualified.xml

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <c xmlns="aaaa"  
  3.    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.    xsi:schemaLocation="aaaa qualified2.xsd"> 
  5.    <c1>3.141593E0</c1> 
  6.    <c2>String</c2> 
  7. </c> 

3. 목표 네 임 스페이스, 전역 element FormDefault = "unqualified" 를 정의 합 니 다.이 때 전역 요소 (c) 나 유형 은 목표 네 임 스페이스 로 돌아 갑 니 다.부분 요소 (c1, c2) 는 이름 없 는 네 임 스페이스 로 결 성 됩 니 다.부분 요소 (c3) 는 부분 정의 에서 form = "qualified" 를 사용 하여 전체 설정 의 unqualified 를 덮어 씁 니 다. 이 로 인해 c3 는 목표 네 임 스페이스 로 돌아 갑 니 다. (하위 요소 가 있 으 면 하위 요 소 는 부족 한 방식 으로 목표 네 임 스페이스 로 돌아 갑 니 다)
qualified2.xsd

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
  3. targetNamespace="aaaa" 
  4. elementFormDefault="unqualified"> 
  5. <xs:element name="c"> 
  6.    <xs:complexType> 
  7.     <xs:sequence> 
  8.      <xs:element name="c1" type="xs:double"/> 
  9.      <xs:element name="c2" type="xs:string"/> 
  10.      <xs:element name="c3" type="xs:integer" form="qualified"/> 
  11.     </xs:sequence> 
  12.    </xs:complexType> 
  13. </xs:element> 
  14. </xs:schema> 

qualified2.xml

  
  
  
  
  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <n:c xmlns:n="aaaa"  
  3.      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.      xsi:schemaLocation="aaaa qualified3.xsd"> 
  5.     <c1>3.141593E0</c1> 
  6.     <c2>String</c2> 
  7.     <n:c3>0</n:c3> 
  8. </n:c> 

1111111111

좋은 웹페이지 즐겨찾기