অ্যাকশনস্ক্রিপ্ট 3-এ কীভাবে "নুল" (একটি আসল নাম!) একটি এসওএপি ওয়েব পরিষেবাতে পাস করবেন


4635

আমাদের একজন কর্মচারী যার উপাধি নাল। যখন আমাদের শেষ নামটি অনুসন্ধান শব্দ হিসাবে ব্যবহৃত হয় (যা এখন প্রায়শই দেখা যায়) তখন আমাদের কর্মচারী অনুসন্ধানের আবেদনটি মারা যায়। ত্রুটিটি পেয়েছে (ধন্যবাদ ফিডলার!) হ'ল:

<soapenv:Fault>
   <faultcode>soapenv:Server.userException</faultcode>
   <faultstring>coldfusion.xml.rpc.CFCInvocationException: [coldfusion.runtime.MissingArgumentException : The SEARCHSTRING parameter to the getFacultyNames function is required but was not passed in.]</faultstring>

কিউট, হাহ?

পরামিতি টাইপ হয় string

আমি ব্যাবহার করছি:

মনে রাখবেন যে কোল্ডফিউশন পৃষ্ঠা থেকে ওয়েবসার্ভিসকে একটি বিষয় হিসাবে কল করার সময় ত্রুটিটি ঘটে না


6
নির্দিষ্ট সমস্যার ক্ষেত্রে এটি আপনাকে তেমন সহায়তা করতে পারে না, তবে এসওএপি ১.২ অল্প
জেনসজি

6
ডেভ নুলের সাথে আমার একটা অনুভূতি রয়েছে।
জর্জ গিবসন

2
কমপক্ষে এটি চক নরিসকে জড়িত করে না। কোড থেকে তাঁর কাছ থেকে দূরে থাকবেন কেন তা এখানে রয়েছে: কোডস্কিজ.com/…
এসডসোলার

42
কর্মচারী কি তার নাম পরিবর্তন করার বিষয়টি বিবেচনা করেছে?
তাতরান্সকিমেডভেদ

11
তার সত্যই পয়েন্টার কুকুর কিনে তাকে নুলপয়েন্টার বলা উচিত।
আন্তোনিও আলভারেজ

উত্তর:


1108

এটি ট্র্যাকিং ডাউন

প্রথমে আমি ভেবেছিলাম এটি একটি জবরদস্তি বাগ nullছিল যেখানে জোর করা হচ্ছে "null"এবং এর একটি পরীক্ষা "null" == nullপাস হচ্ছে। এটা না। আমি কাছাকাছি ছিলাম, কিন্তু খুব খুব ভুল। এর জন্যে দুঃখিত!

আমি এরপরে আশ্চর্যজনক ওয়েবসাইটের মধ্যে প্রচুর ফিডিং এবং কোডটির মাধ্যমে ট্রেসিং করেছি mx.rpc.xml.*। 1795 এর লাইনে XMLEncoder(3.5 উত্সে), ইন setValue, সমস্ত এক্সএমএলএনকোডিং নীচে নেমে আসে

currentChild.appendChild(xmlSpecialCharsFilter(Object(value)));

যা মূলত:

currentChild.appendChild("null");

আমার কোড অনুসারে এই কোডটি একটি খালি এক্সএমএল উপাদান দেয়। কিন্তু কেন?

কারণ

বাগ রিপোর্টের উপর জাস্টিন Mclean মন্তব্যকারী মতে আনমন-33664 নিম্নলিখিত অভিযুক্ত ব্যক্তি (আমার গত দুই পরীক্ষা দেখতে বেহালার যা এই যাচাই):

var thisIsNotNull:XML = <root>null</root>;
if(thisIsNotNull == null){
    // always branches here, as (thisIsNotNull == null) strangely returns true
    // despite the fact that thisIsNotNull is a valid instance of type XML
}

