2009-06-21 18 views

Respuesta

4

XML básicamente contiene solo cadenas, aunque XSD también define ciertos otros tipos primitivos. GUID, sin embargo, no está entre ellos.

Puede definir su propio esquema para un tipo de GUID. Mucha gente ha hecho esto. Así es como lo hizo el equipo de Microsoft OneNote: http://msdn.microsoft.com/en-us/library/aa203890(office.11).aspx.

+0

Vi el artículo para eso también. ¿Cómo se vincula el SimpleType en su elemento, atributo xml, por ejemplo

13

Puede definir su propio tipo personalizado simple "GUID" mediante la restricción de una cadena mediante una expresión regular como esto:

<xs:simpleType name="GUID"> 
    <xs:restriction base="xs:string"> 
    <xs:pattern value="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|(\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\})"/> 
    </xs:restriction> 
</xs:simpleType> 
+0

Bueno, lo he intentado pero sigue volviendo con un 'The Pattern restricción fallida.' en archivo: mensaje de error cuando lo encuentra. –

+1

Extraño ... tenemos esto en producción y todo funciona bien ... ¿cuándo y cómo lo usas y dónde ocurre el error? –

1

He sussed a cabo. A veces ayuda leer los documentos. Así es como funcionará.

<xs:simpleType name="GUID"> 
     <xs:restriction base="xs:string"> 
      <xs:pattern value="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|(\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\})"/> 
     </xs:restriction> 
    </xs:simpleType> 


    <xs:element name="ruleident"> 
    <xs:complexType> 
     <xs:attribute name="ruleGuid" > 
     <xs:simpleType> 
     <xs:restriction base ="GUID"> 
      </xs:restriction> 
     </xs:simpleType> 
     </xs:attribute > 
    </xs:complexType > 
    </xs:element> 
Cuestiones relacionadas