برای مدت طولانی، استاندارد استفاده از ساختار "برای تگ های داخلی، نقل قول ها" را برای نشان دادن ویژگی ها هنگام درج نقل قول های معمولی در متن HTML تجویز می کند.

با این حال، من هنوز به مرورگری برخورد نکرده‌ام که علامت ساده «خارج از هر تگ» را به عنوان علامت نقل قول نشان ندهد. پس همکاران عزیز به من بگویید شاید استفاده از «برچسب‌های بیرونی صرفاً خسته‌کننده‌ای است که کسی به آن نیاز ندارد؟» آیا می توانید با آرامش و بدون تعارف بنویسید؟ به خصوص در متن هایی که گیومه های زیادی وجود دارد و رعایت قوانین سختگیرانه طراحی (در خصوص استفاده صحیح از گیومه های ملی) بی ربط است.

IMHO، بسیاری از مردم این کار را انجام می دهند ... اما سوال کاملاً روشن نیست: اگر می دانید که طبق استانداردها باید نقل قول ها را به صورت "" بنویسید، اما تنبل است، با وجود این واقعیت که بسیاری از سایت ها اینطور کار می کنند، پس چه آیا انتظار دارید بشنوید؟ فکر می کنم در مورد آن است، هیچ کس نمی داند که آیا نمایش نقل قول ها در نسخه های جدید مرورگرها پشتیبانی می شود یا خیر، بنابراین به احتمال زیاد می توانیم یک توصیه واضح ارائه دهیم: اگر در آینده نمی خواهید مشکلی ایجاد شود، 100٪ - به استانداردها پایبند باشید :) اما شما قبلاً این را می دانید یا منتظر تأیید هستید: بله ، خسته کننده است همین ، فراموش کنید و تا 10 سال دیگر همه چیز همانگونه خواهد بود ، من (مایکروسافت ، موزیلا و غیره. ) ضمانت؟

لین "مرد قهوه" [پرونده]
بله، اتفاقا... اکنون خواندن آن مفید است، در هیچ کجا گفته نشده است که علامت نقل قول باید به شکل نمایش داده شود "
http://www2.stack.ru/~julia/HTML401/charset.html:

