2013-03-06 2 views
0

음, 짧은 버전. 교사는 우리에게 시험을위한 리뷰를 주었는데, 여기에는 XML 스키마 (우리는 아직 수업에 참여하지 않았다)가 통합되어있다. 나는이 장을 읽고 있지만 책은 한 번에 코드 스 니펫만을 제공하기 때문에 알아 내기가 어렵다. 그래서 저는 사물의 더 큰 그림 속에 어떻게 것들이 배치되어야 하는지를 모릅니다.XML 스키마를 사용하여 XML 문서 유효성 확인

우리는이

<enrollment> 
    <semester>1128</semester> 
    <student> 
    <id>1000001</id> 
    <lastname>Smith</lastname> 
    <firstname>Joe</firstname> 
    <courses> 
     <course id="10001"/> 
     <course id="10003"/> 
    </courses> 
    <tuition>200</tuition> 
    </student> 
</enrollment> 

우리는 이러한 validatons이있는 XML 스키마를 작성해야처럼 XML 문서가 있습니다. 수업료는 0보다는 크고 10,000 이상이어야합니다

  • 과정 제로 사이에 10

    1. 가있을 수 있습니다.

    2. Course ID 특성에 정확히 5 자리가 포함되어 있는지 확인하는 CourseType이라는 사용자 지정 형식을 만듭니다.

    이것은 내가 지금까지 가지고있는 XML 스키마 코드입니다 (올바른지 확실하지 않습니다). 처음 두 가지가 옳다는 것을 확신합니다. 나는 세 번째 것을 이해하지 못한다.

    <xs:schema blah blah blah validation inputs> 
    <xs:element name="enrollment"> 
    <xs:complexType> 
        <xs:sequence> 
        <xs:element name="courses"> 
         <xs:complexType> 
         <xs:sequence> 
          <xs:element name="course" 
          minOccurs="0" 
          maxOccurs="10"/> 
         </xs:sequence> 
         </xs:complexType> 
        </xs:element> 
    
        <xs:element name="tuition"> 
        <xs:simpleType> 
         <xs:restriction base="xs:integer"> 
         <xs:minInclusive value="0"/> 
         <xs:maxInclusive value="10000"/> 
         </xs:restriction> 
        </xs:simpleType> 
        </xs:element> 
    
        <xs:element name="Courses"> 
         <xs:complexType name ="Course"> 
         <xs:simpleContent> 
         <xs:extension base ="xs:course ID"> 
          <xs:attribute name="id" type="CourseType"> 
          </xs:attribute> 
         </xs:extension> 
         </xs:simpleContent> 
         </xs:complexType> 
        </xs:element> 
        </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    
    <xs:simpleType name="CourseType"> 
        <xs:restriction base="xs:integer"> 
        <xs:totalDigits value ="5"/> 
        </xs:restriction> 
    </xs:simpleType> 
    </xs:schema> 
    

    답변

    0

    몇 가지 제안.

    • 수업료 제약 조건은 0보다 크고 1 만보다 작아야한다는 것입니다. 그러나 선언에서 minInclusive 및 maxInclusive 패싯을 사용합니다.이 패싯은 0과 1만의 값을 허용합니다. minExclusive 및 maxExclusive가 요구 사항을 일치시키는 더 나은 작업을 수행하는지 여부를 고려할 수 있습니다.

    • totalDigits 패싯은 CourseType 값 다섯 자리 십진수 이하에 기록 할 수있게하며,하지만 값 1, -12345 또는 0000000000001492 금지하지 않는다. 제약 조건 "정확히 5 자리 포함"은 값의 어휘 표현에 대한 제약 조건을 제안합니다. 패턴 패싯으로 필요한 것을 얻을 수 있습니까?

    관련 문제