0

これが私のスキーマです。XML Doc の属性用に作成します。

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://xml.netbeans.org/schema/ThueBao"
        xmlns:tns="http://xml.netbeans.org/schema/ThueBao"
        elementFormDefault="qualified">

<xsd:simpleType name="tTen">
    <xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="tSDT">
    <xsd:restriction base="xsd:ID">
        <xsd:pattern value="[0]{1}[0-9]{9}[0-9]*"/>
    </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="tSDTGoiDi">
    <xsd:restriction base="xsd:string">
        <xsd:pattern value="[0]{1}[0-9]{9}[0-9]*"/>
    </xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="tDiaBan">
    <xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<xsd:simpleType name="tThoiGianGoi">
    <xsd:restriction base="xsd:duration"/>
</xsd:simpleType>
<xsd:complexType name="tThueBao">
    <xsd:sequence>
        <xsd:element name="HoTen" type="tns:tTen"></xsd:element>
        <xsd:element name="DiaBan" type="tns:tDiaBan"></xsd:element>
        <xsd:element name="SoDienThoaiGoiDi" type="tns:tSDTGoiDi"></xsd:element>
        <xsd:element name="ThoiGianGoi" type="tns:tThoiGianGoi"></xsd:element>
    </xsd:sequence>
    <xsd:attribute name="SDT" type="tns:tSDT"/>
</xsd:complexType>
<xsd:element name="DSThueBao">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="ThueBao" type="tns:tThueBao"></xsd:element>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>

そして、これは私のxmlです。

<ns0:ThueBao SDT="0984224932">
    <ns0:HoTen>Pham Tuan Manh</ns0:HoTen>
    <ns0:DiaBan>Ha Noi</ns0:DiaBan>
    <ns0:SoDienThoaiGoiDi>01635981989</ns0:SoDienThoaiGoiDi>
    <ns0:ThoiGianGoi>PT2M</ns0:ThoiGianGoi>
</ns0:ThueBao>

検証時に、NetBeans は常に次のエラーを表示します。

cvc-datatype-valid.1.2.1: '0984224932' is not a valid value for 'NCName'. [15] 
cvc-attribute.3: The value '0984224932' of attribute 'SDT' on element 'ns0:ThueBao' is not valid with respect to its type, 'tSDT'. [15] 

私のxmlには2つの電話番号があります。2 番目は受け入れられますが、1 番目です。これがどのように起こるかわかりません。この問題を解決するにはどうすればよいですか? 前もって感謝します!

4

1 に答える 1

1

xs:ID を制限するパターンに関して SDT を宣言しました。これにより、xs:NCName が制限されます。xs:NCName は (大まかに言えば) 文字で始まる必要があります。数字で始めることはできません (これは正規表現で必要です)。そのため、このタイプに一致する値はありません。

2 番目の電話番号は xs:string の制限として定義されているため、1 つでも問題ありません。

[0]{1}[0-9]{9}[0-9]*パターンを単純化できることを知っているかどうかはわかりません0[0-9]{9,}

于 2013-05-08T07:22:53.340 に答える