📄 xmlrole.c
字号:
return XML_ROLE_NONE; case XML_TOK_LITERAL: state->handler = notation4; return XML_ROLE_NOTATION_PUBLIC_ID; } return common(state, tok);}staticint notation3(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_LITERAL: state->handler = declClose; return XML_ROLE_NOTATION_SYSTEM_ID; } return common(state, tok);}staticint notation4(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_LITERAL: state->handler = declClose; return XML_ROLE_NOTATION_SYSTEM_ID; case XML_TOK_DECL_CLOSE: setTopLevel(state); return XML_ROLE_NOTATION_NO_SYSTEM_ID; } return common(state, tok);}staticint attlist0(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_NAME: case XML_TOK_PREFIXED_NAME: state->handler = attlist1; return XML_ROLE_ATTLIST_ELEMENT_NAME; } return common(state, tok);}staticint attlist1(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_DECL_CLOSE: setTopLevel(state); return XML_ROLE_NONE; case XML_TOK_NAME: case XML_TOK_PREFIXED_NAME: state->handler = attlist2; return XML_ROLE_ATTRIBUTE_NAME; } return common(state, tok);}staticint attlist2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, const ENCODING *enc){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_NAME: { static const char *types[] = { KW_CDATA, KW_ID, KW_IDREF, KW_IDREFS, KW_ENTITY, KW_ENTITIES, KW_NMTOKEN, KW_NMTOKENS, }; int i; for (i = 0; i < (int)(sizeof(types)/sizeof(types[0])); i++) if (XmlNameMatchesAscii(enc, ptr, end, types[i])) { state->handler = attlist8; return XML_ROLE_ATTRIBUTE_TYPE_CDATA + i; } } if (XmlNameMatchesAscii(enc, ptr, end, KW_NOTATION)) { state->handler = attlist5; return XML_ROLE_NONE; } break; case XML_TOK_OPEN_PAREN: state->handler = attlist3; return XML_ROLE_NONE; } return common(state, tok);}staticint attlist3(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_NMTOKEN: case XML_TOK_NAME: case XML_TOK_PREFIXED_NAME: state->handler = attlist4; return XML_ROLE_ATTRIBUTE_ENUM_VALUE; } return common(state, tok);}staticint attlist4(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_CLOSE_PAREN: state->handler = attlist8; return XML_ROLE_NONE; case XML_TOK_OR: state->handler = attlist3; return XML_ROLE_NONE; } return common(state, tok);}staticint attlist5(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_OPEN_PAREN: state->handler = attlist6; return XML_ROLE_NONE; } return common(state, tok);}staticint attlist6(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_NAME: state->handler = attlist7; return XML_ROLE_ATTRIBUTE_NOTATION_VALUE; } return common(state, tok);}staticint attlist7(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_CLOSE_PAREN: state->handler = attlist8; return XML_ROLE_NONE; case XML_TOK_OR: state->handler = attlist6; return XML_ROLE_NONE; } return common(state, tok);}/* default value */staticint attlist8(PROLOG_STATE *state, int tok, const char *ptr, const char *end, const ENCODING *enc){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_POUND_NAME: if (XmlNameMatchesAscii(enc, ptr + MIN_BYTES_PER_CHAR(enc), end, KW_IMPLIED)) { state->handler = attlist1; return XML_ROLE_IMPLIED_ATTRIBUTE_VALUE; } if (XmlNameMatchesAscii(enc, ptr + MIN_BYTES_PER_CHAR(enc), end, KW_REQUIRED)) { state->handler = attlist1; return XML_ROLE_REQUIRED_ATTRIBUTE_VALUE; } if (XmlNameMatchesAscii(enc, ptr + MIN_BYTES_PER_CHAR(enc), end, KW_FIXED)) { state->handler = attlist9; return XML_ROLE_NONE; } break; case XML_TOK_LITERAL: state->handler = attlist1; return XML_ROLE_DEFAULT_ATTRIBUTE_VALUE; } return common(state, tok);}staticint attlist9(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_LITERAL: state->handler = attlist1; return XML_ROLE_FIXED_ATTRIBUTE_VALUE; } return common(state, tok);}staticint element0(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_NAME: case XML_TOK_PREFIXED_NAME: state->handler = element1; return XML_ROLE_ELEMENT_NAME; } return common(state, tok);}staticint element1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, const ENCODING *enc){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_NAME: if (XmlNameMatchesAscii(enc, ptr, end, KW_EMPTY)) { state->handler = declClose; return XML_ROLE_CONTENT_EMPTY; } if (XmlNameMatchesAscii(enc, ptr, end, KW_ANY)) { state->handler = declClose; return XML_ROLE_CONTENT_ANY; } break; case XML_TOK_OPEN_PAREN: state->handler = element2; state->level = 1; return XML_ROLE_GROUP_OPEN; } return common(state, tok);}staticint element2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, const ENCODING *enc){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_POUND_NAME: if (XmlNameMatchesAscii(enc, ptr + MIN_BYTES_PER_CHAR(enc), end, KW_PCDATA)) { state->handler = element3; return XML_ROLE_CONTENT_PCDATA; } break; case XML_TOK_OPEN_PAREN: state->level = 2; state->handler = element6; return XML_ROLE_GROUP_OPEN; case XML_TOK_NAME: case XML_TOK_PREFIXED_NAME: state->handler = element7; return XML_ROLE_CONTENT_ELEMENT; case XML_TOK_NAME_QUESTION: state->handler = element7; return XML_ROLE_CONTENT_ELEMENT_OPT; case XML_TOK_NAME_ASTERISK: state->handler = element7; return XML_ROLE_CONTENT_ELEMENT_REP; case XML_TOK_NAME_PLUS: state->handler = element7; return XML_ROLE_CONTENT_ELEMENT_PLUS; } return common(state, tok);}staticint element3(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_CLOSE_PAREN: case XML_TOK_CLOSE_PAREN_ASTERISK: state->handler = declClose; return XML_ROLE_GROUP_CLOSE_REP; case XML_TOK_OR: state->handler = element4; return XML_ROLE_NONE; } return common(state, tok);}staticint element4(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_NAME: case XML_TOK_PREFIXED_NAME: state->handler = element5; return XML_ROLE_CONTENT_ELEMENT; } return common(state, tok);}staticint element5(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_CLOSE_PAREN_ASTERISK: state->handler = declClose; return XML_ROLE_GROUP_CLOSE_REP; case XML_TOK_OR: state->handler = element4; return XML_ROLE_NONE; } return common(state, tok);}staticint element6(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_OPEN_PAREN: state->level += 1; return XML_ROLE_GROUP_OPEN; case XML_TOK_NAME: case XML_TOK_PREFIXED_NAME: state->handler = element7; return XML_ROLE_CONTENT_ELEMENT; case XML_TOK_NAME_QUESTION: state->handler = element7; return XML_ROLE_CONTENT_ELEMENT_OPT; case XML_TOK_NAME_ASTERISK: state->handler = element7; return XML_ROLE_CONTENT_ELEMENT_REP; case XML_TOK_NAME_PLUS: state->handler = element7; return XML_ROLE_CONTENT_ELEMENT_PLUS; } return common(state, tok);}staticint element7(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_CLOSE_PAREN: state->level -= 1; if (state->level == 0) state->handler = declClose; return XML_ROLE_GROUP_CLOSE; case XML_TOK_CLOSE_PAREN_ASTERISK: state->level -= 1; if (state->level == 0) state->handler = declClose; return XML_ROLE_GROUP_CLOSE_REP; case XML_TOK_CLOSE_PAREN_QUESTION: state->level -= 1; if (state->level == 0) state->handler = declClose; return XML_ROLE_GROUP_CLOSE_OPT; case XML_TOK_CLOSE_PAREN_PLUS: state->level -= 1; if (state->level == 0) state->handler = declClose; return XML_ROLE_GROUP_CLOSE_PLUS; case XML_TOK_COMMA: state->handler = element6; return XML_ROLE_GROUP_SEQUENCE; case XML_TOK_OR: state->handler = element6; return XML_ROLE_GROUP_CHOICE; } return common(state, tok);}#ifdef XML_DTDstaticint condSect0(PROLOG_STATE *state, int tok, const char *ptr, const char *end, const ENCODING *enc){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_NAME: if (XmlNameMatchesAscii(enc, ptr, end, KW_INCLUDE)) { state->handler = condSect1; return XML_ROLE_NONE; } if (XmlNameMatchesAscii(enc, ptr, end, KW_IGNORE)) { state->handler = condSect2; return XML_ROLE_NONE; } break; } return common(state, tok);}staticint condSect1(PROLOG_STATE *state, int tok, const char *ptr, const char *end, const ENCODING *enc){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_OPEN_BRACKET: state->handler = externalSubset1; state->includeLevel += 1; return XML_ROLE_NONE; } return common(state, tok);}staticint condSect2(PROLOG_STATE *state, int tok, const char *ptr, const char *end, const ENCODING *enc){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_OPEN_BRACKET: state->handler = externalSubset1; return XML_ROLE_IGNORE_SECT; } return common(state, tok);}#endif /* XML_DTD */staticint declClose(PROLOG_STATE *state, int tok, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ switch (tok) { case XML_TOK_PROLOG_S: return XML_ROLE_NONE; case XML_TOK_DECL_CLOSE: setTopLevel(state); return XML_ROLE_NONE; } return common(state, tok);}#if 0staticint ignore(PROLOG_STATE *state, int tok, const char *ptr, const char *end, const ENCODING *enc){ switch (tok) { case XML_TOK_DECL_CLOSE: state->handler = internalSubset; return 0; default: return XML_ROLE_NONE; } return common(state, tok);}#endifstaticint error(PROLOG_STATE *state ATTR_UNUSED, int tok ATTR_UNUSED, const char *ptr ATTR_UNUSED, const char *end ATTR_UNUSED, const ENCODING *enc ATTR_UNUSED){ return XML_ROLE_NONE;}staticint common(PROLOG_STATE *state, int tok ATTR_UNUSED){#ifdef XML_DTD if (!state->documentEntity && tok == XML_TOK_PARAM_ENTITY_REF) return XML_ROLE_INNER_PARAM_ENTITY_REF;#endif state->handler = error; return XML_ROLE_ERROR;}void xmlrpc_XmlPrologStateInit(PROLOG_STATE *state){ state->handler = prolog0;#ifdef XML_DTD state->documentEntity = 1; state->includeLevel = 0;#endif /* XML_DTD */}#ifdef XML_DTDvoid XmlPrologStateInitExternalEntity(PROLOG_STATE *state){ state->handler = externalSubset0; state->documentEntity = 0; state->includeLevel = 0;}#endif /* XML_DTD */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -