Annotation of embedaddon/php/ext/dom/documenttype.c, revision 1.1.1.1
1.1 misho 1: /*
2: +----------------------------------------------------------------------+
3: | PHP Version 5 |
4: +----------------------------------------------------------------------+
5: | Copyright (c) 1997-2012 The PHP Group |
6: +----------------------------------------------------------------------+
7: | This source file is subject to version 3.01 of the PHP license, |
8: | that is bundled with this package in the file LICENSE, and is |
9: | available through the world-wide-web at the following url: |
10: | http://www.php.net/license/3_01.txt |
11: | If you did not receive a copy of the PHP license and are unable to |
12: | obtain it through the world-wide-web, please send a note to |
13: | license@php.net so we can mail you a copy immediately. |
14: +----------------------------------------------------------------------+
15: | Authors: Christian Stocker <chregu@php.net> |
16: | Rob Richards <rrichards@php.net> |
17: +----------------------------------------------------------------------+
18: */
19:
20: /* $Id: documenttype.c 321634 2012-01-01 13:15:04Z felipe $ */
21:
22: #ifdef HAVE_CONFIG_H
23: #include "config.h"
24: #endif
25:
26: #include "php.h"
27: #if HAVE_LIBXML && HAVE_DOM
28: #include "php_dom.h"
29:
30: /*
31: * class DOMDocumentType extends DOMNode
32: *
33: * URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-412266927
34: * Since:
35: */
36:
37: const zend_function_entry php_dom_documenttype_class_functions[] = {
38: PHP_FE_END
39: };
40:
41: /* {{{ name string
42: readonly=yes
43: URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1844763134
44: Since:
45: */
46: int dom_documenttype_name_read(dom_object *obj, zval **retval TSRMLS_DC)
47: {
48: xmlDtdPtr dtdptr;
49:
50: dtdptr = (xmlDtdPtr) dom_object_get_node(obj);
51:
52: if (dtdptr == NULL) {
53: php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
54: return FAILURE;
55: }
56:
57: ALLOC_ZVAL(*retval);
58: ZVAL_STRING(*retval, (char *) (dtdptr->name), 1);
59:
60: return SUCCESS;
61: }
62:
63: /* }}} */
64:
65: /* {{{ entities DOMNamedNodeMap
66: readonly=yes
67: URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1788794630
68: Since:
69: */
70: int dom_documenttype_entities_read(dom_object *obj, zval **retval TSRMLS_DC)
71: {
72: xmlDtdPtr doctypep;
73: xmlHashTable *entityht;
74: dom_object *intern;
75:
76: doctypep = (xmlDtdPtr) dom_object_get_node(obj);
77:
78: if (doctypep == NULL) {
79: php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
80: return FAILURE;
81: }
82:
83: MAKE_STD_ZVAL(*retval);
84: php_dom_create_interator(*retval, DOM_NAMEDNODEMAP TSRMLS_CC);
85:
86: entityht = (xmlHashTable *) doctypep->entities;
87:
88: intern = (dom_object *)zend_objects_get_address(*retval TSRMLS_CC);
89: dom_namednode_iter(obj, XML_ENTITY_NODE, intern, entityht, NULL, NULL TSRMLS_CC);
90:
91: return SUCCESS;
92: }
93:
94: /* }}} */
95:
96: /* {{{ notations DOMNamedNodeMap
97: readonly=yes
98: URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D46829EF
99: Since:
100: */
101: int dom_documenttype_notations_read(dom_object *obj, zval **retval TSRMLS_DC)
102: {
103: xmlDtdPtr doctypep;
104: xmlHashTable *notationht;
105: dom_object *intern;
106:
107: doctypep = (xmlDtdPtr) dom_object_get_node(obj);
108:
109: if (doctypep == NULL) {
110: php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
111: return FAILURE;
112: }
113:
114: MAKE_STD_ZVAL(*retval);
115: php_dom_create_interator(*retval, DOM_NAMEDNODEMAP TSRMLS_CC);
116:
117: notationht = (xmlHashTable *) doctypep->notations;
118:
119: intern = (dom_object *)zend_objects_get_address(*retval TSRMLS_CC);
120: dom_namednode_iter(obj, XML_NOTATION_NODE, intern, notationht, NULL, NULL TSRMLS_CC);
121:
122: return SUCCESS;
123: }
124:
125: /* }}} */
126:
127: /* {{{ publicId string
128: readonly=yes
129: URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-Core-DocType-publicId
130: Since: DOM Level 2
131: */
132: int dom_documenttype_public_id_read(dom_object *obj, zval **retval TSRMLS_DC)
133: {
134: xmlDtdPtr dtdptr;
135:
136: dtdptr = (xmlDtdPtr) dom_object_get_node(obj);
137:
138: if (dtdptr == NULL) {
139: php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
140: return FAILURE;
141: }
142:
143: ALLOC_ZVAL(*retval);
144: if (dtdptr->ExternalID) {
145: ZVAL_STRING(*retval, (char *) (dtdptr->ExternalID), 1);
146: } else {
147: ZVAL_EMPTY_STRING(*retval);
148: }
149: return SUCCESS;
150:
151: }
152:
153: /* }}} */
154:
155: /* {{{ systemId string
156: readonly=yes
157: URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-Core-DocType-systemId
158: Since: DOM Level 2
159: */
160: int dom_documenttype_system_id_read(dom_object *obj, zval **retval TSRMLS_DC)
161: {
162: xmlDtdPtr dtdptr;
163:
164: dtdptr = (xmlDtdPtr) dom_object_get_node(obj);
165:
166: if (dtdptr == NULL) {
167: php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
168: return FAILURE;
169: }
170:
171: ALLOC_ZVAL(*retval);
172: if (dtdptr->SystemID) {
173: ZVAL_STRING(*retval, (char *) (dtdptr->SystemID), 1);
174: } else {
175: ZVAL_EMPTY_STRING(*retval);
176: }
177: return SUCCESS;
178: }
179:
180: /* }}} */
181:
182: /* {{{ internalSubset string
183: readonly=yes
184: URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-Core-DocType-internalSubset
185: Since: DOM Level 2
186: */
187: int dom_documenttype_internal_subset_read(dom_object *obj, zval **retval TSRMLS_DC)
188: {
189:
190: xmlDtdPtr dtdptr;
191: xmlDtd *intsubset;
192: xmlOutputBuffer *buff = NULL;
193:
194: dtdptr = (xmlDtdPtr) dom_object_get_node(obj);
195:
196: if (dtdptr == NULL) {
197: php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
198: return FAILURE;
199: }
200:
201: ALLOC_ZVAL(*retval);
202:
203: if (dtdptr->doc != NULL && ((intsubset = dtdptr->doc->intSubset) != NULL)) {
204: buff = xmlAllocOutputBuffer(NULL);
205: if (buff != NULL) {
206: xmlNodeDumpOutput (buff, NULL, (xmlNodePtr) intsubset, 0, 0, NULL);
207: xmlOutputBufferFlush(buff);
208: ZVAL_STRINGL(*retval, buff->buffer->content, buff->buffer->use, 1);
209: (void)xmlOutputBufferClose(buff);
210: return SUCCESS;
211: }
212: }
213:
214: ZVAL_EMPTY_STRING(*retval);
215:
216: return SUCCESS;
217:
218: }
219:
220: /* }}} */
221:
222: #endif
223:
224: /*
225: * Local variables:
226: * tab-width: 4
227: * c-basic-offset: 4
228: * End:
229: * vim600: noet sw=4 ts=4 fdm=marker
230: * vim<600: noet sw=4 ts=4
231: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>