XML Schema,如何放置"条件"进入限制?

时间:2014-10-05 13:59:53

标签: xml if-statement schema

我有一个XML Schema,我想知道是否可以放入条件。 我想选择minInclusive和maxInclusive为每个月。在xml架构中可以这样做。我将不胜感激任何帮助。 =)

这是我的代码:

<xs:element name="correo">
    <xs:complexType>
        <xs:sequence>

            <xs:element name="emisor">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="nombre" type="xs:string"/>
                        <xs:element name="apellidos" type="xs:string"/>
                        <xs:element name="email" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>

            <xs:element name="receptor">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="nombre" type="xs:string"/>
                        <xs:element name="apellidos" type="xs:string"/>
                        <xs:element name="email" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>


            <xs:element name="fecha">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="dia">
                            <xs:simpleType>
                                <xs:restriction base="xs:integer">
                                    <xs:minInclusive value="1"/>
                                    <xs:maxInclusive value="31"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="mes">
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="Enero"/>
                                    <xs:enumeration value="Febrero"/>
                                    <xs:enumeration value="Marzo"/>
                                    <xs:enumeration value="Abril"/>
                                    <xs:enumeration value="Mayo"/>
                                    <xs:enumeration value="Junio"/>
                                    <xs:enumeration value="Julio"/>
                                    <xs:enumeration value="Agosto"/>
                                    <xs:enumeration value="Septiembre"/>
                                    <xs:enumeration value="Octubre"/>
                                    <xs:enumeration value="Noviembre"/>
                                    <xs:enumeration value="Diciembre"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="año">
                            <xs:simpleType>
                                <xs:restriction base="xs:integer">
                                    <xs:minInclusive value="0"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="hora">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="horas">
                                        <xs:simpleType>
                                            <xs:restriction base="xs:integer">
                                                <xs:minInclusive value="0"/>
                                                <xs:maxInclusive value="23"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="minutos">
                                        <xs:simpleType>
                                            <xs:restriction base="xs:integer">
                                                <xs:minInclusive value="0"/>
                                                <xs:maxInclusive value="59"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>

            <xs:element name="adjuntos">
                <xs:complexType>
                    <xs:sequence>

                        <xs:element name="archivo">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="extension" type="xs:string"/>
                                    <xs:element name="tamaño">
                                        <xs:complexType>
                                            <xs:sequence>  
                                                <xs:element name="valor">
                                                    <xs:simpleType>
                                                        <xs:restriction base="xs:double">
                                                            <xs:minInclusive value="0."/>
                                                        </xs:restriction>
                                                    </xs:simpleType>
                                                </xs:element>
                                                <xs:element name="unidades" type="xs:string"/>
                                            </xs:sequence>
                                        </xs:complexType>
                                    </xs:element>
                                </xs:sequence>
                                <xs:attribute name="nombre" type="xs:string"/>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>   

            <xs:element name="mensaje">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="cuerpo" type="xs:string"/>
                        <xs:element name="firma" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>                   

        </xs:sequence>  
        <xs:attribute name="asunto" type="xs:string"/>    
    </xs:complexType>
</xs:element>

1 个答案:

答案 0 :(得分:0)

你可以在XSD 1.1中使用断言来做这种事情。它无法在XSD 1.0中完成。