যখন currentChild.appendChildস্ট্রিং পাস করা হয়েছে "null", এটা প্রথম এটা পাঠ্য সহ একটি রুট এক্সএমএল উপাদানে ধর্মান্তরিত null, এবং তারপর নাল আক্ষরিক বিরুদ্ধে যে উপাদান পরীক্ষা। এটি একটি দুর্বল সমতা পরীক্ষা, সুতরাং শূন্যযুক্ত এক্সএমএলটি নাল প্রকারের সাথে জোর করা হয়, বা নাল টাইপটি "নাল" স্ট্রিং সহ একটি মূল xML উপাদানকে জোর করা হয় এবং পরীক্ষাটি যেখানে তর্কযুক্তভাবে ব্যর্থ হওয়া উচিত সেখানে পাস হয়। "স্থিরতা" এর জন্য এক্সএমএল (বা কিছু, সত্যিই) চেক করার সময় সর্বদা কঠোর সাম্যতা পরীক্ষা ব্যবহার করা একটি সমাধান হতে পারে ।

সমাধান

শুধুমাত্র যুক্তিসঙ্গত কার্যসংক্রান্ত আমি মনে করতে পারেন, ActionScript প্রতিটি অভিশাপ সংস্করণে এই বাগ ফিক্সিং সংক্ষিপ্ত, "নাল" জন্য পরীক্ষা ক্ষেত্র হয় এবং তাদের অব্যাহতি CDATA মান

সিডিএটিএ মানগুলি একটি সম্পূর্ণ পাঠ্য মানকে রূপান্তর করার সবচেয়ে উপযুক্ত উপায় যা অন্যথায় এনকোডিং / ডিকোডিংয়ের সমস্যা সৃষ্টি করে। উদাহরণস্বরূপ, হেক্স এনকোডিং পৃথক অক্ষরের জন্য বোঝানো হয়েছে। সিডিএটিএর মানগুলি অগ্রাধিকার দেওয়া হয় যখন আপনি কোনও উপাদানের পুরো পাঠ্যটি এড়িয়ে চলেছেন। এর সবচেয়ে বড় কারণ এটি মানব পাঠযোগ্যতা বজায় রাখে।


298

উপর xkcd নোট , ববি টেবিল ওয়েবসাইট ব্যবহারকারীর তথ্য ভ্রান্ত ব্যাখ্যা (এই ক্ষেত্রে, স্ট্রিং "নাল") SQL এর যে সহ বিভিন্ন ভাষা, ক্ষেত্র ক্যোয়ারীগুলি এড়ানো জন্য ভাল উপদেশ রয়েছে ColdFusion

এটি সমস্যার উত্স যে প্রশ্নটি থেকে স্পষ্ট নয় এবং সমাধানটি প্রথম উত্তরের মন্তব্যে উল্লেখ করা হয়েছে (কোনও কাঠামোর মধ্যে প্যারামিটারগুলি এম্বেড করে) সম্ভবত মনে হয় এটি অন্যরকম কিছু ছিল।


239

ফ্লেক্সের এসওএপি এনকোডারটিতে সমস্যা হতে পারে। আপনার ফ্লেক্স অ্যাপ্লিকেশনটিতে এসওএপি এনকোডার বাড়ানোর চেষ্টা করুন এবং নাল মানটি কীভাবে পরিচালনা করা হয় তা দেখতে প্রোগ্রামটি ডিবাগ করুন।

আমার অনুমান, এটি এনএএন (নম্বর নয়) হিসাবে পাস হয়েছে । এই ইচ্ছার আপ সাবান বার্তা unmarshalling প্রক্রিয়া একদা (ইন এর মধ্যে উল্লেখযোগ্য হল জগাখিচুড়ি JBoss 5 সার্ভার ...)। আমার মনে আছে এসওএপি এনকোডার বাড়ানো এবং কীভাবে এনএএন পরিচালিত হয় তার একটি স্পষ্ট চেক করা।