برخی از نویسندگان از یک مرجع موجودیت کاراکتر """ برای رمزگذاری نمونه هایی از گیومه های دوتایی (") استفاده می کنند، زیرا این کاراکتر می تواند برای جداسازی مقادیر ویژگی استفاده شود.

در مورد این واقعیت که شما باید از نهادی که فقط در مورد و & می گوید استفاده کنید:

اگر نویسنده بخواهد کاراکتر "" (کد اعشاری اسکی 62) را در متن قرار دهد.

برای جلوگیری از سردرگمی با ارجاعات کاراکتر (علامت شروع یک مرجع کاراکتر)، باید از مرجع "&" (کد اعشاری ASCII 38) به جای کاراکتر "&" استفاده شود. علاوه بر این، مرجع "&" نیز باید در مقادیر ویژگی استفاده شود، زیرا ارجاعات کاراکتر در مقادیر ویژگی CDATA مجاز است.

اما من فقط انتظار چیزی شبیه به پاسخ لین را دارم: اینکه در واقع چنین استانداردی وجود ندارد. حتی به ذهنم هم نمی رسید - اطلاعات من از کتاب های درسی محبوب است و به دلایلی که "همه این کار را انجام می دهند."

یا گزینه دیگری: اما اگر از استانداردهای جدیدی پیروی کنید که من در تمرین خود با آنها روبرو نشده ام - مانند xhtml (دقیقاً xhtml را بررسی کردم) ، این ترفند کار نخواهد کرد. بنابراین نیازی به ایجاد مشکل در حمل و نقل کدهای HTML نوشته شده نیست.

یا در نهایت: چگونه خودتان این کار را انجام می دهید؟

و به هر حال، سوال مشابهی را مطرح می کند. سند بالا می گوید "برای جلوگیری از سردرگمی". اما سردرگمی تنها در صورتی امکان‌پذیر است که یکی از کدهای ارائه‌شده دنبال شود. اگر مثلاً یک URL مانند "..../script?A=1&B=2" باشد چه؟ اگر اشتباهاً این URL را به عنوان href (که البته در حین آزمایش به درستی کار می‌کند) را مشخص کنم، خطری را تهدید می‌کنم؟ هر چیزی غیر از وضعیت بسیار بعید که در 10 سال (زمانی که سایت قدیمی است یا قبلاً ده بار بازنویسی شده است) یک موجودیت با نام عجیب &B بدون نام نهایی ظاهر شود. ? به عبارت دیگر چقدر باید همه این موارد را با دقت بررسی کرد؟

دانیال، اگر مطمئن هستید که با کدهای موجود مشکلی ندارید، می توانید به سادگی & بنویسید. اگر کد جدیدی در آینده ظاهر شود، من فکر می‌کنم که صراحتاً در مشخصات HTML 4.01 اعلام نخواهد شد، بنابراین نباید بر سند معمولی اعلام شده تأثیر بگذارد. یا انتظار دارید با تغییر طرح سند از استانداردهای آینده پشتیبانی کنید؟

دانیل آلیوسکی [پرونده]
در XML، یک علامت نقل قول معمولی به عنوان متن نیز مشکلی ایجاد نمی کند (البته در XHTML). نقل قول های IMHO معمولاً فقط به یک دلیل به "" ترجمه می شوند - شما نمی خواهید هنگام جایگزینی در XML/HTML/XHTML دو تابع برای تبدیل متن به فرم ایمن بنویسید.

  • ترجمه
  • آموزش

تزریق‌های SQL، جعل درخواست‌های بین سایتی، XML خراب... چیزهای ترسناک و ترسناکی که همه ما دوست داریم از آنها محافظت کنیم، اما فقط می‌خواهیم بدانیم چرا این همه اتفاق می‌افتد. این مقاله مفهوم اساسی پشت آن را توضیح می دهد: رشته ها و مدیریت رشته ها در رشته ها.

مشکل اصلی فقط متن است. بله، فقط متن - مشکل اصلی همین است. تقریباً همه چیز در یک سیستم کامپیوتری با متن نمایش داده می شود (که به نوبه خود با بایت نشان داده می شود). آیا ممکن است که برخی از متون برای رایانه در نظر گرفته شده باشد، در حالی که برخی دیگر برای افراد در نظر گرفته شده است. اما هر دوی آنها همچنان متن باقی می مانند. برای اینکه بفهمید در مورد چه چیزی صحبت می کنم، در اینجا یک مثال کوچک وجود دارد:
Homo Sapiens فرض کنید، متن انگلیسی وجود دارد که من نمی خواهم آن را به روسی ترجمه کنم
شما آن را باور نخواهید کرد: این متن است. برخی از مردم آن را XML می نامند، اما این فقط متن است. ممکن است برای نشان دادن به معلم زبان انگلیسی مناسب نباشد، اما همچنان فقط متن است. می توانید روی پوستر چاپ کنید و با آن به میتینگ بروید، می توانید در نامه ای به مادرتان بنویسید ... متن است.

با این حال، ما می خواهیم قسمت های خاصی از این متن برای رایانه ما معنی داشته باشد. ما می خواهیم کامپیوتر بتواند نویسنده متن و خود متن را جداگانه استخراج کند تا بتوانیم کاری با آن انجام دهیم. برای مثال موارد بالا را به این تبدیل کنید:
فرض کنید، متن انگلیسی وجود دارد که من نمی‌خواهم توسط هومو ساپینس به روسی ترجمه شود
کامپیوتر چگونه می داند چگونه این کار را انجام دهد؟ خب، چون خیلی راحت قسمت‌های خاصی از متن را با کلمات خاص در پرانتز خنده‌دار، مانند و. از آنجایی که ما این کار را انجام دادیم، می‌توانیم برنامه‌ای بنویسیم که به دنبال این بخش‌های خاص باشد، متن را استخراج کند و از آن برای اختراع خودمان استفاده کند.

به عبارت دیگر، ما از قوانین خاصی در متن خود استفاده کردیم تا معنای خاصی را نشان دهیم که شخص دیگری با پیروی از همان قوانین می تواند از آن استفاده کند.
خوب، درک این موضوع چندان سخت نیست. اگر بخواهیم از این پرانتزهای خنده دار استفاده کنیم که معنای خاصی در متن ما دارند، اما بدون استفاده از این معنی؟.. چیزی شبیه به این:
انسان خردمند< n and y >
شخصیت های "" چیز خاصی نیستند. آنها می توانند به طور قانونی در هر مکان و در هر متنی مانند مثال بالا استفاده شوند. اما در مورد ایده ما از کلمات خاص، مانند؟ آیا این بدان معنی است که آن نیز نوعی کلمه کلیدی است؟ در XML - شاید بله. یا شاید نه. این مبهم است. از آنجایی که کامپیوترها در برخورد با ابهامات خیلی خوب نیستند، اگر ما خودمان i's را نقطه نزنیم و ابهامات را حل نکنیم، ممکن است نتیجه غیرمنتظره ای به همراه داشته باشد.
این معضل را می توان با جایگزینی نمادهای مبهم با چیزی غیر مبهم حل کرد.
ریاضی پایه هومو ساپینس به ما می گوید که اگر x< n and y >n، x نمی تواند بزرگتر از y باشد.
حال، متن باید کاملاً بدون ابهام شود. "".
تعریف فنی این است محافظ، از شخصیت های خاص زمانی فرار می کنیم که نمی خواهیم معنای خاص خود را داشته باشند.
فرار |iˈskāp| [بدون ابج. ] آزاد شدن [ با obj. ] متوجه نشدن / به یاد نیاوردن [...] [ با obj. ] IT: دلیلی برای تفسیر متفاوت [...]
اگر کاراکترها یا دنباله های خاصی از کاراکترها در یک متن معانی خاصی داشته باشند، پس باید قوانینی وجود داشته باشد که نحوه برخورد با موقعیت هایی را مشخص کند که در آن کاراکترها باید بدون استناد به معنای خاص آنها استفاده شوند. یا به عبارت دیگر فرار به این سوال پاسخ می دهد: "اگر این نمادها خیلی خاص هستند، چگونه می توانم از آنها در متن خود استفاده کنم؟".
همانطور که در مثال بالا می بینید، علامت (&) نیز یک کاراکتر خاص است. اما اگر بخواهیم بنویسیم چه می شود


اگر کاربران شما خوب و مهربان باشند، نقل قول هایی از فیلسوفان قدیمی ارسال می کنند و پیام ها چیزی شبیه به این خواهند بود:

ارسال شده توسط افلاطون در 2 ژانویه 15:31

گفته شده است که گفته ام "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.


اگر کاربران باهوش باشند، احتمالاً در مورد ریاضی صحبت خواهند کرد و پیام ها به این صورت خواهد بود:

ارسال شده توسط پاسکال در 23 نوامبر 04:12

ریاضیات پایه به ما می گوید که اگر x< n and y >n، x نمی تواند بزرگتر از y باشد.


هوم... بازم این هتک حرمت براکت های ما. خوب، از نقطه نظر فنی ممکن است مبهم باشند، اما مرورگر ما را برای آن می بخشد، درست است؟


باشه، بس کن، چه جهنمی؟ فلان شوخی تگ های جاوا اسکریپت را به انجمن شما معرفی کرده است؟ هر کسی که به این پیام در سایت شما نگاه می کند اکنون اسکریپت هایی را در زمینه سایت شما دانلود و اجرا می کند که می تواند چه کاری انجام دهد. و این خوب نیست.

به معنای واقعی کلمه در موارد بالا، ما می خواهیم به نوعی به DB یا مرورگر خود بگوییم که این فقط متن است، کاری با آن انجام ندهید! به عبارت دیگر، ما می خواهیم معانی خاص همه کاراکترها و کلمات کلیدی خاص را از هر اطلاعاتی که کاربر ارائه می دهد، "حذف" کنیم، زیرا به او اعتماد نداریم. چه باید کرد؟

چی؟ چی میگی پسر اوه، شما می گویید، "سپر"؟ و کاملا حق با شماست، یک کوکی بردارید!
اگر قبل از ادغام داده های کاربر با کوئری، escape را اعمال کنیم، مشکل حل می شود. برای پرس و جوهای پایگاه داده ما چیزی شبیه به:
$name = $_POST["name"]; $name = mysql_real_escape_string ($name); $query = "انتخاب شماره_تلفن از کاربران WHERE name = "$name""; $result = mysql_query ($query);
فقط یک خط کد، اما اکنون دیگر هیچکس نمی تواند پایگاه داده ما را "هک" کند. بیایید دوباره ببینیم که پرس‌وجوهای SQL بسته به ورودی کاربر، چگونه به نظر می‌رسند:
الکس
انتخاب شماره تلفن از کاربران WHERE name = "Alex"
مک دونالد
شماره_تلفن را از کاربران انتخاب کنید WHERE name = "Mc\"Donalds"
جو"؛ کاربران جدول DROP؛ --
SELECT phone_number از کاربران WHERE name = "Joe\"; کاربران DROP TABLE. --"
mysql_real_escape_string بی رویه یک اسلش رو به جلو در مقابل هر چیزی که ممکن است معنای خاصی داشته باشد قرار می دهد.


ما تابع htmlspecialchars را قبل از خروجی بر روی تمام داده های کاربر اعمال می کنیم. حالا پیام آفت به این صورت است:

ارسال شده توسط JackTR در 18 جولای، 12:56


توجه داشته باشید که مقادیر دریافت شده از کاربران در واقع "فاسد" نیستند. هر مرورگری این را به‌عنوان HTML تجزیه می‌کند و همه چیز را روی صفحه به شکل صحیح نمایش می‌دهد.

که ما را به... همه موارد بالا نشان می‌دهد که یک مشکل مشترک در بسیاری از سیستم‌ها وجود دارد: متن در متن اگر قرار نیست کاراکترهای خاصی داشته باشد باید حذف شود. هنگام قرار دادن مقادیر متن در SQL، باید طبق قوانین SQL از آنها خارج شوند. هنگام قرار دادن مقادیر متن در HTML، باید طبق قوانین HTML از آنها فرار کرد. هنگام قرار دادن مقادیر متن در (نام فناوری)، باید طبق قوانین (نام فناوری) از آنها فرار کرد. این همه است. برای کامل‌تر شدن، البته راه‌های دیگری برای برخورد با ورودی کاربر وجود دارد که ممکن است حاوی کاراکترهای خاص باشد یا نباشد:
  • اعتبار سنجی
    می توانید بررسی کنید که آیا ورودی کاربر با برخی از مشخصات داده شده مطابقت دارد یا خیر. اگر نیاز به وارد کردن شماره دارید و کاربر چیز دیگری را وارد می کند، برنامه باید به کاربر اطلاع داده و ورودی را لغو کند. اگر همه اینها به درستی سازماندهی شده باشد، پس هیچ خطری برای گرفتن "کاربران جدول DROP" جایی که کاربر قرار بود "42" را وارد کند وجود ندارد. این برای اجتناب از تزریق HTML/SQL چندان کاربردی نیست، زیرا... اغلب لازم است متنی با فرمت آزاد را بپذیرید که ممکن است حاوی ترفندهایی باشد. به طور معمول، اعتبار سنجی علاوه بر سایر معیارها استفاده می شود.
  • پاکسازی
    همچنین می‌توانید «بی سر و صدا» هر نمادی را که خطرناک می‌دانید حذف کنید. به عنوان مثال، به سادگی هر چیزی که شبیه یک تگ HTML است را حذف کنید تا از اضافه شدن به انجمن خود جلوگیری کنید. مشکل این است که می توانید بخش های کاملا قانونی متن را حذف کنید.
    دستورات SQL آماده شده
    توابع ویژه ای وجود دارد که آنچه را که ما می خواستیم انجام می دهند: باعث می شود پایگاه داده تفاوت های بین خود پرس و جوی SQL و اطلاعات ارائه شده توسط کاربران را درک کند. در PHP آنها چیزی شبیه به این هستند:
    $stmt = $pdo->prepare("انتخاب شماره_تلفن از کاربران WHERE name = ?"); $stmt->execute($_POST["name"]);
    در این حالت، ارسال در دو مرحله انجام می شود که به وضوح بین درخواست و متغیرها تمایز قائل می شود. پایگاه داده این توانایی را دارد که ابتدا ساختار درخواست را درک کرده و سپس آن را با مقادیر پر کند.

  • در دنیای واقعی، همه اینها با هم برای سطوح مختلف حفاظت استفاده می شوند. همیشه باید از اعتبارسنجی استفاده کنید تا مطمئن شوید که کاربر داده های صحیح را وارد می کند. سپس می توانید (اما لازم نیست) داده های وارد شده را اسکن کنید. اگر کاربر به وضوح سعی دارد اسکریپت را به شما بفروشد، می توانید به سادگی آن را حذف کنید. سپس، همیشه، همیشه باید از داده های کاربر قبل از قرار دادن آن در یک پرس و جوی SQL فرار کنید (همین مورد برای HTML نیز صدق می کند).

هدف این درس:

  • BI باید فرمت ضبط XML را بداند
  • BI باید بتواند سندی را در قالب کد XML ترسیم کند
  • BI باید انواع داده ها را بشناسد و بتواند از آنها استفاده کند
  • توجه: XML آنقدر که در این آموزش توضیح داده ایم مختصر نیست. ما فقط آن دسته از ویژگی های زبان XML را در نظر می گیریم که در سیستم ODA-TM استفاده می شود.

    XML. مبانی

    XML برای ساختار، ذخیره و انتقال اطلاعات ایجاد شده است.

    مثال زیر، "یادداشت از یک دوست به یک دوست"، فرم XML دارد:

    یادآوری نیکولای ایوان امیدوارم جلسه ما را فراموش نکرده باشید

    از نظر بصری، این کد را می توان به شکل زیر نشان داد (شکل 1.).

    کد دارای یک فرستنده و یک گیرنده اطلاعات است، همچنین دارای سرصفحه و بدنه پیام است.

    این به معنای پردازش، ارسال و نمایش توسط شخصی است.

    اما همچنان، این سند XML هیچ کاری انجام نمی دهد. این فقط اطلاعاتی است که در برچسب ها پیچیده شده است.

    XML - درخت

    XML ساختار درختی دارد. سند همیشه یک عنصر ریشه دارد (دستورالعمل ربطی به درخت ندارد). یک عنصر درخت همیشه دارای فرزندان و اجداد است، به جز عنصر ریشه که اجدادی ندارد و عناصر بن بست (برگ درختان) که نسلی ندارند. هر عنصر درخت در یک سطح تودرتوی خاص قرار دارد (از این پس به عنوان "سطح" نامیده می شود). عناصر در همان سطح دارای عناصر قبلی و بعدی هستند.

    برچسب های خود را با استفاده از XML ایجاد کنید

    هیچ قالب استانداردی برای ایجاد برچسب ها (توصیف کننده ها، عناصر) وجود ندارد.

    XML هیچ برچسب از پیش تعریف شده ای ندارد.

    • XML به نویسنده اجازه می دهد تا تگ های خود و ساختار سند خود را تعریف کند.
    • XML برای انتقال داده ها استفاده می شود
    • XML ابزاری مستقل از نرم افزار و سخت افزار برای انتقال اطلاعات است.
    • XML اکنون به اندازه HTML برای وب مهم است
    • XML رایج ترین ابزار برای انتقال داده ها بین برنامه های مختلف است
    • XML در بسیاری از جنبه های توسعه وب، اغلب برای ساده سازی ذخیره سازی و تبادل داده ها استفاده می شود
    نحو XML

    سینتکس قوانین XML بسیار ساده و منطقی است

    • همه عناصر XML باید دارای یک تگ بسته شوند
    • عناصر XML باید به درستی تو در تو باشند (یکی در داخل دیگری و در هیچ موردی متقاطع نشوند)
    • اسناد XML باید یک عنصر ریشه داشته باشند (اسناد XML باید دارای یک عنصر باشد که والد همه عناصر دیگر باشد. این عنصر عنصر ریشه نامیده می شود.
    • مقدار ویژگی XML باید در علامت نقل قول قرار داده شود.
    نظرات

    اگر می خواهید بخشی از یک سند XML را برای برنامه تحلیلگر کاملاً «غیرقابل مشاهده» کنید، می توانید با نوشتن کاراکترهای جلوی آن، آن را به عنوان یک نظر قالب بندی کنید.< !-- , а после него - символы -->با دو خط تیره پشت سر هم

    مثلا:

    < !-- Это комментарий -->

    برنامه تحلیلگر از کل این ساختار صرفنظر می کند بدون اینکه حتی به آن نگاه کند.

    این نحو نظر دو محدودیت بر آن اعمال می کند:

    • شما نمی توانید دو خط فاصله پشت سر هم در یک نظر بنویسید.
    • یک نظر را نمی توان با خط فاصله پایان داد.
    عناصر XML

    یک عنصر XML همه چیز از تگ شروع عنصر تا تگ پایان آن است.

    عنصر ممکن است شامل موارد زیر باشد:

    • عناصر دیگر
    • متن
    • ویژگی های
    • یا ترکیبی از تمام موارد بالا...
    قوانین نامگذاری XML

    عناصر XML باید از این قوانین نامگذاری پیروی کنند:

    • نام ها می توانند شامل حروف، اعداد و سایر نمادها باشند
    • نام ها نمی توانند با یک عدد یا علامت نگارشی شروع شوند
    • نام ها نمی توانند دارای فاصله باشند
    ویژگی های

    ویژگی ها اطلاعات بیشتری را در مورد عناصری که بخشی از داده ها نیستند ارائه می دهند.

    در مثال زیر، نوع فایل مربوط به داده ها نیست، اما برای نرم افزاری که ممکن است عنصر را دستکاری کند، مهم است:

    computer.gif

    ویژگی های XML باید در گیومه محصور شوند

    مقادیر مشخصه باید همیشه در گیومه باشد. می توان از نقل قول های تک یا دوگانه استفاده کرد. مثال: برای تعیین جنسیت یک فرد، عنصر را می توان به صورت زیر نوشت:

    اگر مقدار مشخصه خود دارای گیومه های دوگانه باشد، می توانید از نقل قول های تکی مانند این مثال استفاده کنید:

    یا می توانید از اشیاء کاراکتر استفاده کنید: &&

    چند نمونه از استفاده از نوع داده Date

    تاریخ به عنوان یک ویژگی

    یادآوری Tove Jani این آخر هفته منو فراموش نکن!

    تاریخ به عنوان عنصر

    10/01/2008 یادآوری Tove Jani این آخر هفته مرا فراموش نکنید!

    تاریخ به عنوان یک عنصر توسعه یافته

    01/10/2008 یادآوری Tove Jani این آخر هفته مرا فراموش نکنید!

    ویژگی های فراداده

    از این شناسه ها می توان برای تعریف عناصر XML استفاده کرد.

    مثال:

    یادآوری Tove Jani این آخر هفته مرا فراموش نکنید! Jani Tove Re: یادآوری

    داده های مربوط به داده ها باید به عنوان ویژگی ها و خود داده ها باید به عنوان عناصر ذخیره شوند.

    XML. نوع داده انواع ساده داخلی تاریخ و زمان
    • dateTime حاوی تاریخ و زمان در قالب است CCYY-MM-DTh:mm:ss
    • مدت - نشان دهنده مدت زمانی است که بر حسب روز، ساعت، دقیقه و ثانیه میلادی بیان می شود.

    به عنوان مثال: رکورد P1Y2M3DT10H30M45Sیعنی یک سال (1Y)، دو ماه (2M)، سه روز (3DT)، ده ساعت (10H)، سی دقیقه (30M) و 45 ثانیه (45S).

    ورودی را می توان به اختصار P120M به معنای 120 ماه و T120M به معنای 120 دقیقه نامید.

    • زمان شامل زمان در قالب عادی است hh:mm:ss
    • تاریخ حاوی تاریخ در قالب است CCYY-MM-DD
    • gYearMonth سال و ماه را در قالب اختصاص می دهد CCYY-MM
    • gYear به معنای سال در قالب است CCYY
    • gMonthDay شامل ماه و روز در قالب است MM-DD
    • gDay روز ماه در قالب DD
    • ماه gMonth در قالب MM
    رشته های کاراکتر

    رشته نوع کاراکتر اصلی است.

    یک رشته کاراکتر به عنوان دنباله ای از کاراکترهای یونیکد، از جمله کاراکترهای Space، Tab، Carriage return و feed line.

    • normalizedString - یک نوع فرعی از نوع - اینها رشته هایی هستند که حاوی فیدهای خط "\n"، حمل "\r" و برگه های افقی "\t" نیستند.
      • token - یک نوع فرعی از نوع normalizedString - خیر، به جز فضاهای پیشرو و انتهایی و چندین فاصله متوالی.
        • زبان - زیرنوع رمز، تعریف شده برای ثبت نام یک زبان طبق توصیه RFC 1766، به عنوان مثال ru, en, de, fr.
        • NMTOKEN یک زیرنوع توکن است که فقط در ویژگی ها برای ثبت مقادیر شمارش شده آنها استفاده می شود.
        • نام - یک زیرگروه از رمز تشکیل شده از نام های XML - دنباله ای از حروف، اعداد، خط تیره، نقطه، دو نقطه، زیرخط، که با یک حرف شروع می شود (به جز دنباله حروف رزرو شده X، x، M، m، L، lدر هر ترکیبی از موارد) یا زیرخط. نام هایی که با یک رشته شروع می شوند xmlتوسط خود مشخصات XML استفاده می شود.
          • NCName یک نوع فرعی از نام است که حاوی دو نقطه نیست. سه نوع زیر تعریف شده است: ID، IDREF، ENTITY
    انواع باینری
    • بولن - باینری، منطقی. مقادیر را می پذیرد: True یا False (1 یا 0)
    • base64Binary - اعداد صحیح باینری کدگذاری شده Base64
    • hexBinary - اعداد صحیح باینری به شکل هگزا دسیمال بدون هیچ کاراکتر اضافی
    اعداد واقعی
    • اعشاری اعداد واقعی هستند که با یک نقطه ثابت نوشته می شوند: 123.45، -0.48747798، و غیره.
    • انواع دوبل و شناور مطابق با استاندارد IEEE754-85، نوشته شده با نقطه ثابت یا شناور هستند.
    تمام اعداد
    • عدد صحیح - نوع عدد صحیح پایه شامل اعداد با مرتبه صفر است که به عنوان یک نوع فرعی درک می شود اعشاری
    • شماره - یک عدد را تعریف می کند (بدون محدودیت در تعداد ارقام). ممکن است شامل علامت، کسر و توان باشد. ارزش ها تغییر می کند

    از 1.7976931348623157E+308 تا 2.2250738585072014E-308

    آیا یک کاراکتر فرار برای نقل قول دوگانه در xml وجود دارد؟ من می خواهم یک برچسب مانند:

    اما اگر " را بگذارم، به این معنی است که خط تمام شده است. من به چیزی مانند این نیاز دارم (c++):

    Printf(" نقل قول = \" ");

    آیا شخصیتی وجود دارد که برای فرار از آن باید قبل از نقل قول مضاعف نوشته شود؟

    پاسخی جدید و بهبود یافته به یک سوال قدیمی و متداول...

    زمان فرار از نقل قول های دوگانه در XML

    ممکن است یک نقل قول دوگانه (") ظاهر شود هیچ راهی نیست :

      در محتوای متنی XML:

      گفت: از من نقل نكن.

      در ویژگی های XML که با گیومه های منفرد جدا شده اند ("):

      توجه: فرار به نقل قول های تکی (") نیز نیازی به فرار ندارد:

    نقل قول دوگانه (") باید سپر شود :

      در ویژگی های XML که با دو نقل قول از هم جدا شده اند:

    خط پایین

    نقل قول دوگانه (") باید فقط در زمینه های بسیار محدود به عنوان "در XML" حذف شود.

    اگر فقط نیاز دارید چیزی را به سرعت امتحان کنید، در اینجا یک راه حل سریع و کثیف وجود دارد. از نقل قول های تکی برای مقدار مشخصه استفاده کنید:

    در C++ می توانید از EscapeXML ATL API استفاده کنید. این روش درستی برای مدیریت کاراکترهای خاص است...

    در اینجا کاراکترهای رایجی وجود دارد که باید در XML حذف شوند و با دو نقل قول شروع می شوند:

  • نقل قول های دوگانه (") به " فرار می کنند
  • علامت (&) فرار قبل از &
  • نقل قول های تک (") به "
  • کمتر (
  • دیگران در مورد چگونگی رسیدگی به فرار خاص در این مورد پاسخ داده اند.

    پاسخ گسترده تر این است که سعی نکنید خودتان این کار را انجام دهید. از API های XML استفاده کنید - تقریباً برای هر پلتفرم برنامه نویسی مدرن تعداد زیادی وجود دارد.

    API های XML به طور خودکار مواردی از این قبیل را برای شما مدیریت می کنند و آن را ایجاد می کنند بسیاراشتباه رفتن سخت تر است مگر اینکه خودتان یک XML API بنویسید، به ندرت باید نگران چنین جزئیاتی باشید.