سؤال

وأنا في حاجة إلى قضية حساسة سلسلة نوع التعداد في ملفي XML مخطط (.xsd و). يمكنني الحصول قضية حساسة عن طريق القيام بما يلي.

<xs:simpleType name="setDigitalPointType">
    <xs:restriction base="xs:string">
        <xs:pattern value="[Oo][Nn]" />
        <xs:pattern value="[Oo][Ff][Ff]" />
    </xs:restriction>
</xs:simpleType>

والمشكلة الوحيدة هي أن أحصل على أي قيم التعداد. وأنا لا تحصل على intellesense لطيفة عند استخدام Visual Studio ليكتب لي XML. وفيما يلي تعطيني التعدادات وإنما هو حالة الأحرف.

<xs:simpleType name="setDigitalPointType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="on" />
        <xs:enumeration value="off" />
    </xs:restriction>
</xs:simpleType>

وهذا سوف تعطيني التعدادات بلدي ولكن إذا تلقيت أي وقت مضى قيمة "في"، "ON"، أو "على" فسوف تفشل التحقق.

وأريد تعداد "على"، "إيقاف" والسماح بدخول حالة الإصدارات حساسة.

هل كانت مفيدة؟

المحلول

وIBM developerWorks ديه مقال على كيفية استخدام XSLT ل أداء بناء مجموعة كاملة من البدائل تعداد بطريقة آلية. تقديمها كحل لعدم وجود التعدادات تحسس حالة الأحرف.

نصائح أخرى

إذا كنت تريد أن كلا حفاظ على التحقق من صحة قضية حساسة، في حين لا يزال الحصول على التحسس في Visual Studio 2010، يمكنك استخدام الاتحاد:

<xs:simpleType name="setDigitalPointType">
    <xs:union>
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="on" />
                <xs:enumeration value="off" />
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:pattern value="[Oo][Nn]" />
                <xs:pattern value="[Oo][Ff][Ff]" />
            </xs:restriction>
        </xs:simpleType>
    </xs:union>
</xs:simpleType>

وهذا يعمل لأنه يستغل كون البصرية ستوديو 2010 يعالج فقط أول نوع بسيط في اتحاد عندما يبني انها بيانات التحسس. ولكن عندما يتعلق بالتحقق من صحة مستند، يقوم بمعالجة كليهما، وهو ما يعني "في" لا يزال مصمما على أن تكون سارية المفعول على الرغم من أنها ليست في قائمة القيم التعداد.

حسنا، هل يمكن أن مجرد سرد كافة التباديل عن أنماط:)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top