12
নাম = "নাল" অবশ্যই দরকারী, এবং আমি কীভাবে এটি এনএএন এর সাথে সম্পর্কিত হওয়া উচিত তা দেখতে পাচ্ছি না।
21

129

@ ডক_৮৮০ এর সঠিক ধারণা ছিল, কেবলমাত্র তিনি সংখ্যার উপর দৃষ্টি নিবদ্ধ রেখেই রয়েছেন, যেখানে মূল পোস্টারে স্ট্রিংয়ের সমস্যা রয়েছে।

সমাধানটি mx.rpc.xml.XMLEncoderফাইলটি পরিবর্তন করা । এটি 121 লাইন:

    if (content != null)
        result += content;

(আমি ফ্লেক্স ৪.৫.১ এসডিকে দেখলাম; অন্যান্য সংস্করণে লাইন নম্বরগুলি পৃথক হতে পারে))

মূলত, বৈধতা ব্যর্থ হয় কারণ 'সামগ্রী নাল' এবং অতএব আপনার যুক্তি বহির্গামী এসওএপি প্যাকেটে যুক্ত হয় না; এভাবে অনুপস্থিত পরামিতি ত্রুটি ঘটায়।

বৈধতা অপসারণ করতে আপনাকে এই শ্রেণিটি প্রসারিত করতে হবে। তারপরে চেইন অবধি একটি বড় স্নোবল রয়েছে, আপনার পরিবর্তিত এক্সএমএলএনসি কোডারটি ব্যবহার করতে এসওএপিএনকোডারকে সংশোধন করুন এবং তারপরে আপনার পরিবর্তিত এসওএপিএনকোডার ব্যবহারের জন্য অপারেশন পরিবর্তন করুন এবং তারপরে আপনার বিকল্প অপারেশন ক্লাসটি ব্যবহার করার জন্য ওয়েব সার্ভিসকে মাইফাইফিং করুন।

আমি এটিতে কয়েক ঘন্টা ব্যয় করেছি, তবে আমার এগিয়ে যাওয়া দরকার। এটি সম্ভবত এক বা দুই দিন সময় লাগবে।

আপনি কেবল এক্সএমএলএনএলকোডার লাইনটি ঠিক করতে এবং নিজের ক্লাসটি ব্যবহার করতে কিছু বানর প্যাচিং করতে সক্ষম হতে পারেন।

আমি আরও যোগ করব যে আপনি যদি কোল্ডফিউশন সহ রিমোটঅবজেক্ট / এএমএফ ব্যবহার করতে যান, সমস্যা ছাড়াই নালটি পাস হয়ে যাবে।


11/16/2013 আপডেট :

রিমোটঅবজেক্ট / এএমএফ সম্পর্কে আমার সর্বশেষ মন্তব্যে আমার আরও সাম্প্রতিক সংযোজন রয়েছে। আপনি যদি কোল্ডফিউশন 10 ব্যবহার করছেন; তারপরে কোনও বস্তুর নাল মানযুক্ত বৈশিষ্ট্যগুলি সার্ভার-সাইড অবজেক্ট থেকে সরানো হবে। সুতরাং, আপনাকে বৈশিষ্ট্য অ্যাক্সেস করার আগে অস্তিত্বের জন্য যাচাই করতে হবে বা আপনি রানটাইম ত্রুটি পাবেন।

এটি যাচাই করুন:

