2012-12-19 17 views
6

Ich kann aus einer Reihe von einschränkenden Gründen nicht wirklich in die Tiefe meines Projekts gehen.Gibt es einen Unterschied zwischen XSD: Pattern und C# Regex?

Im Wesentlichen versuche ich ein Objekt vor der Validierung zu validieren und es dann gegen ein Schema zu validieren. Das Schema hat eine Validierung für einen Namen, von dem ich weiß, dass es nicht ideal ist, und es ist besser, einen Namen nicht zu validieren - aber ich kann nicht scheinen, eine gültige Regex für das, was das Schema zu tun versucht, zu replizieren.

<xsd:simpleType name="CharsetD"> 
    <xsd:restriction base="xsd:string"> 
    <xsd:pattern value="[A-Za-z \-&apos;]*"/> 
    </xsd:restriction> 
</xsd:simpleType> 

<xsd:element minOccurs="0" maxOccurs="2" name="Fore"> 
    <xsd:simpleType> 
    <xsd:restriction base="CharsetD"> 
     <xsd:minLength value="1"/> 
     <xsd:maxLength value="35"/> 
     <xsd:pattern value="[A-Za-z].*"/> 
    </xsd:restriction> 
    <xsd:simpleType> 
</xsd:element> 

ich einfach im obigen Fall gedacht, dass ich versuchen könnte, und nur die xsd:pattern für die charset verwenden.

Ich habe versucht, [A-Za-z \-&apos;]* zu verwenden, die einen Namen wie Luke2 als gültig zurückgab, aber die Schemaüberprüfung sagte, dass es nicht war, weil es eine Nummer enthielt.

Meine Frage ist, wie kann ich das oben genannte in einem einzigen c# regex replizieren? Gibt es auch Unterschiede zwischen der Funktionsweise des Schemamusters und der Verwendung in .NET, die ich für die Zukunft notieren kann?

Antwort

2

ich das Problem gefunden zu haben, wenn auch getarnt als ich nicht wirklich habe XML Schema

Der Unterschied intensiv gearbeitet

Die CharsetD Art nicht nur das Muster nicht verwendet, da dieser allein isn‘ t gut genug, um Namen mit Zahlen zu validieren, als ich versuchte, nur das Muster zu verwenden - es erlaubte Zahlen. Es gibt jedoch eine Zeile auf dem Typ, die Zahlen einschränkt, und daher gibt das Schema einen Fehler zurück, bei dem die Regex nicht vorhanden ist.

<xsd:restriction base="xsd:string"> 

Lösung

habe ich eine andere einzelne Regex, die die string Einschränkung bieten würde, die in meinem Schema angewendet wird.

Verwandte Themen