diff options
author | Shaun McCance <shaunm@src.gnome.org> | 2007-03-27 18:22:57 +0000 |
---|---|---|
committer | Shaun McCance <shaunm@src.gnome.org> | 2007-03-27 18:22:57 +0000 |
commit | ecae9f7d5226a941d946b9ce41567c0fe201a1f0 (patch) | |
tree | 1850ea19a58ac0c45cfbf8dfe88bd45595da9e08 | |
parent | f2f83d3add7382031b951dcc4b7a978d743ba6f1 (diff) | |
download | gnome-doc-utils-ecae9f7d5226a941d946b9ce41567c0fe201a1f0.tar.gz |
- Handle xsd: data types and list constructions
* rng/rnc2rng.awk:
- Handle xsd: data types and list constructions
svn path=/trunk/; revision=908
-rw-r--r-- | sandbox/mallard/ChangeLog | 5 | ||||
-rw-r--r-- | sandbox/mallard/rng/rnc2rng.awk | 33 |
2 files changed, 37 insertions, 1 deletions
diff --git a/sandbox/mallard/ChangeLog b/sandbox/mallard/ChangeLog index 7675e1f..d9f60b2 100644 --- a/sandbox/mallard/ChangeLog +++ b/sandbox/mallard/ChangeLog @@ -1,3 +1,8 @@ +2007-03-27 Shaun McCance <shaunm@gnome.org> + + * rng/rnc2rng.awk: + - Handle xsd: data types and list constructions + 2007-03-15 Shaun McCance <shaunm@gnome.org> * spec/10minutes.xml: diff --git a/sandbox/mallard/rng/rnc2rng.awk b/sandbox/mallard/rng/rnc2rng.awk index 7fcf5bf..d4d7d96 100644 --- a/sandbox/mallard/rng/rnc2rng.awk +++ b/sandbox/mallard/rng/rnc2rng.awk @@ -86,6 +86,12 @@ function runline (line) { tmp = tmp "</attribute>"; stack[--stack_i] = tmp; } + else if (stack[stack_i - 1] == "<list>") { + tmp = stack[stack_i - 1] "\n"; + tmp = tmp stack[stack_i] "\n"; + tmp = tmp "</list>"; + stack[--stack_i] = tmp; + } } if (paren_i == 0) { mode = "top"; @@ -139,11 +145,36 @@ function runline (line) { stack[++stack_i] = sprintf("<attribute name=\"%s\">", name); runline(aft); } + else if (substr(line, 1, 5) == "list ") { + aft = substr(line, 5); + sub(/^ */, "", aft); + stack[++stack_i] = "<list>"; + runline(aft); + } else if (match(line, /^text[^[:alpha:]]/)) { stack[++stack_i] = "<text/>"; runline(substr(line, 5)); } - else if (match(line, /^[[:alpha:]]/)) { + else if (substr(line, 1, 18) == "default namespace ") { + print "default namespace appeared out of context on line " FNR | "cat 1>&2"; + error = 1; + exit 1 + } + else if (substr(line, 1, 6) == "start ") { + print "start appeared out of context on line " FNR | "cat 1>&2"; + error = 1; + exit 1 + } + else if (match(line, /^xsd:[[:alpha:]_]/)) { + name = substr(line, 1); + sub(/^xsd:/, "", name); + sub(/[^[:alpha:]_]+.*/, "", name); + aft = substr(line, length(name) + 5); + stack[++stack_i] = sprintf("<data type=\"%s\" datatypeLibrary=\"http://www.w3.org/2001/XMLSchema-datatypes\"/>", + name); + runline(aft); + } + else if (match(line, /^[[:alpha:]_]/)) { name = substr(line, 1); sub(/[^[:alpha:]_]+.*/, "", name); aft = substr(line, length(name) + 1); |