<cfif (structKeyExists(arguments.myObject,'propertyName')>
 <!--- no property code --->
<cfelse>
 <!--- handle property  normally --->
</cfif>

এটি হ'ল কোল্ডফিউশন 9 থেকে আচরণের পরিবর্তন; যেখানে নাল বৈশিষ্ট্যগুলি খালি স্ট্রিতে পরিণত হবে।


12/6/2013 সম্পাদনা করুন

যেহেতু নালগুলি কীভাবে চিকিত্সা করা হয় সে সম্পর্কে একটি প্রশ্ন ছিল, তাই স্ট্রিং "নাল" কীভাবে সংরক্ষিত শব্দ নলের সাথে সম্পর্কিত হবে তা প্রদর্শনের জন্য এখানে একটি দ্রুত নমুনার প্রয়োগ রয়েছে।

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" initialize="application1_initializeHandler(event)">
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            protected function application1_initializeHandler(event:FlexEvent):void
            {
                var s :String = "null";
                if(s != null){
                    trace('null string is not equal to null reserved word using the != condition');
                } else {
                    trace('null string is equal to null reserved word using the != condition');
                }

                if(s == null){
                    trace('null string is equal to null reserved word using the == condition');
                } else {
                    trace('null string is not equal to null reserved word using the == condition');
                }

                if(s === null){
                    trace('null string is equal to null reserved word using the === condition');
                } else {
                    trace('null string is not equal to null reserved word using the === condition');
                }
            }
        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
</s:Application>

ট্রেস আউটপুটটি হ'ল:

নাল স্ট্রিংটি! = শর্তটি ব্যবহার করে নাল সংরক্ষিত শব্দের সমান নয়

নাল স্ট্রিং == শর্তটি ব্যবহার করে নাল সংরক্ষিত শব্দের সমান নয়

নাল স্ট্রিং === শর্তটি ব্যবহার করে নাল সংরক্ষিত শব্দের সমান নয়


8
@ রেবুগ 711 কর্মচারীর শেষ নামটি আক্ষরিক অর্থে "নুল" স্ট্রিং, "আমার নাম প্যাট নুল" আপনার উত্তর কর্মচারীর শেষ নামটি পাস করতে ব্যর্থ হয়েছে। আপনি উত্তরটি কেবল এই সত্যটি গোপন করেন যে বেন বার্নসের বর্ণিত অ্যাপেন্ডচিল্ড () পদ্ধতি দ্বারা "নুল" অনুপযুক্তভাবে নাল ভাষা ধারণাটিতে জোর করা হচ্ছে। ফলাফল মিঃ বা মিসেস নুলকে মোকাবেলা করতে এখনও সিস্টেমের ব্যর্থতা।
ম্যাক্সেক্স ডায়মন

2
@ ম্যাক্সএক্সড্যামন আমার মনে হয় আপনি আমার উত্তরটি আসলে কী ভুল ধারণা দিয়েছিলেন। এটি কোনও সমাধান উপস্থাপন করে না; বরং সমস্যাটি কেন ঘটে তার একটি ব্যাখ্যা; এবং ফ্লেক্স ফ্রেমওয়ার্ক থেকে প্রাসঙ্গিক কোড উদ্ধৃত করে। আমার আরও সাম্প্রতিক সম্পাদনা সম্ভবত ভুল জায়গায় স্থানান্তরিত হয়েছে; এটি বিকল্প বিকল্প হিসাবে আলোচনা করে এবং মূল প্রশ্নের সাথে সরাসরি সম্পর্কিত নয় to
জেফরিহাউসার

1
আপনি সঠিক ট্র্যাকের ধরণের, তবে কোডটির সেই বিন্দুতে contentস্ট্রিংটি রয়েছে "null"এবং "নাল" == নালটি মিথ্যা প্রত্যাবর্তন করে, যাতে পরীক্ষাটি উদ্দেশ্য অনুযায়ী আচরণ করে। পরিবর্তে আমি বিশ্বাস করি যে সমস্যাটি কীভাবে XML.appendChild একটি স্ট্রিং আর্গুমেন্ট পরিচালনা করে এবং কীভাবে কেবলমাত্র "নাল" স্ট্রিং যুক্ত একটি রুট এক্সএমএল উপাদানটি আক্ষরিক সাথে জোর করা যায় null
বেন বার্নস

@ রেবুগ 711 আমার ফিডলটি একবার দেখুন। "নাল"! = নাল: ফিরে আসা trueএখানে পছন্দসই আচরণ। যদি বিপরীতটি ঘটে থাকে তবে এটি এনকোডিং প্রক্রিয়া থেকে "নাল" স্ট্রিংটি ফেলে দেবে, যা প্রকৃতপক্ষে সমস্যার কারণ হতে পারে। তবে এই পরীক্ষাটি সফল হওয়ার কারণে, এক্সএমএল.এপেন্ডচিল্ড একটি জোরপূর্বক বাগের কারণে এটি ত্যাগ না করা অবধি এনকোডারটি চলতে থাকবে।
বেন বার্নস

4
কোন চিন্তা করো না. আপনি যদি দেখতে চান তবে আসল সমস্যাটি var xml:XML = <root>null</root>; var s:String = (xml == null) ? "wtf? xml coerced to null?!!" : "xml not coerced to null."; trace(s);আপনার কোডের নমুনায় যুক্ত করুন।
বেন বার্নস

65

সমস্ত অক্ষরকে তাদের হেক্স-সত্তা সমতুল্যে অনুবাদ করুন। এই ক্ষেত্রে, Nullরূপান্তরিত হবে&#4E;&#75;&#6C;&#6C;


41
দয়া করে এটি করবেন না। সিডিএটিএ এমন ক্ষেত্রে ব্যবহারের জন্য তৈরি করা হয়েছিল যেখানে আপনাকে পাঠ্যের সম্পূর্ণ ব্লক থেকে বাঁচতে হবে।
বেন বার্নস

4
আমি ভুল হতে পারি, তবে আমি কেবল বিবেচনা করি না যে এটি আপনার সমাধান না হওয়ায় এটি কাজ করার কথা। এছাড়াও আপনাকে সমস্যাটি মনে রাখতে হবে একটি হিউরিস্টিক সমাধানের জন্য যেহেতু একটি সুস্পষ্ট উপায় নেই, যেমন পোস্টের বিভিন্ন সমাধান দ্বারা স্পষ্ট করে দেওয়া হয়। শেষ অবধি, আমি সিএফকে জানি না, কোনও ডিকোডার কেবল <ম্যাসেজ> << ম্যাসেজ> অভ্যন্তরীণ পাঠ্যকে মেসেজ> ন্যূনাল </ ম্যাসেজ> এর অভ্যন্তরের পাঠ্যের সাথে সমান করে না? বার্তা>? যদি তাই হয়, তবে সিডিএটিএ কি আসলেই কোনও সমাধান?
doogle

7
আমি হ্রাস পেয়েছি কারণ এটি একটি অ্যান্টি-প্যাটার্ন। এই ক্ষেত্রে বাগটি সিএফ-তে নেই, এটি অ্যাকশনস্ক্রিপ্টে রয়েছে। যাইহোক, আপনি যাইহোক একটি ভাল পয়েন্ট উত্থাপন। আমি সিডিএটিএ এনকোডিংয়ের জন্য আমার ফিডলটিতে একটি পরীক্ষা যুক্ত করব।
বেন বার্নস

51

একটি Stringifying nullমান ActionScript স্ট্রিং দেব "NULL"। আমার সন্দেহ কেউ সিদ্ধান্ত নিয়েছে যে তা না হয়, তাই স্ট্রিং ডিকোড করতে একটি ভাল ধারণা "NULL"যেমন nullসম্ভাব্য কারণ হতে তারা ক্ষণস্থায়ী ছিল -, বিচ্ছেদ আপনি এখানে দেখতে ঘটাচ্ছে nullডাটাবেসের মধ্যে বস্তু এবং স্ট্রিং পেয়ে, যখন তারা চায়নি এটি (তাই এই ধরণের বাগটিও পরীক্ষা করে দেখুন)।


হ্যাঁ, এখানে অনেকগুলি সম্ভাবনা রয়েছে যা সঙ্কুচিত হওয়ার জন্য আরও ডিবাগিংয়ের প্রয়োজন হবে। 1) ডাব্লুএসডিএলটি কি এখানে "এনইউএলএল" এর সাথে একটি স্ট্রিং মান এবং একটি আসল নাল (বা বাদ দেওয়া) মান হিসাবে পার্থক্য করার জন্য যথেষ্ট পরিমাণে অভিব্যক্তি ব্যবহার করে? 2) যদি তাই হয় তবে ক্লায়েন্টটি কি শেষ নামটি সঠিকভাবে এনকোড করছে (স্ট্রিং হিসাবে এবং নাল আক্ষরিক নয়) 3) যদি তাই হয় তবে পরিষেবাটি কি "NULL" কে সঠিকভাবে একটি স্ট্রিং হিসাবে ব্যাখ্যা করছে, বা একে নাল মানকে জোর করছে?
পিমলটক

