2017-05-10 1 views
1

요일의 짧은 이름 중 1 ~ 7 개를 나열하는 요소에 대해 패턴 일치를 사용하려고합니다. 거기에 일치하는 온라인 도구에서 하나의 패턴을 만들려고했으나 XSD에서 실패하고 유효성이 검사되었습니다.XSD 주중 1 일 또는 그 이상의 요일에 대한 제한

샘플 가지 요소에 올 수 있습니다.

<DayOfWeek>Mon Tue Wed Thu Fri Sat Sun </DayOfWeek> 
<DayOfWeek>Mon Wed Fri </DayOfWeek> 

나는 다음과 같은 정규식 패턴을 만드는 데 도움이 http://www.regexpal.com/을 사용했다. 나는 사이트 작업 다음을 사용하여 시도 :

<xs:element name="DayOfWeek"> 
       <xs:complexType> 
        <xs:simpleContent> 
         <xs:extension base="ValidDays" /> 
        </xs:simpleContent> 
       </xs:complexType> 
       </xs:element> 

를 : 여기에 XSD의 요소

<xs:simpleType name="ValidDays"> 
    <xs:restriction base="xs:token"> 
     <xs:pattern value="(Mon[ ]+)?(Tue[ ]+)?(Wed[ ]+)?(Thu[ ]+)?(Fri[ ]+)?(Sat[ ]+)?(Sun[ ]+)?" /> 
    </xs:restriction> 
</xs:simpleType> 

그리고 참조 : 다음과 같은 형 simpleType에 적용

(Mon)?(Tue)?(Wed)?(Thu)?(Fri)?(Sat)?(Sun)?[ ]+ 
(Mon[ ]+)?(Tue[ ]+)?(Wed[ ]+)?(Thu[ ]+)?(Fri[ ]+)?(Sat[ ]+)?(Sun[ ]+)? 

패턴 제한에 대한이 메시지와 함께 실패합니다.

나는 '/'와 '/ g'을 사이트에서 적용하려고 시도했는데, 그 경우에도 동일한 오류 메시지가 나타납니다.

답변

1

사용 xs:list 오히려 열거 값의 공백으로 구분 된 목록에 대한 정규식보다 :

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="DayOfWeek"> 
    <xs:simpleType> 
     <xs:restriction> 
     <xs:simpleType> 
      <xs:list itemType="ValidDays"/> 
     </xs:simpleType> 
     <xs:minLength value="1"/> 
     </xs:restriction> 
    </xs:simpleType> 
    </xs:element> 
    <xs:simpleType name="ValidDays"> 
    <xs:restriction base="xs:string"> 
     <xs:enumeration value="Sun"/> 
     <xs:enumeration value="Mon"/> 
     <xs:enumeration value="Tue"/> 
     <xs:enumeration value="Wed"/> 
     <xs:enumeration value="Thu"/> 
     <xs:enumeration value="Fri"/> 
     <xs:enumeration value="Sat"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:schema> 
+0

감사, 점검 할 필요가 무엇인지 처리 및 맞춤법, 소문자의 실수로 사용하기 위해 밖으로 error'd하지만, 한 수 또는 더 많은 공백 이제는 이것을 사용하여 허용되지 않는 여러 시간 수에 대한 정규 표현식을 대체 할 수 있습니다. 그렇지 않은 경우 충분히 견고하지 못합니다. – langc334