Lines Matching refs:elem
632 /* TODO: use hash table for accesses to elem and attribute definitions */
805 * @elem: an element declaration node
813 xmlValidBuildContentModel(xmlValidCtxtPtr ctxt, xmlElementPtr elem) {
815 if ((ctxt == NULL) || (elem == NULL))
817 if (elem->type != XML_ELEMENT_DECL)
819 if (elem->etype != XML_ELEMENT_TYPE_ELEMENT)
822 if (elem->contModel != NULL) {
823 if (!xmlRegexpIsDeterminist(elem->contModel)) {
832 xmlErrValidNode(ctxt, (xmlNodePtr) elem,
835 elem->name, NULL, NULL);
839 xmlValidBuildAContentModel(elem->content, ctxt, elem->name);
841 elem->contModel = xmlAutomataCompile(ctxt->am);
842 if (xmlRegexpIsDeterminist(elem->contModel) != 1) {
845 xmlSnprintfElementContent(expr, 5000, elem->content, 1);
846 xmlErrValidNode(ctxt, (xmlNodePtr) elem,
849 elem->name, BAD_CAST expr, NULL);
851 xmlRegexpPrint(stderr, elem->contModel);
1353 * @elem: An element
1358 xmlFreeElement(xmlElementPtr elem) {
1359 if (elem == NULL) return;
1360 xmlUnlinkNode((xmlNodePtr) elem);
1361 xmlFreeDocElementContent(elem->doc, elem->content);
1362 if (elem->name != NULL)
1363 xmlFree((xmlChar *) elem->name);
1364 if (elem->prefix != NULL)
1365 xmlFree((xmlChar *) elem->prefix);
1367 if (elem->contModel != NULL)
1368 xmlRegFreeRegexp(elem->contModel);
1370 xmlFree(elem);
1601 xmlFreeElementTableEntry(void *elem, const xmlChar *name ATTRIBUTE_UNUSED) {
1602 xmlFreeElement((xmlElementPtr) elem);
1619 * @elem: An element
1627 xmlElementPtr elem = (xmlElementPtr) payload;
1637 cur->etype = elem->etype;
1638 if (elem->name != NULL)
1639 cur->name = xmlStrdup(elem->name);
1642 if (elem->prefix != NULL)
1643 cur->prefix = xmlStrdup(elem->prefix);
1646 cur->content = xmlCopyElementContent(elem->content);
1670 * @elem: An element table
1676 xmlDumpElementDecl(xmlBufferPtr buf, xmlElementPtr elem) {
1677 if ((buf == NULL) || (elem == NULL))
1679 switch (elem->etype) {
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);
1700 if (elem->prefix != NULL) {
1701 xmlBufferWriteCHAR(buf, elem->prefix);
1704 elem->name);
1706 xmlDumpElementContent(buf, elem->content, 1);
1711 if (elem->prefix != NULL) {
1712 xmlBufferWriteCHAR(buf, elem->prefix);
1715 xmlBufferWriteCHAR(buf, elem->name);
1717 xmlDumpElementContent(buf, elem->content, 1);
1729 * @elem: An element table
1736 xmlDumpElementDeclScan(void *elem, void *buf,
1738 xmlDumpElementDecl((xmlBufferPtr) buf, (xmlElementPtr) elem);
1849 * @elem: the element name
1858 xmlScanIDAttributeDecl(xmlValidCtxtPtr ctxt, xmlElementPtr elem, int err) {
1862 if (elem == NULL) return(0);
1863 cur = elem->attributes;
1868 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_MULTIPLE_ID,
1870 elem->name, cur->name, NULL);
1880 * @elem: An attribute
1897 if ((attr->elem != NULL) && (!xmlDictOwns(dict, attr->elem)))
1898 xmlFree((xmlChar *) attr->elem);
1907 if (attr->elem != NULL)
1908 xmlFree((xmlChar *) attr->elem);
1924 * @elem: the element name
1939 xmlDtdPtr dtd, const xmlChar *elem,
1956 if (elem == NULL) {
1999 elem, name, defaultValue);
2013 ret = xmlHashLookup3(dtd->doc->intSubset->attributes, name, ns, elem);
2058 ret->elem = xmlDictLookup(dict, elem, -1);
2062 ret->elem = xmlStrdup(elem);
2077 if (xmlHashAddEntry3(table, ret->name, ret->prefix, ret->elem, ret) < 0) {
2084 name, elem, NULL);
2094 elemDef = xmlGetDtdElementDesc2(dtd, elem, 1);
2102 elem, name, NULL);
2192 if (attr->elem != NULL)
2193 cur->elem = xmlStrdup(attr->elem);
2231 xmlBufferWriteCHAR(buf, attr->elem);
2693 * @elem: the element carrying the attribute
2704 xmlIsID(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) {
2717 ((elem == NULL) || (xmlStrEqual(elem->name, BAD_CAST "a")))))
2720 } else if (elem == NULL) {
2728 fullelemname = (elem->ns != NULL && elem->ns->prefix != NULL) ?
2729 xmlBuildQName(elem->name, elem->ns->prefix, felem, 50) :
2730 (xmlChar *)elem->name;
2746 if ((fullelemname != felem) && (fullelemname != elem->name))
3035 * @elem: the element carrying the attribute
3045 xmlIsRef(xmlDocPtr doc, xmlNodePtr elem, xmlAttrPtr attr) {
3061 if (elem == NULL) return(0);
3062 attrDecl = xmlGetDtdAttrDesc(doc->intSubset, elem->name, attr->name);
3065 elem->name, attr->name);
3288 * @elem: the element name
3298 xmlGetDtdAttrDesc(xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name) {
3313 cur = xmlHashLookup3(table, uqname, prefix, elem);
3317 cur = xmlHashLookup3(table, name, NULL, elem);
3324 * @elem: the element name
3335 xmlGetDtdQAttrDesc(xmlDtdPtr dtd, const xmlChar *elem, const xmlChar *name,
3343 return(xmlHashLookup3(table, name, prefix, elem));
3965 * @elem: the parent
3987 xmlNodePtr elem, const xmlChar *name, const xmlChar *value) {
3994 if (elem == NULL) return(NULL);
3998 if ((elem->ns != NULL) && (elem->ns->prefix != NULL)) {
4002 fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50);
4011 if ((fullname != fn) && (fullname != elem->name))
4015 attrDecl = xmlGetDtdAttrDesc(doc->intSubset, elem->name, name);
4017 attrDecl = xmlGetDtdAttrDesc(doc->extSubset, elem->name, name);
4044 xmlErrValidNode(ctxt, elem, XML_DTD_NOT_STANDALONE,
4046 name, elem->name, NULL);
4055 * @elem: the parent
4072 xmlValidNormalizeAttributeValue(xmlDocPtr doc, xmlNodePtr elem,
4079 if (elem == NULL) return(NULL);
4083 if ((elem->ns != NULL) && (elem->ns->prefix != NULL)) {
4087 fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50);
4090 if ((fullname != fn) && (fullname != elem->name))
4093 attrDecl = xmlGetDtdAttrDesc(doc->intSubset, elem->name, name);
4095 attrDecl = xmlGetDtdAttrDesc(doc->extSubset, elem->name, name);
4163 attr->name, attr->elem, NULL);
4174 attr->name, attr->elem, NULL);
4183 xmlElementPtr elem = xmlGetDtdElementDesc(doc->intSubset,
4184 attr->elem);
4185 if (elem != NULL) {
4186 nbId = xmlScanIDAttributeDecl(NULL, elem, 0);
4197 xmlHashScan3(table, NULL, NULL, attr->elem,
4205 attr->elem, nbId, attr->name);
4208 elem = xmlGetDtdElementDesc(doc->extSubset, attr->elem);
4209 if (elem != NULL) {
4210 extId = xmlScanIDAttributeDecl(NULL, elem, 0);
4215 attr->elem, extId, attr->name);
4219 attr->elem, attr->name, NULL);
4234 attr->defaultValue, attr->name, attr->elem);
4246 * @elem: an element definition
4260 xmlElementPtr elem) {
4266 if (elem == NULL) return(1);
4271 ret = xmlValidBuildContentModel(ctxt, elem);
4276 if (elem->etype == XML_ELEMENT_TYPE_MIXED) {
4280 cur = elem->content;
4292 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_CONTENT_ERROR,
4294 elem->name, name, NULL);
4296 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_CONTENT_ERROR,
4298 elem->name, cur->c1->prefix, name);
4309 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_CONTENT_ERROR,
4311 elem->name, name, NULL);
4313 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_CONTENT_ERROR,
4315 elem->name, cur->c1->prefix, name);
4327 tst = xmlGetDtdElementDesc(doc->intSubset, elem->name);
4328 if ((tst != NULL ) && (tst != elem) &&
4329 ((tst->prefix == elem->prefix) ||
4330 (xmlStrEqual(tst->prefix, elem->prefix))) &&
4332 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_ELEM_REDEFINED,
4334 elem->name, NULL, NULL);
4337 tst = xmlGetDtdElementDesc(doc->extSubset, elem->name);
4338 if ((tst != NULL ) && (tst != elem) &&
4339 ((tst->prefix == elem->prefix) ||
4340 (xmlStrEqual(tst->prefix, elem->prefix))) &&
4342 xmlErrValidNode(ctxt, (xmlNodePtr) elem, XML_DTD_ELEM_REDEFINED,
4344 elem->name, NULL, NULL);
4349 if (xmlScanIDAttributeDecl(ctxt, elem) > 1) {
4359 * @elem: an element instance
4382 xmlNodePtr elem, xmlAttrPtr attr, const xmlChar *value)
4389 if ((elem == NULL) || (elem->name == NULL)) return(0);
4392 if ((elem->ns != NULL) && (elem->ns->prefix != NULL)) {
4396 fullname = xmlBuildQName(elem->name, elem->ns->prefix, fn, 50);
4411 if ((fullname != fn) && (fullname != elem->name))
4416 attrDecl = xmlGetDtdQAttrDesc(doc->intSubset, elem->name,
4419 attrDecl = xmlGetDtdQAttrDesc(doc->extSubset, elem->name,
4423 elem->name, attr->name);
4426 elem->name, attr->name);
4433 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_ATTRIBUTE,
4435 attr->name, elem->name, NULL);
4442 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4444 attr->name, elem->name, NULL);
4451 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_DEFAULT,
4453 attr->name, elem->name, attrDecl->defaultValue);
4481 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_NOTATION,
4483 value, attr->name, elem->name);
4493 xmlErrValidNode(ctxt, elem, XML_DTD_NOTATION_VALUE,
4495 value, attr->name, elem->name);
4508 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4510 value, attr->name, elem->name);
4518 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4520 attr->name, elem->name, attrDecl->defaultValue);
4535 * @elem: an element instance
4559 xmlNodePtr elem, const xmlChar *prefix, xmlNsPtr ns, const xmlChar *value) {
4566 if ((elem == NULL) || (elem->name == NULL)) return(0);
4573 fullname = xmlBuildQName(elem->name, prefix, fn, 50);
4591 if ((fullname != fn) && (fullname != elem->name))
4596 attrDecl = xmlGetDtdQAttrDesc(doc->intSubset, elem->name,
4599 attrDecl = xmlGetDtdQAttrDesc(doc->extSubset, elem->name,
4603 elem->name, BAD_CAST "xmlns");
4606 elem->name, BAD_CAST "xmlns");
4614 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_ATTRIBUTE,
4616 ns->prefix, elem->name, NULL);
4618 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_ATTRIBUTE,
4620 elem->name, NULL, NULL);
4628 xmlErrValidNode(ctxt, elem, XML_DTD_INVALID_DEFAULT,
4630 ns->prefix, elem->name, NULL);
4632 xmlErrValidNode(ctxt, elem, XML_DTD_INVALID_DEFAULT,
4634 elem->name, NULL, NULL);
4643 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_DEFAULT,
4645 ns->prefix, elem->name, attrDecl->defaultValue);
4647 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_DEFAULT,
4649 elem->name, attrDecl->defaultValue, NULL);
4686 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_NOTATION,
4688 value, ns->prefix, elem->name);
4690 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_NOTATION,
4692 value, elem->name, NULL);
4704 xmlErrValidNode(ctxt, elem, XML_DTD_NOTATION_VALUE,
4706 value, ns->prefix, elem->name);
4708 xmlErrValidNode(ctxt, elem, XML_DTD_NOTATION_VALUE,
4710 value, elem->name, NULL);
4725 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4727 value, ns->prefix, elem->name);
4729 xmlErrValidNode(ctxt, elem, XML_DTD_ATTRIBUTE_VALUE,
4731 value, elem->name, NULL);
4741 xmlErrValidNode(ctxt, elem, XML_DTD_ELEM_NAMESPACE,
4743 ns->prefix, elem->name, attrDecl->defaultValue);
4745 xmlErrValidNode(ctxt, elem, XML_DTD_ELEM_NAMESPACE,
4747 elem->name, attrDecl->defaultValue, NULL);
5548 * @elem: an element instance
5556 xmlNodePtr elem) {
5560 if ((ctxt == NULL) || (doc == NULL) || (elem == NULL) ||
5561 (elem->type != XML_ELEMENT_NODE))
5564 child = elem->children;
5681 * @elem: an element instance
5691 xmlNodePtr elem, int *extsubset) {
5696 (elem == NULL) || (elem->name == NULL))
5704 if ((elem->ns != NULL) && (elem->ns->prefix != NULL))
5705 prefix = elem->ns->prefix;
5709 elem->name, prefix);
5712 elem->name, prefix);
5724 elemDecl = xmlGetDtdElementDesc(doc->intSubset, elem->name);
5726 elemDecl = xmlGetDtdElementDesc(doc->extSubset, elem->name);
5732 xmlErrValidNode(ctxt, elem,
5735 elem->name, NULL, NULL);
5745 * @elem: an element instance
5754 xmlNodePtr elem, const xmlChar *qname) {
5767 * Check the new element against the content model of the new elem.
5830 eDecl = xmlValidGetElemDecl(ctxt, doc, elem, &extsubset);
5831 vstateVPush(ctxt, eDecl, elem);
5859 * Check the new element against the content model of the new elem.
5912 * @elem: an element instance
5921 xmlNodePtr elem ATTRIBUTE_UNUSED,
5933 * Check the new element against the content model of the new elem.
5966 * @elem: an element instance
5982 xmlNodePtr elem) {
5993 if (elem == NULL) return(0);
5994 switch (elem->type) {
5996 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6000 if (elem->children != NULL) {
6001 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6006 if (elem->ns != NULL) {
6007 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6012 if (elem->content == NULL) {
6013 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6028 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6032 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6038 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6042 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6048 xmlErrValidNode(ctxt, elem, XML_ERR_INTERNAL_ERROR,
6056 elemDecl = xmlValidGetElemDecl(ctxt, doc, elem, &extsubset);
6068 xmlErrValidNode(ctxt, elem, XML_DTD_UNKNOWN_ELEM,
6070 elem->name, NULL, NULL);
6073 if (elem->children != NULL) {
6074 xmlErrValidNode(ctxt, elem, XML_DTD_NOT_EMPTY,
6076 elem->name, NULL, NULL);
6088 ret = xmlValidateOneCdataElement(ctxt, doc, elem);
6090 xmlErrValidNode(ctxt, elem, XML_DTD_NOT_PCDATA,
6092 elem->name, NULL, NULL);
6096 child = elem->children;
6153 xmlErrValidNode(ctxt, elem, XML_DTD_INVALID_CHILD,
6155 name, elem->name, NULL);
6170 child = elem->children;
6178 xmlErrValidNode(ctxt, elem,
6181 elem->name, NULL, NULL);
6189 child = elem->children;
6191 tmp = xmlValidateElementContent(ctxt, child, elemDecl, 1, elem);
6208 ns = elem->nsDef;
6217 ns = elem->nsDef;
6226 attrib = elem->properties;
6233 nameSpace = elem->ns;
6263 xmlErrValidNode(ctxt, elem, XML_DTD_MISSING_ATTRIBUTE,
6265 elem->name, attr->name, NULL);
6268 xmlErrValidNode(ctxt, elem, XML_DTD_MISSING_ATTRIBUTE,
6270 elem->name, attr->prefix,attr->name);
6274 xmlErrValidWarning(ctxt, elem, XML_DTD_NO_PREFIX,
6276 elem->name, attr->prefix, attr->name);
6278 xmlErrValidWarning(ctxt, elem, XML_DTD_DIFFERENT_PREFIX,
6280 elem->name, attr->prefix, attr->name);
6292 ns = elem->nsDef;
6296 xmlErrValidNode(ctxt, elem,
6299 elem->name, NULL, NULL);
6309 ns = elem->nsDef;
6313 xmlErrValidNode(ctxt, elem, XML_DTD_ELEM_NAMESPACE,
6315 elem->name, ns->prefix, NULL);
6401 * @elem: an element instance
6409 xmlValidateElement(xmlValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem) {
6416 if (elem == NULL) return(0);
6422 if ((elem->type == XML_XINCLUDE_START) ||
6423 (elem->type == XML_XINCLUDE_END) ||
6424 (elem->type == XML_NAMESPACE_DECL))
6432 if (elem->type == XML_ENTITY_REF_NODE) {
6436 ret &= xmlValidateOneElement(ctxt, doc, elem);
6437 if (elem->type == XML_ELEMENT_NODE) {
6438 attr = elem->properties;
6441 ret &= xmlValidateOneAttribute(ctxt, doc, elem, attr, value);
6446 ns = elem->nsDef;
6448 if (elem->ns == NULL)
6449 ret &= xmlValidateOneNamespace(ctxt, doc, elem, NULL,
6452 ret &= xmlValidateOneNamespace(ctxt, doc, elem,
6453 elem->ns->prefix, ns, ns->href);
6457 child = elem->children;
6715 xmlElementPtr elem = NULL;
6751 if (cur->elem == NULL) {
6759 elem = xmlGetDtdElementDesc(doc->intSubset, cur->elem);
6760 if ((elem == NULL) && (doc != NULL))
6761 elem = xmlGetDtdElementDesc(doc->extSubset, cur->elem);
6762 if ((elem == NULL) && (cur->parent != NULL) &&
6764 elem = xmlGetDtdElementDesc((xmlDtdPtr) cur->parent, cur->elem);
6765 if (elem == NULL) {
6768 cur->name, cur->elem, NULL);
6771 if (elem->etype == XML_ELEMENT_TYPE_EMPTY) {
6774 cur->name, cur->elem, NULL);