mirror of
https://github.com/jezhiggins/arabica
synced 2025-01-17 18:12:04 +01:00
started on literal result elements as stylesheet
This commit is contained in:
parent
f8e172ec0c
commit
7b1c5c9541
1 changed files with 25 additions and 5 deletions
|
@ -44,7 +44,11 @@ public:
|
||||||
{
|
{
|
||||||
if(top_)
|
if(top_)
|
||||||
{
|
{
|
||||||
startStylesheet(namespaceURI, localName, qName, atts);
|
top_ = false;
|
||||||
|
if(namespaceURI == StylesheetConstant::NamespaceURI())
|
||||||
|
startStylesheet(namespaceURI, localName, qName, atts);
|
||||||
|
else
|
||||||
|
startLREAsStylesheet(namespaceURI, localName, qName, atts);
|
||||||
return;
|
return;
|
||||||
} // if(top_)
|
} // if(top_)
|
||||||
|
|
||||||
|
@ -86,8 +90,6 @@ private:
|
||||||
const std::string& qName,
|
const std::string& qName,
|
||||||
const SAX::Attributes<std::string>& atts)
|
const SAX::Attributes<std::string>& atts)
|
||||||
{
|
{
|
||||||
if(namespaceURI != StylesheetConstant::NamespaceURI())
|
|
||||||
throw SAX::SAXException("The source file does not look like a stylesheet.");
|
|
||||||
if(localName != "stylesheet" && localName != "transform")
|
if(localName != "stylesheet" && localName != "transform")
|
||||||
throw SAX::SAXException("Top-level element must be 'stylesheet' or 'transform'.");
|
throw SAX::SAXException("Top-level element must be 'stylesheet' or 'transform'.");
|
||||||
|
|
||||||
|
@ -101,10 +103,28 @@ private:
|
||||||
throw SAX::SAXException("I'm only a poor version 1.0 XSLT Transformer.");
|
throw SAX::SAXException("I'm only a poor version 1.0 XSLT Transformer.");
|
||||||
if(!attributes["extension-element-prefixes"].empty())
|
if(!attributes["extension-element-prefixes"].empty())
|
||||||
throw SAX::SAXException("Haven't implemented extension-element-prefixes yet");
|
throw SAX::SAXException("Haven't implemented extension-element-prefixes yet");
|
||||||
|
|
||||||
top_ = false;
|
|
||||||
} // startStylesheet
|
} // startStylesheet
|
||||||
|
|
||||||
|
void startLREAsStylesheet(const std::string& namespaceURI,
|
||||||
|
const std::string& localName,
|
||||||
|
const std::string& qName,
|
||||||
|
const SAX::Attributes<std::string>& atts)
|
||||||
|
{
|
||||||
|
std::string version;
|
||||||
|
for(int a = 0; a != atts.getLength(); ++a)
|
||||||
|
if((StylesheetConstant::NamespaceURI() == atts.getURI(a)) &&
|
||||||
|
("version" == atts.getLocalName(a)))
|
||||||
|
{
|
||||||
|
version = atts.getValue(a);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(version.empty())
|
||||||
|
throw SAX::SAXException("The source file does not look like a stylesheet.");
|
||||||
|
if(version != StylesheetConstant::Version())
|
||||||
|
throw SAX::SAXException("I'm only a poor version 1.0 XSLT Transformer.");
|
||||||
|
} // startLREAsStylesheet
|
||||||
|
|
||||||
void startXSLTElement(const std::string& namespaceURI,
|
void startXSLTElement(const std::string& namespaceURI,
|
||||||
const std::string& localName,
|
const std::string& localName,
|
||||||
const std::string& qName,
|
const std::string& qName,
|
||||||
|
|
Loading…
Reference in a new issue