diff options
Diffstat (limited to 'xsd/cxx/tree/elements.cxx')
-rw-r--r-- | xsd/cxx/tree/elements.cxx | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/xsd/cxx/tree/elements.cxx b/xsd/cxx/tree/elements.cxx index aafc442..503ca72 100644 --- a/xsd/cxx/tree/elements.cxx +++ b/xsd/cxx/tree/elements.cxx @@ -1253,6 +1253,7 @@ namespace CXX // Type t (type_); Boolean weak (u.context ().count ("weak")); + SemanticGraph::Schema& s (u.schema ()); if (weak && t == header) { @@ -1262,7 +1263,7 @@ namespace CXX t = forward; else { - schema_.dispatch (u.schema ()); + schema_.dispatch (s); return; } } @@ -1270,7 +1271,10 @@ namespace CXX if (t == source && !weak) return; - SemanticGraph::Path path (u.path ()); + SemanticGraph::Path path ( + s.context ().count ("renamed") + ? s.context ().get<SemanticGraph::Path> ("renamed") + : u.path ()); // Try to use the portable representation of the path. If that // fails, fall back to the native representation. |