2012-09-26 2 views
1

나는 지금 당분간 검색을 해왔고 결론에 도달하면 속성의 값마다 유효성 검사를 변경할 수 없을 수도 있습니다. 예를 들어속성 값의 유효성 검사에서 다른 XSD를 만드는 방법은 무엇입니까?

I은 ​​"종류"속성을 갖는 두 개의 "작업"노드 모두 두 요소 ("이름"및 "설명")가

는 '타입'속성 값 1 "인 경우에만 "abc"자식 요소가있는 "a"요소가 있고 "attype"이 "2"이면 "아직"자식 요소가있는 "bla"요소가 있습니다. 나는 두 가지 유형을 확인 whould 한 XSD *을 만들

<action type="2"> 
    <name>yup2</name> 
    <description>RRR</description> 
    <bla> 
    <yet /> 
    </bla> 
</action> 

2 형 1

<action type="1"> 
    <name>yup</name> 
    <description>yyy</description> 
    <a> 
    <abc>false</abc> 
    </a> 
</action> 

예 유형의

예,이 가능할까요? 그렇다면 어떻게?

  • MSSQL 데이터베이스 테이블의 XML 열에 XSD를 넣으 려하므로 하나의 XSD 여야합니다.

답변

1

자네 말이 맞아, 그것은 MSSQL 지원하는 유일한 XSD 버전입니다 XSD 1.0 수 없습니다. 당신이 얻을 수있는 가장 좋은 방법은 abla 사이에서 선택을하는 것입니다. 어쩌면 속성 type 값 등에 제약을 걸 수도 있습니다. 아래 그림이 있습니다.

<?xml version="1.0" encoding="utf-8"?> 
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)--> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="action"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="name" type="xs:string" /> 
     <xs:element name="description" type="xs:string" /> 
     <xs:choice>  
      <xs:element name="a"> 
       <xs:complexType> 
       <xs:sequence> 
        <xs:element name="abc" type="xs:boolean" /> 
       </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
      <xs:element name="bla"> 
       <xs:complexType> 
       <xs:sequence> 
        <xs:element name="yet" type="xs:anyType" /> 
       </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
     </xs:choice> 
     </xs:sequence> 
     <xs:attribute name="type" type="xs:unsignedByte" use="required" /> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

당신은 XML 구조를 제어하고 여전히 다음 XSI, 컨텐츠 모델을 제어하는 ​​몇 가지 속성을 사용하려면 다음 유형은 XSD 1.0에서 할 수있는 유일한 방법입니다.

0

XML Stylus Studio 도구를 사용하여 모든 유형의 복잡한 XSD를 만들 수 있습니다.

확인 사항 : http://www.stylusstudio.com/

+0

아주 일반적인 답변입니다. XMLSpy로 XSD를 생성하려고 시도했지만 값을 확인하지 못했습니다. –

관련 문제