From 3f8c237b1abe02df8147170f2fc037edc3f384db Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 8 Jan 2010 14:49:11 +0200 Subject: Add support for default/fixed values of QName type --- xsd/cxx/tree/default-value.cxx | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'xsd/cxx/tree/default-value.cxx') diff --git a/xsd/cxx/tree/default-value.cxx b/xsd/cxx/tree/default-value.cxx index c859949..05679f7 100644 --- a/xsd/cxx/tree/default-value.cxx +++ b/xsd/cxx/tree/default-value.cxx @@ -514,8 +514,36 @@ namespace CXX // Qualified name. // Void InitValue:: - traverse (SemanticGraph::Fundamental::QName&) + traverse (SemanticGraph::Fundamental::QName& t) { + Size p (value_.rfind ('#')); + + if (p != String::npos) + { + String ns (value_, 0, p); + String qname (value_, p + 1, String::npos); + + collapse (ns); + collapse (qname); + + p = qname.find (':'); + + String name; + if (p != String::npos) + name.assign (qname, p + 1, String::npos); + else + name = qname; + + os << fq_name (t) << " (" << strlit (ns) << ", " << + strlit (name) << ")"; + } + else + { + // Unqualified name. + // + collapse (value_); + os << fq_name (t) << " (" << strlit (value_) << ")"; + } } // ID/IDREF. -- cgit v1.1