39

হ্যাক হিসাবে, আপনি ক্লায়েন্ট পক্ষের একটি বিশেষ পরিচালনা করার কথা বিবেচনা করতে পারেন, 'নাল' স্ট্রিংটিকে এমন কোনও কিছুর মধ্যে রূপান্তর করেন যা কখনই ঘটে না, উদাহরণস্বরূপ, XXNULLXX এবং সার্ভারে ফিরে রূপান্তর।

এটি সুন্দর নয়, তবে এটি এমন সীমানা ক্ষেত্রে সমস্যাটি সমাধান করতে পারে।


32
XXNULLXX একটি নামও হতে পারে। আপনি জানেন না। হতে পারে ইন্দোনেশিয়ার লোকের উপাধি নেই এবং প্রয়োজনের সময় তাদের আড়ক হিসাবে XXX এর একটি বৈকল্পিক ব্যবহার করুন।
জিবি

3
একই ধারণা, তবে কিছু অক্ষর (1 নাল, 1 স্মিথ) দিয়ে ডাটাবেস এবং উপস্থাপনের সমস্ত নাম আপডেট করুন। ক্লায়েন্টে সেই চরিত্রটি বন্ধ করুন। অবশ্যই এটি রেবুগের সমাধানের তুলনায় মাইট কাজ হতে পারে।
ববপল

