Home | History | Annotate | Download | only in libxml2

Lines Matching refs:elem

632 /* TODO: use hash table for accesses to elem and attribute definitions */
640 xmlAttributePtr xmlScanAttributeDecl(xmlDtdPtr dtd, const xmlChar *elem);
807 * @elem: an element declaration node
815 xmlValidBuildContentModel(xmlValidCtxtPtr ctxt, xmlElementPtr elem) {
817 if ((ctxt == NULL) || (elem == NULL))
819 if (elem->type != XML_ELEMENT_DECL)
821 if (elem->etype != XML_ELEMENT_TYPE_ELEMENT)
824 if (elem->contModel != NULL) {
825 if (!xmlRegexpIsDeterminist(elem->contModel)) {
834 xmlErrValidNode(ctxt, (xmlNodePtr) elem,
837 elem->name, NULL, NULL);
841 xmlValidBuildAContentModel(elem->content, ctxt, elem->name);
843 elem->contModel = xmlAutomataCompile(ctxt->am);
844 if (xmlRegexpIsDeterminist(elem->contModel) != 1) {
847 xmlSnprintfElementContent(expr, 5000, elem->content, 1);
848 xmlErrValidNode(ctxt, (xmlNodePtr) elem,
851 elem->name, BAD_CAST expr, NULL);
853 xmlRegexpPrint(stderr, elem->contModel);
1349 * @elem: An element
1354 xmlFreeElement(xmlElementPtr elem) {
1355 if (elem == NULL) return;
1356 xmlUnlinkNode((xmlNodePtr) elem);
1357 xmlFreeDocElementContent(elem->doc, elem->content);
1358 if (elem->name != NULL)
1359 xmlFree((xmlChar *) elem->name);
1360 if (elem->prefix != NULL)
1361 xmlFree((xmlChar *) elem->prefix);
1363 if (elem->contModel != NULL)
1364 xmlRegFreeRegexp(elem->contModel);
1366 xmlFree(elem);
1610 * @elem: An element
1617 xmlCopyElement(xmlElementPtr elem) {
1627 cur->etype = elem->etype;
1628 if (elem->name != NULL)
1629 cur->name = xmlStrdup(elem->name);
1632 if (elem->prefix != NULL)
1633 cur->prefix = xmlStrdup(elem->prefix);
1636 cur->content = xmlCopyElementContent(elem->content);
1661 * @elem: An element table
1667 xmlDumpElementDecl(xmlBufferPtr buf, xmlElementPtr elem) {
1668 if ((buf == NULL) || (elem == NULL))
1670 switch (elem->etype) {
1673 if (elem->prefix != NULL) {
1674 xmlBufferWriteCHAR(buf, elem->prefix);
1677 xmlBufferWriteCHAR(buf, elem->name);
1682 if (elem->prefix != NULL) {
1683 xmlBufferWriteCHAR(buf, elem->prefix);
1686 xmlBufferWriteCHAR(buf, elem->name);
1691 if (elem->prefix != NULL) {
1692 xmlBufferWriteCHAR(buf, elem->prefix);
1695 xmlBufferWriteCHAR(buf, elem->name);
1697 xmlDumpElementContent(buf, elem->content, 1);
1702 if (elem->prefix != NULL) {
1703 xmlBufferWriteCHAR(buf, elem->prefix);
1706 elem->name);
1708 xmlDumpElementContent(buf, elem->content, 1);
1720 * @elem: An element table
1727 xmlDumpElementDeclScan(xmlElementPtr elem, xmlBufferPtr buf) {
1728 xmlDumpElementDecl(buf, elem);
1853 * @elem: the element name
1862 xmlScanAttributeDecl(xmlDtdPtr dtd, const xmlChar *elem) {
1869 if (elem == NULL) {
1877 xmlHashScan3(table, NULL, NULL, elem,
1885 * @elem: the element name
1894 xmlScanIDAttributeDecl(xmlValidCtxtPtr ctxt, xmlElementPtr elem, int err) {
1898 if (elem == NULL) return(0);
1899 cur = elem->attributes;
1904 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_MULTIPLE_ID,
1906 elem->name, cur->name, NULL);
1916 * @elem: An attribute
1933 if ((attr->elem != NULL) && (!xmlDictOwns(dict, attr->elem)))
1934 xmlFree((xmlChar *) attr->elem);
1943 if (attr->elem != NULL)
1944 xmlFree((xmlChar *) attr->elem);
1960 * @elem: the element name
1975 xmlDtdPtr dtd, const xmlChar *elem,
1992 if (elem == NULL) {
2035 elem, name, defaultValue);
2049 ret = xmlHashLookup3(dtd->doc->intSubset->attributes, name, ns, elem);
2094 ret->elem = xmlDictLookup(dict, elem, -1);
2098 ret->elem = xmlStrdup(elem);
2113 if (xmlHashAddEntry3(table, ret->name, ret->prefix, ret->elem, ret) < 0) {
2120 name, elem, NULL);
2130 elemDef = xmlGetDtdElementDesc2(dtd, elem, 1);
2138 elem, name, NULL);
2222 if (attr->elem != NULL)
2223 cur->elem = xmlStrdup(attr->elem);
2262 xmlBufferWriteCHAR(buf, attr->elem);
2713 * @elem: the element carrying the attribute
2724 xmlIsID(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) {
2736 ((elem == NULL) || (xmlStrEqual(elem->name, BAD_CAST "a")))))
2739 } else if (elem == NULL) {
2747 fullelemname = (elem->ns != NULL && elem->ns->prefix != NULL) ?
2748 xmlBuildQName(elem->name, elem->ns->prefix, felem, 50) :
2749 (xmlChar *)elem->name;
2765 if ((fullelemname != felem) && (fullelemname != elem->name))
3052 * @elem: the element carrying the attribute
3062 xmlIsRef(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) {
3078 if (elem == NULL) return(0);
3079 attrDecl = xmlGetDtdAttrDesc(doc->intSubset, elem->name, attr->name);
3082 elem->name, attr->name);
3306 * @elem: the element name
3316 xmlGetDtdAttrDesc(xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name) {
3331 cur = xmlHashLookup3(table, uqname, prefix, elem);
3335 cur = xmlHashLookup3(table, name, NULL, elem);
3342 * @elem: the element name
3353 xmlGetDtdQAttrDesc(xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name,
3361 return(xmlHashLookup3(table, name, prefix, elem));
3982 * @elem: the parent
4004 xmlNodePtr elem, const xmlChar *name, const xmlChar *value) {
4011 if (elem == NULL) return(NULL);
4015 if ((elem->ns != NULL) && (elem->ns->prefix != NULL)) {
4019 fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50);
4028 if ((fullname != fn) && (fullname != elem->name))
4032 attrDecl = xmlGetDtdAttrDesc(doc->intSubset, elem->name, name);
4034 attrDecl = xmlGetDtdAttrDesc(doc->extSubset, elem->name, name);
4061 xmlErrValidNode(ctxt, elem, XML_DTD_NOT_STANDALONE,
4063 name, elem->name, NULL);
4072 * @elem: the parent
4089 xmlValidNormalizeAttributeValue(xmlDocPtr doc, xmlNodePtr elem,
4096 if (elem == NULL) return(NULL);
4100 if ((elem->ns != NULL) && (elem->ns->prefix != NULL)) {
4104 fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50);
4110 if ((fullname != fn) && (fullname != elem->name))
4113 attrDecl = xmlGetDtdAttrDesc(doc->intSubset, elem->name, name);
4115 attrDecl = xmlGetDtdAttrDesc(doc->extSubset, elem->name, name);
4181 attr->name, attr->elem, NULL);
4192 attr->name, attr->elem, NULL);
4201 xmlElementPtr elem = xmlGetDtdElementDesc(doc->intSubset,
4202 attr->elem);
4203 if (elem != NULL) {
4204 nbId = xmlScanIDAttributeDecl(NULL, elem, 0);
4215 xmlHashScan3(table, NULL, NULL, attr->elem, (xmlHashScanner)
4223 attr->elem, nbId, attr->name);
4226 elem = xmlGetDtdElementDesc(doc->extSubset, attr->elem);
4227 if (elem != NULL) {
4228 extId = xmlScanIDAttributeDecl(NULL, elem, 0);
4233 attr->elem, extId, attr->name);
4237 attr->elem, attr->name, NULL);
4252 attr->defaultValue, attr->name, attr->elem);
4264 * @elem: an element definition
4278 xmlElementPtr elem) {
4284 if (elem == NULL) return(1);
4289 ret = xmlValidBuildContentModel(ctxt, elem);
4294 if (elem->etype == XML_ELEMENT_TYPE_MIXED) {
4298 cur = elem->content;
4310 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_CONTENT_ERROR,
4312 elem->name, name, NULL);
4314 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_CONTENT_ERROR,
4316 elem->name, cur->prefix, name);
4327 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_CONTENT_ERROR,
4329 elem->name, name, NULL);
4331 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_CONTENT_ERROR,
4333 elem->name, cur->prefix, name);
4345 tst = xmlGetDtdElementDesc(doc->intSubset, elem->name);
4346 if ((tst != NULL ) && (tst != elem) &&
4347 ((tst->prefix == elem->prefix) ||
4348 (xmlStrEqual(tst->prefix, elem->prefix))) &&
4350 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_ELEM_REDEFINED,
4352 elem->name, NULL, NULL);
4355 tst = xmlGetDtdElementDesc(doc->extSubset, elem->name);
4356 if ((tst != NULL ) && (tst != elem) &&
4357 ((tst->prefix == elem->prefix) ||
4358 (xmlStrEqual(tst->prefix, elem->prefix))) &&
4360 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_ELEM_REDEFINED,
4362 elem->name, NULL, NULL);
4367 if (xmlScanIDAttributeDecl(ctxt, elem) > 1) {
4377 * @elem: an element instance
4400 xmlNodePtr elem, xmlAttrPtr attr, const xmlChar *value)
4407 if ((elem == NULL) || (elem->name == NULL)) return(0);
4410 if ((elem->ns != NULL) && (elem->ns->prefix != NULL)) {
4414 fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50);
4429 if ((fullname != fn) && (fullname != elem->name))
4434 attrDecl = xmlGetDtdQAttrDesc(doc->intSubset, elem->name,
4437 attrDecl = xmlGetDtdQAttrDesc(doc->extSubset, elem->name,
4441 elem->name, attr->name);
4444 elem->name, attr->name);
4451 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_ATTRIBUTE,
4453 attr->name, elem->name, NULL);
4460 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4462 attr->name, elem->name, NULL);
4469 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_DEFAULT,
4471 attr->name, elem->name, attrDecl->defaultValue);
4499 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_NOTATION,
4501 value, attr->name, elem->name);
4511 xmlErrValidNode(ctxt, elem, XML_DTD_NOTATION_VALUE,
4513 value, attr->name, elem->name);
4526 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4528 value, attr->name, elem->name);
4536 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4538 attr->name, elem->name, attrDecl->defaultValue);
4553 * @elem: an element instance
4577 xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
4584 if ((elem == NULL) || (elem->name == NULL)) return(0);
4591 fullname = xmlBuildQName(elem->name, prefix, fn, 50);
4609 if ((fullname != fn) && (fullname != elem->name))
4614 attrDecl = xmlGetDtdQAttrDesc(doc->intSubset, elem->name,
4617 attrDecl = xmlGetDtdQAttrDesc(doc->extSubset, elem->name,
4621 elem->name, BAD_CAST "xmlns");
4624 elem->name, BAD_CAST "xmlns");
4632 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_ATTRIBUTE,
4634 ns->prefix, elem->name, NULL);
4636 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_ATTRIBUTE,
4638 elem->name, NULL, NULL);
4646 xmlErrValidNode(ctxt, elem, XML_DTD_INVALID_DEFAULT,
4648 ns->prefix, elem->name, NULL);
4650 xmlErrValidNode(ctxt, elem, XML_DTD_INVALID_DEFAULT,
4652 elem->name, NULL, NULL);
4661 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_DEFAULT,
4663 ns->prefix, elem->name, attrDecl->defaultValue);
4665 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_DEFAULT,
4667 elem->name, attrDecl->defaultValue, NULL);
4697 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_NOTATION,
4699 value, ns->prefix, elem->name);
4701 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_NOTATION,
4703 value, elem->name, NULL);
4715 xmlErrValidNode(ctxt, elem, XML_DTD_NOTATION_VALUE,
4717 value, ns->prefix, elem->name);
4719 xmlErrValidNode(ctxt, elem, XML_DTD_NOTATION_VALUE,
4721 value, elem->name, NULL);
4736 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4738 value, ns->prefix, elem->name);
4740 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4742 value, elem
4752 xmlErrValidNode(ctxt, elem, XML_DTD_ELEM_NAMESPACE,
4754 ns->prefix, elem->name, attrDecl->defaultValue);
4756 xmlErrValidNode(ctxt, elem, XML_DTD_ELEM_NAMESPACE,
4758 elem->name, attrDecl->defaultValue, NULL);
5558 * @elem: an element instance
5566 xmlNodePtr elem) {
5570 if ((ctxt == NULL) || (doc == NULL) || (elem == NULL))
5573 child = elem->children;
5690 * @elem: an element instance
5700 xmlNodePtr elem, int *extsubset) {
5705 (elem == NULL) || (elem->name == NULL))
5713 if ((elem->ns != NULL) && (elem->ns->prefix != NULL))
5714 prefix = elem->ns->prefix;
5718 elem->name, prefix);
5721 elem->name, prefix);
5733 elemDecl = xmlGetDtdElementDesc(doc->intSubset, elem->name);
5735 elemDecl = xmlGetDtdElementDesc(doc->extSubset, elem->name);
5741 xmlErrValidNode(ctxt, elem,
5744 elem->name, NULL, NULL);
5754 * @elem: an element instance
5763 xmlNodePtr elem, const xmlChar *qname) {
5776 * Check the new element agaisnt the content model of the new elem.
5839 eDecl = xmlValidGetElemDecl(ctxt, doc, elem, &extsubset);
5840 vstateVPush(ctxt, eDecl, elem);
5868 * Check the new element agaisnt the content model of the new elem.
5921 * @elem: an element instance
5930 xmlNodePtr elem ATTRIBUTE_UNUSED,
5942 * Check the new element agaisnt the content model of the new elem.
5975 * @elem: an element instance
5991 xmlNodePtr elem) {
6002 if (elem == NULL) return(0);
6003 switch (elem->type) {
6005 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6009 if (elem->children != NULL) {
6010 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6015 if (elem->ns != NULL) {
6016 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6021 if (elem->content == NULL) {
6022 elem, XML_ERR_INTERNAL_ERROR,
6037 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6041 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6047 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6051 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6057 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6065 elemDecl = xmlValidGetElemDecl(ctxt, doc, elem, &extsubset);
6077 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_ELEM,
6079 elem->name, NULL, NULL);
6082 if (elem->children != NULL) {
6083 xmlErrValidNode(ctxt, elem, XML_DTD_NOT_EMPTY,
6085 elem->name, NULL, NULL);
6097 ret = xmlValidateOneCdataElement(ctxt, doc, elem);
6099 xmlErrValidNode(ctxt, elem, XML_DTD_NOT_PCDATA,
6101 elem->name, NULL, NULL);
6105 child = elem->children;
6162 xmlErrValidNode(ctxt, elem, XML_DTD_INVALID_CHILD,
6164 name, elem->name, NULL);
6179 child = elem->children;
6187 xmlErrValidNode(ctxt, elem,
6190 elem->name, NULL, NULL);
6198 child = elem->children;
6200 tmp = xmlValidateElementContent(ctxt, child, elemDecl, 1, elem);
6217 ns = elem->nsDef;
6226 ns = elem->nsDef;
6235 attrib = elem->properties;
6242 nameSpace = elem->ns;
6272 xmlErrValidNode(ctxt, elem, XML_DTD_MISSING_ATTRIBUTE,
6274 elem->name, attr->name, NULL);
6277 xmlErrValidNode(ctxt, elem, XML_DTD_MISSING_ATTRIBUTE,
6279 elem->name, attr->prefix,attr->name);
6283 xmlErrValidWarning(ctxt, elem, XML_DTD_NO_PREFIX,
6285 elem->name, attr->prefix, attr->name);
6287 xmlErrValidWarning(ctxt, elem, XML_DTD_DIFFERENT_PREFIX,
6289 elem->name, attr->prefix, attr->name);
6301 ns = elem->nsDef;
6305 xmlErrValidNode(ctxt, elem,
6308 elem->name, NULL, NULL);
6318 ns = elem->nsDef;
6322 xmlErrValidNode(ctxt, elem, XML_DTD_ELEM_NAMESPACE,
6324 elem->name, ns->prefix, NULL);
6410 * @elem: an element instance
6418 xmlValidateElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem) {
6425 if (elem == NULL) return(0);
6431 if ((elem->type == XML_XINCLUDE_START) ||
6432 (elem->type == XML_XINCLUDE_END))
6440 if (elem->type == XML_ENTITY_REF_NODE) {
6444 ret &= xmlValidateOneElement(ctxt, doc, elem);
6445 if (elem->type == XML_ELEMENT_NODE) {
6446 attr = elem->properties;
6449 ret &= xmlValidateOneAttribute(ctxt, doc, elem, attr, value);
6454 ns = elem->nsDef;
6456 if (elem->ns == NULL)
6457 ret &= xmlValidateOneNamespace(ctxt, doc, elem, NULL,
6460 ret &= xmlValidateOneNamespace(ctxt, doc, elem,
6461 elem->ns->prefix, ns, ns->href);
6465 child = elem->children;
6711 xmlElementPtr elem = NULL;
6747 if (cur->elem == NULL) {
6755 elem = xmlGetDtdElementDesc(doc->intSubset, cur->elem);
6756 if ((elem == NULL) && (doc != NULL))
6757 elem = xmlGetDtdElementDesc(doc->extSubset, cur->elem);
6758 if ((elem == NULL) && (cur->parent != NULL) &&
6760 elem = xmlGetDtdElementDesc((xmlDtdPtr) cur->parent, cur->elem);
6761 if (elem == NULL) {
6764 cur->name, cur->elem, NULL);
6767 if (elem->etype == XML_ELEMENT_TYPE_EMPTY) {
6770 cur->name, cur->elem, NULL);