[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [xml] (no subject)
- From: Daniel Veillard <veillard redhat com>
- To: Jim Crafton <jim crafton verizon net>
- Cc: xml gnome org
- Subject: Re: [xml] (no subject)
- Date: Sun, 28 Sep 2003 10:48:05 -0400
On Sun, Sep 28, 2003 at 10:35:57AM -0400, Jim Crafton wrote:
> I am using libxml for a docbook editor. I would like to provide
> autocompletion for docbook, such that when you type a "<" character the
>
> editor is able to supply a valid set of tags, and even better, would be
>
> the ability to have the tags correspond with the parent, so you only
> see
> the appropriate tags for where you are at in the document. So I *think*
>
> (I am a bit new to this so bear with me) I can use libxml to read the
> docbook DTD to pull down all the valid tags for docbook. Is this right,
>
> and if so, how do I do this? I didn't see an obvious samples of this
> (or maybe I missed something.
yes
xmlValidGetValidElements
/**
* xmlValidGetValidElements:
* @prev: an element to insert after
* @next: an element to insert next
* @list: an array to store the list of child names
* @max: the size of the array
*
* This function returns the list of authorized children to insert
* within an existing tree while respecting the validity constraints
* forced by the Dtd. The insertion point is defined using @prev and
* @next in the following ways:
* to insert before 'node': xmlValidGetValidElements(node->prev, node, ...
* to insert next 'node': xmlValidGetValidElements(node, node->next, ...
* to replace 'node': xmlValidGetValidElements(node->prev, node->next, ...
* to prepend a child to 'node': xmlValidGetValidElements(NULL, node->childs,
* to append a child to 'node': xmlValidGetValidElements(node->last, NULL, ...
*
* pointers to the element names are inserted at the beginning of the array
* and do not need to be freed.
*
* returns the number of element in the list, or -1 in case of error. If
* the function returns the value @max the caller is invited to grow the
* receiving array and retry.
*/
int
xmlValidGetValidElements(xmlNode *prev, xmlNode *next, const xmlChar **list,
int max) {
and
/**
* xmlValidGetPotentialChildren:
* @ctree: an element content tree
* @list: an array to store the list of child names
* @len: a pointer to the number of element in the list
* @max: the size of the array
*
* Build/extend a list of potential children allowed by the content tree
*
* returns the number of element in the list, or -1 in case of error.
*/
int
xmlValidGetPotentialChildren(xmlElementContent *ctree, const xmlChar **list,
int *len, int max) {
available from valid.c
Daniel
--
Daniel Veillard | Red Hat Network https://rhn.redhat.com/
veillard redhat com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]