14
@ বেনবার্নস হ্যাঁ, তবে আমি যদি আমার বাচ্চাটির নাম রাখতে চাই &#78;&#117;&#108;&#108;?
সাইরেন

@ সাইরেন্স এটি সমস্যা নয়। যদি আমার নাম "<& quot;>" হয়, তবে আমি আশা করি এটি & quot; & lt; & amp; quot; & gt; & quot; হিসাবে বলার অপেক্ষা রাখে না properly আসল সমস্যাটি এমন কোনও অ্যাপ্লিকেশনটির সাথে আচরণ করা যেমন এটি নামের জন্য একটি কালো তালিকাভুক্ত ব্যবহার করে।
মিস্টার লিস্টার

30

ঠিক আছে, আমি অনুমান করি যে এসওএপি এনকোডারটির ফ্লেক্সের প্রয়োগটি নাল মানকে ভুলভাবে সিরিয়ালাইজ করে। তাদের স্ট্রিং নুল হিসাবে সিরিয়াল করা ভাল সমাধান বলে মনে হয় না। আনুষ্ঠানিকভাবে সঠিক সংস্করণটি একটি নাল মান হিসাবে এটি প্রেরণ করবে বলে মনে হচ্ছে:

<childtag2 xsi:nil="true" />

সুতরাং "নুল" এর মান বৈধ স্ট্রিং ছাড়া আর কিছুই হবে না, যা আপনি যা খুঁজছেন ঠিক তেমনই।

