Estoy tratando de escribir un esquema XML que validará esta pieza de xml:Habiendo tanto un atributo y una restricción en un elemento de esquema XML
<date isodate="2007-03-14">14 march 2007</date>
El atributo isodate debe tener su tipo establecido en xs : la fecha y el contenido deben tener un máximo de 50 caracteres.
Me pregunto si es posible escribir la definición de esquema XML en un solo bloque, tal vez algo como esto:
<xs:element name="date" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="50"/>
</xs:restriction>
<xs:attribute name="isodate" type="xs:date" use="required"/>
</xs:simpleContent>
</xs:complexType>
</xs:element>
El código anterior no funciona, y realmente no puedo entender por qué. Única solución que he encontrado es de romper la parte de restricción en un tipo separado, y vincular que de esta manera:
<xs:simpleType name="reviewDate">
<xs:restriction base="xs:string">
<xs:minLength value="0"/>
<xs:maxLength value="50"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="date" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="reviewDate">
<xs:attribute name="isodate" type="xs:date" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
La pregunta que tengo es la forma de escribir la definición en un solo bloque para que el esquema es un poco más legible, y no hace referencia a los tipos en otras partes del esquema.
@Alexander: para formatear correctamente sus secciones XML, resalte el XML y haga clic en el botón "código" (101 010) en la barra de herramientas. Eso te da los buenos resultados, usar el backtick solo ayuda con una sola palabra o una frase corta, no abarca bien varias líneas. –