xsl-list
[Top] [All Lists]

Re: [xsl] Cannot include namespaces [XSLT 1.0] xsltproc

2010-08-25 04:34:05

It seems to me this case only. I have just modified my xsltproc command to

xsltproc -o /Applications/Pankaj/main.xml --noout --novalid
/Applications/Pankaj/Elsevier_Books.xsl /Applications/Pankaj/main.xml


where novaild =>[Skip loading the document's DTD] and perfect namespaces
are added to<chapter>. but alas I miss the external entities (&dagger;
etc).
To get the external entities you need to read the DTD, and if you read the DTD, the default attributes/namespaces will apply.

So you need to bite the bullet: as a consequence of this DTD, the chapter element is in the namespace http://www.elsevier.com/xml/common/dtd, and your stylesheet therefore needs to match it exactly as if it were written <chapter xmlns="http://www.elsevier.com/xml/common/dtd";> in the source document.

Michael Kay
Saxonica



it's one of those DTDs that adds
default namespace declarations to elements
Below is the DTD

If you look at top level namespaces defination they are included by
default. "Is there a way to over rule this. Modifying DTD will be my last
option and desirable. "

<!ENTITY % top-level.att
                "xmlns           CDATA               #FIXED  %ESBK.xmlns;
                 version         CDATA               #FIXED  '5.2'
                 xmlns:ce        CDATA               #FIXED  %ESCE.xmlns;
                 xmlns:xlink     CDATA               #FIXED  %XLINK.xmlns;
                 xml:lang        %language;          'en'">


!--    Typical invocation:
         <!ENTITY % common.ent
             PUBLIC "-//ES//ELEMENTS common element pool version
1.1.0//EN//XML"
             "common110.ent">
         %common.ent;
-->

<!-- namespaces and public identifiers -->

<!ENTITY % ESCE.xmlns   "'http://www.elsevier.com/xml/common/dtd'">
<!ENTITY % ESSB.xmlns
"'http://www.elsevier.com/xml/common/struct-bib/dtd'">
<!ENTITY % ESTB.xmlns   "'http://www.elsevier.com/xml/common/table/dtd'">
<!ENTITY % XLINK.xmlns  "'http://www.w3.org/1999/xlink'">
<!ENTITY % CALS.xmlns   "'http://www.elsevier.com/xml/common/cals/dtd'">



Here what the root dtd looks like.




<!--    Supported doctypes: book, chapter, simple-chapter, examination,
fb-non-chapter,
         glossary, index, introduction, bibliography

         Typical invocation:

         <!DOCTYPE book
           PUBLIC "-//ES//DTD book DTD version 5.2.1//EN//XML"
           "book521.dtd">

         or

         <!DOCTYPE chapter
           PUBLIC "-//ES//DTD book DTD version 5.2.1//EN//XML"
           "book521.dtd">

         or

         <!DOCTYPE simple-chapter
           PUBLIC "-//ES//DTD book DTD version 5.2.1//EN//XML"
           "book521.dtd">

         or

         <!DOCTYPE examination
           PUBLIC "-//ES//DTD book DTD version 5.2.1//EN//XML"
           "book521.dtd">
         or

         <!DOCTYPE fb-non-chapter
           PUBLIC "-//ES//DTD book DTD version 5.2.1//EN//XML"
           "book521.dtd">

         or

         <!DOCTYPE glossary
           PUBLIC "-//ES//DTD book DTD version 5.2.1//EN//XML"
           "book521.dtd">

         or

         <!DOCTYPE index
           PUBLIC "-//ES//DTD book DTD version 5.2.1//EN//XML"
           "book521.dtd">

         or

         <!DOCTYPE introduction
           PUBLIC "-//ES//DTD book DTD version 5.2.1//EN//XML"
           "book521.dtd">

         or

         <!DOCTYPE bibliography
           PUBLIC "-//ES//DTD book DTD version 5.2.1//EN//XML"
           "book521.dtd">
-->

<!-- set local parameter entities -->

<!ENTITY % local.spar.data   "| ce:index-flag">
<!ENTITY % local.par.data    "| ce:index-flag">
<!ENTITY % local.textfn.data "| ce:br">

<!-- include the latest version of the common element pool -->

<!ENTITY % common.ent
     PUBLIC "-//ES//ELEMENTS common element pool version 1.1.3//EN//XML"
     "common113.ent">
%common.ent;

<!-- namespaces and public identifiers -->

<!ENTITY % ESBK.xmlns "'http://www.elsevier.com/xml/bk/dtd'">

<!-- attribute type entities -->

<!ENTITY % docsubtype
"(bk|chp|scp|exm|gls|idx|itr|bib|app|bio|for|pre|ack|ctr|rev|htu|ded)">

<!-- attribute group entities -->

<!ENTITY % top-level.att
                "xmlns           CDATA               #FIXED  %ESBK.xmlns;
                 version         CDATA               #FIXED  '5.2'
                 xmlns:ce        CDATA               #FIXED  %ESCE.xmlns;
                 xmlns:xlink     CDATA               #FIXED  %XLINK.xmlns;
                 xml:lang        %language;          'en'">

<!-- elsevier-book -->

<!ELEMENT   book                ( info, top, ce:floats?, front?, body,
rear? )>
<!ATTLIST   book
                 %top-level.att;
                 docsubtype      %docsubtype;        #FIXED  "bk">

<!ELEMENT   info                ( ce:pii, ce:doi?, ce:isbn, ce:issn?,
ce:document-thread?,
                                   ce:copyright, ce:imprint?, ce:doctopics?
)>

<!ELEMENT   top                 ( %titles;, ce:edition?,
ce:copyright-line, cover-image?,
                                   ce:editors*, ce:author-group*,
dedication*, ce:sections )>

<!ELEMENT   cover-image         ( ce:figure )>

<!ELEMENT   dedication              ( ce:simple-para+ )>

<!ELEMENT   front               ( ce:include-item+ )>

<!ELEMENT   body                ( volume | part | section |
ce:include-item )+>

<!ELEMENT   volume              ( ce:label?, ce:title?, ce:author-group*,
                                                   ( part | section |
ce:include-item )+ )>
<!ATTLIST   volume
                 %common-reqref.att;
                 %common-role.att;>

<!ELEMENT   part                ( ce:label?, ce:title?, ce:author-group*,
                                   ( section | ce:include-item |
ce:further-reading )+ )>
<!ATTLIST   part
               %common-reqref.att;
               %common-role.att;>

<!ELEMENT   section             ( ce:label?, ce:title?, ce:author-group*,
                                   ( ce:include-item | ce:further-reading
)+ )>
<!ATTLIST   section
               %common-reqref.att;
               %common-role.att;>

<!ELEMENT   introduction        ( info, ce:floats?, ce:title,
ce:author-group*,
                                   ce:sections?, ( ce:bibliography |
ce:further-reading )* )>
<!ATTLIST   introduction
                 %common-reqref.att;
                 %top-level.att;
                 %common-role.att;
                 docsubtype      %docsubtype;        #FIXED  "itr">

<!ELEMENT   chapter             ( ce:footnote*, info, ce:floats?,
ce:label?, ce:title, ce:subtitle?,
                                   ce:author-group*, ce:displayed-quote?,
poem?,
                                   outline?, objectives?, ce:nomenclature?,
ce:acknowledgment?,
                                   ce:intro?, ( ce:sections | subchapter |
exam )+,
                                   ( ( ce:bibliography | ce:further-reading
)+,
                                     ( ce:section | exam )* )? )>
<!ATTLIST   chapter
                 %common-reqref.att;
                 %top-level.att;
                 %common-role.att;
                 docsubtype      %docsubtype;        #FIXED  "chp">

<!ELEMENT   simple-chapter      ( ce:footnote*, info, ce:floats?,
ce:label?, ce:title, ce:subtitle?,
                                   ce:author-group*, ce:displayed-quote?,
poem?,
                                   outline?, objectives?, ce:nomenclature?,
ce:acknowledgment?,
                                   ce:intro?, ( ce:sections | subchapter |
exam )*,
                                   ( ( ce:bibliography | ce:further-reading
)+,
                                     ( ce:section | exam )* )? )>
<!ATTLIST   simple-chapter
                 %common-reqref.att;
                 %top-level.att;
                 %common-role.att;
                 docsubtype      %docsubtype;        #FIXED  "scp">

<!ELEMENT   subchapter          ( ce:footnote*, ce:label?, ce:title,
ce:author-group*,
                                   ce:displayed-quote?, ce:nomenclature?,
ce:acknowledgment?, ce:intro?,
                                   ( ce:sections | subchapter | exam )+,
                                   ( ce:bibliography | ce:further-reading
)+,
                                   ( ce:section | exam )* )>
<!ATTLIST   subchapter
                 %common-reqref.att;
                 %common-role.att;>

<!ELEMENT   rear                ( rearpart+ )>

<!ELEMENT   rearpart            ( ce:label?, ce:title?, ce:author-group*,
ce:include-item+ )>
<!ATTLIST   rearpart
                 %common-reqref.att;
                 %common-role.att;>

<!ELEMENT   fb-non-chapter      ( info, ce:floats?, ce:label?, ce:title,
                                   ( ce:author-group | ce:nomenclature |
ce:para | ce:section )*,
                                   ce:bibliography? , ce:further-reading?)>
<!ATTLIST   fb-non-chapter
                 %common-reqref.att;
                 %top-level.att;
                 %common-role.att;
                 docsubtype      %docsubtype;        #REQUIRED>

<!ELEMENT   exam                ( ce:title?, ce:exam-questions,
ce:exam-answers? )>

<!ELEMENT   outline             ( ce:list )>

<!ELEMENT   objectives          ( ce:section-title?, ce:para+ )>

<!ELEMENT   poem                        ( ce:title?, ce:author?, stanza+,
ce:source? )>

<!ELEMENT   stanza                      ( line+ )>

<!ELEMENT   line                        ( %richstring.data; )*>

<!ELEMENT   examination         ( info, ce:floats?, ce:label?, ce:title,
ce:author-group*,
                                   ce:intro?, exam* )>
<!ATTLIST   examination
                 %common-reqref.att;
                 %top-level.att;
                 %common-role.att;
                 docsubtype      %docsubtype;        #FIXED  "exm">

<!ELEMENT   glossary            ( info, ce:label?, ce:glossary* )>
<!ATTLIST   glossary
                 %common-reqref.att;
                 %top-level.att;
                 %common-role.att;
                 docsubtype      %docsubtype;        #FIXED  "gls">

<!ELEMENT   index               ( info, ce:label?, ce:index* )>
<!ATTLIST   index
                 %common-reqref.att;
                 %top-level.att;
                 %common-role.att;
                 docsubtype      %docsubtype;        #FIXED  "idx">

<!ELEMENT   bibliography        ( info, ce:label?, ce:further-reading* )>
<!ATTLIST   bibliography
                 %common-reqref.att;
                 %top-level.att;
                 %common-role.att;
                 docsubtype      %docsubtype;        #FIXED  "bib">

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--