আমার ধারণা আপাচি ফ্লেক্সে এটি ঠিক করা এত কঠিন হওয়া উচিত নয়। আমি একটি জিরা ইস্যু খোলার বা অ্যাপাচি-ফ্লেক্স মেলিংলিস্টের লোকদের সাথে যোগাযোগ করার পরামর্শ দেব। তবে এটি কেবল ক্লায়েন্টের দিকটি ঠিক করবে। আমি বলতে পারছি না যে কোল্ডফিউশন এইভাবে এনকোডড নাল মানগুলির সাথে কাজ করতে সক্ষম হবে।

রাদু কোটেস্কুর ব্লগ পোস্টটি কীভাবে সাবান ইউআই অনুরোধগুলিতে নাল মান প্রেরণ করা যায় তা দেখুন


6
এখানে ভাল তথ্য আছে, তাই আমি হ্রাস করব না, তবে আমি বুঝতে পেরেছিলাম এটি একটি মন্তব্য করার মতো। ডিফল্টরূপে, XMLEncoder.as এলিমেন্টে nullসেট xsi:nil="true"করে প্রকৃত মানটিকে যথাযথভাবে এনকোড করবে । সমস্যাটি আসলে অ্যাকশনস্ক্রিপ্ট XMLটাইপ নিজেই (এনকোডার নয়) স্ট্রিং পরিচালনা করে "null"
বেন বার্নস

22

এটা একটা kludge, কিন্তু অভিমানী সেখানে একটা ন্যূনতম দৈর্ঘ্য SEARCHSTRING2 অক্ষর, উদাহরণস্বরূপ, দ্বিতীয় চরিত্র এ প্যারামিটার এবং এটি দুটি প্যারামিটার হিসাবে পরিবর্তে পাস: এবং তাদের ফিরে একসঙ্গে যখন ডাটাবেসের সাথে ক্যোয়ারী নির্বাহ।substringSEARCHSTRINGSEARCHSTRING1 ("Nu")SEARCHSTRING2 ("ll"). Concatenate


32
সিডিএটিএ এই ধরণের ক্লাডেজ এড়ানোর জন্য এক্সএমএল অনুচ্ছেদে যুক্ত করা হয়েছিল।
বেন বার্নস

8
সিডিএটিএ সহ "নুল" এড়াতে হবে না, এক্সএমএলে নাল কীওয়ার্ডের মতো কোনও জিনিস নেই।
উপস্থাপিত

6
@ সপ্তাহের সাথে একমত আমি বুঝতে পারছি না কেন সিডিএটিএ নিয়ে এই সমস্ত কথা আছে। এক্সডিএমএল-এর বিশেষ অর্থ রয়েছে এমন অক্ষরগুলি থেকে বাঁচতে কেবল সিডিএটিএই দরকারী। মধ্যে একটিও না: n, u, lXML- এর বিশেষ শব্দার্থবিদ্যা আছে। "নুল" এবং "<! [সিডিটিএ [নুল]]" এক্স এক্সএমএল পার্সারের মতো।
জেসনকারন

9
@ জেসোনকার্নস - আমি 100% এর সাথে সম্মত হই যে স্ট্রিং / পাঠ্য নোড সম্পর্কে বিশেষ কিছু হওয়া উচিত নয় NULL, তবে পেডেন্টিক হতে হবে <blah>null</blah>এবং <blah><![CDATA[null]]>এক্সএমএল পার্সারের মতো নয়। তাদের একই ফলাফল উত্পন্ন করা উচিত , তবে তাদের পরিচালনা করার জন্য যুক্তির প্রবাহটি ভিন্ন। এই প্রভাবটিই আমরা ফ্লেক্স এক্সএমএল বাস্তবায়নের ক্ষেত্রে বাগের মতো কাজ হিসাবে ব্যবহার করছি। আমি অন্যান্য পদ্ধতির পক্ষে এটি সমর্থন করি কারণ এটি পাঠ্যের পাঠযোগ্যতা সংরক্ষণ করে এবং অন্যান্য পার্সারগুলির জন্য কোনও পার্শ্ব প্রতিক্রিয়া নেই।
বেন বার্নস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.