Expat C API¶
ماژول xml.parsers.expat توابع منتخب Expat را از طریق کپسول expat_CAPI خود در معرض نمایش میگذارد. این امر به ماژولهای توسعهای اجازه میدهد تا از همان کتابخانهی Expat پایتون استفاده کنند. این رابط در pyexpat.h اعلان میشود که باید پس از سرآیند expat.h مربوط به Expat گنجانده شود.
-
PyExpat_CAPSULE_NAME¶
نام کپسول حاوی Expat C API:
"pyexpat.expat_CAPI". این مقدار را بهPyCapsule_Import()ارسال کنید تا اشارهگری به یکPyExpat_CAPIبه دست آورید.
-
PyExpat_CAPI_MAGIC¶
رشتهای که چیدمان
PyExpat_CAPIرا مشخص میکند. پیش از استفاده از اشارهگرهای تابع در ساختار، بررسی کنید که عضوmagicآن با استفاده ازstrcmp()با این رشته برابر باشد و عضوsizeآن حداقل sizeof(struct PyExpat_CAPI) باشد.
-
struct PyExpat_CAPI¶
جدول اشارهگرهای تابع صادرشده توسط
xml.parsers.expat. کپسول مالک این ساختار است: آن را به عنوان فقطخواندنی در نظر بگیرید و آزاد نکنید. در حالی که از جدول استفاده میکنید، یک ارجاع قوی به کپسول نگه دارید.پیش از استفاده از اشارهگرهای تابع، فیلدهای سازگاری را همانطور که تحت
PyExpat_CAPI_MAGICتوصیف شده است بررسی کنید.-
char *magic¶
شناسهی رابط، روی
PyExpat_CAPI_MAGICتنظیم شده است.
-
int size¶
اندازهی ساختار بر حسب بایت، که توسط ماژول
xml.parsers.expatکه کپسول را ایجاد کرده است رویsizeof(struct PyExpat_CAPI)تنظیم شده است.
-
int MAJOR_VERSION¶
-
int MINOR_VERSION¶
-
int MICRO_VERSION¶
شمارههای نسخهی اصلی، فرعی و ریز کتابخانهی Expat که توسط
xml.parsers.expatاستفاده میشود.
-
void (*SetUnknownEncodingHandler)(XML_Parser parser, XML_UnknownEncodingHandler handler, void *encodingHandlerData)¶
اشارهگر به XML_SetUnknownEncodingHandler. هندلر ممکن است هنگام خطا یک استثنای پایتون تنظیم کند. فراخواننده باید پس از تجزیه، وجود استثنای پایتون را بررسی کند.
-
int (*DefaultUnknownEncodingHandler)(void *encodingHandlerData, const XML_Char *name, XML_Encoding *info)¶
هندلر کدگذاری نامشخص پایتون برای Expat، که با
XML_SetUnknownEncodingHandlerاستفاده میشود. این هندلر از رجیستری کُدک پایتون برای پر کردن info استفاده میکند. آرگومان encodingHandlerData استفاده نمیشود. فراخوانی این هندلر نیازمند یک وضعیت نخ متصل است.
اشارهگرها به توابع متناظر Expat، یا
NULLاگر در نسخهی Expat مورد استفادهیxml.parsers.expatموجود نباشند، در زیر فهرست شدهاند.نام اعضا پیشوند
XML_را حذف میکند؛ برای مثال،SetHashSaltتابعXML_SetHashSaltمتعلق به Expat را در معرض نمایش میگذارد. برای اطلاع از رفتار آنها و حداقل نسخهی Expat که در آن ظاهر میشوند، به مرجع API اکسپت مراجعه کنید.-
const XML_LChar *(*ErrorString)(enum XML_Error code)¶
-
enum XML_Error (*GetErrorCode)(XML_Parser parser)¶
-
XML_Size (*GetErrorColumnNumber)(XML_Parser parser)¶
-
XML_Size (*GetErrorLineNumber)(XML_Parser parser)¶
-
enum XML_Status (*Parse)(XML_Parser parser, const char *s, int len, int isFinal)¶
-
XML_Parser (*ParserCreate_MM)(const XML_Char *encoding, const XML_Memory_Handling_Suite *memsuite, const XML_Char *namespaceSeparator)¶
-
void (*ParserFree)(XML_Parser parser)¶
-
void (*SetCharacterDataHandler)(XML_Parser parser, XML_CharacterDataHandler handler)¶
-
void (*SetCommentHandler)(XML_Parser parser, XML_CommentHandler handler)¶
-
void (*SetDefaultHandlerExpand)(XML_Parser parser, XML_DefaultHandler handler)¶
-
void (*SetElementHandler)(XML_Parser parser, XML_StartElementHandler start, XML_EndElementHandler end)¶
-
void (*SetNamespaceDeclHandler)(XML_Parser parser, XML_StartNamespaceDeclHandler start, XML_EndNamespaceDeclHandler end)¶
-
void (*SetProcessingInstructionHandler)(XML_Parser parser, XML_ProcessingInstructionHandler handler)¶
-
void (*SetUserData)(XML_Parser parser, void *userData)¶
-
void (*SetStartDoctypeDeclHandler)(XML_Parser parser, XML_StartDoctypeDeclHandler start)¶
-
enum XML_Status (*SetEncoding)(XML_Parser parser, const XML_Char *encoding)¶
-
int (*SetHashSalt)(XML_Parser parser, unsigned long hash_salt)¶
-
XML_Bool (*SetReparseDeferralEnabled)(XML_Parser parser, XML_Bool enabled)¶
-
XML_Bool (*SetAllocTrackerActivationThreshold)(XML_Parser parser, unsigned long long activationThresholdBytes)¶
-
XML_Bool (*SetAllocTrackerMaximumAmplification)(XML_Parser parser, float maxAmplificationFactor)¶
-
XML_Bool (*SetBillionLaughsAttackProtectionActivationThreshold)(XML_Parser parser, unsigned long long activationThresholdBytes)¶
-
XML_Bool (*SetBillionLaughsAttackProtectionMaximumAmplification)(XML_Parser parser, float maxAmplificationFactor)¶
-
XML_Bool (*SetHashSalt16Bytes)(XML_Parser parser, const uint8_t entropy[16])¶
به مرجع API اکسپت مراجعه کنید.
-
char *magic¶