[Openstack-docs] Use of XML xi:include with xpointer

Sean Roberts seanrob at yahoo-inc.com
Fri Aug 2 03:46:30 UTC 2013


I am trying to follow your first example. What works with ... xpointer="element(controller-os)", fails with below

<?xml version="1.0" encoding="utf-8"?>
<chapter xmlns="http://docbook.org/ns/docbook"
  xmlns:xi="http://www.w3.org/2001/XInclude"
  xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
  xml:id="bk001-ch003-associate-general">
  <title>Associate General</title>
<section id="controller-os"><xi:include href="../basic-install/src/basic-install_controller-common.xml" xpointer="xpointer(id('controller-os')/*)"/>
  <para><link xlink:href="https://blueprints.launchpad.net/openstack-manuals/+filebug">Submit a bug on
    the section above</link></para></section>
...
source file
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
    xmlns:xi="http://www.w3.org/2001/XInclude"
    xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
    xml:id="basic-install_controller-common">
                <title>Common services</title>
          <section xml:id="controller-os">
        <title>Operating System</title>

Sean Roberts
Infrastructure Strategy
seanrob at yahoo-inc.com<mailto:seanrob at yahoo-inc.com> (925) 980-4729

On Jul 31, 2013, at 8:36 AM, Shaun McCance <shaunm at gnome.org<mailto:shaunm at gnome.org>> wrote:

XInclude doesn't let you add child elements to the included element,
but you can include multiple elements with XInclude, just not with
the element() scheme. The xpointer() scheme allows you to use XPath,
so you can put something at the end by manually duplicating the
section element, then including the child content of the target
section element:

<section id="some_id">
 <xi:include href="some_file.xml"
            xpointer="xpointer(id('some_id')/*)"/>
 <para>Something at the end</para>
</section>

It's more complicated to put something at the beginning, because
you have to account for things like title and info elements. Not
accounting for titleabbrev and subtitle:

<section id="some_id">
 <xi:include href="some_file.xml"
            xpointer="xmlns(db=http://docbook.org/ns/docbook)
                      xpointer(id('some_id')/db:title)">
   <xi:fallback/>
 </xi:include>
 <xi:include href="some_file.xml"
            xpointer="xmlns(db=http://docbook.org/ns/docbook)
                      xpointer(id('some_id')/db:info)">
   <xi:fallback/>
 </xi:include>
 <para>Something at the beginning</para>
 <xi:include href="some_file.xml"
            xpointer="xmlns(db=http://docbook.org/ns/docbook)
                      xpointer(id('some_id')/*
                      [not(self::db:title or self::db:info)]
                      )"/>
 <para>Something at the end</para>
</section>

Kind of messy, but still more long-term maintainable than manually
including each child element of the target section.

I wrote a howto on XInclude a couple years back, which you might
find useful:

http://blogs.gnome.org/shaunm/2011/07/21/understanding-xinclude/

--
Shaun

On Wed, 2013-07-31 at 02:41 +0000, Sean Roberts wrote:
Both actually. I want to place a submit bug link at the end of each
section. Also want to add some text at the beginning for many of the
included sections describing training objectives.


I'd also be interested in ideas on using xslt to rip and replace tags.
But that probably can wait a little bit.

~sean

On Jul 30, 2013, at 9:18, "Anne Gentle"
<annegentle at justwriteclick.com> wrote:


Hi Sean,
Do you want some sort of "glue text" so that the guide can be read
in a linear way? Or is it text that you'll use over and over, such
as "Now go take the test." Let us know what you're trying to do.


You can't really strip a tag at a time without XSLT (the transform
code that lives in the Maven plugin).
Anne


On Tue, Jul 30, 2013 at 9:19 AM, Sean Roberts
<seanrob at yahoo-inc.com> wrote:
       Ideas on how to add text to the included section or final
       page? Part of the problem may be from that I'm stuck using
       the chapter or section of the original XML. If I could
       include, strip the section tags, then I could add text no
       problem.

       ~sean

       On Jul 30, 2013, at 6:54, "Anne Gentle"
       <annegentle at justwriteclick.com> wrote:


I think DocBook sees the markup as a closed section
followed by a para whic is invalid.

Anne Gentle
Content Stacker
anne at openstack.org



On Jul 30, 2013, at 8:38 AM, Sean Roberts
<seanrob at yahoo-inc.com> wrote:


I am pulling in a section through <xi:include
href="http.....xpointer="element(foobar)"></xi:include>
If I want to use additional text, I'm forced to make it
a section as well. I want to add text to the beginning
or end of the the included section.
I tried <xi:include
href="http.....xpointer="element(foobar)"><para>blah
blah</para></xi:include>
, which shows up without error in oxygen, but maven
seems to strip it out during HTML build.

~sean

On Jul 30, 2013, at 6:24, "Anne Gentle"
<annegentle at justwriteclick.com> wrote:


Hi Sean,
Post your XML code so we can take a closer look, or a
link to the patch and the file name so we can look at
it.
Thanks!
Anne


On Tue, Jul 30, 2013 at 2:56 AM, Sean Roberts
<seanrob at yahoo-inc.com> wrote:
       I have another question. I'm bringing in the
       sections which is the smallest page into the
       built HTML. I'm trying to add text and links
       within the final HTML page without success.
       Oxygen shows the link and text fine, but the
       maven built site only has the included
       section. Perhaps some adjustment within the
       pom file...

       ~sean

       On Jul 29, 2013, at 9:34, "Diane Fleming"
       <diane.fleming at rackspace.com> wrote:


I don't know if this will work, but this is
       how I used xpointer to pull in
content from one file to another:


Target file (pulls in content)

<title>Overview</title>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over1)"/>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over2)"/>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over3)"/>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over4)"/>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over5)"/>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over6)"/>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over7)"/>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over8)"/>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over9)"/>
<xi:include href="ch_gs_overview.xml"
              xpointer="element(over10)"/>
<xi:include href="section_virt_ext.xml"/>



Source file


  <title>Overview</title>
  <section
       xml:id="cn_overview"><title>Cloud
       Networks</title>
  <para xml:id="over1">Cloud Networks lets
       you create a virtual
      Layer 2 network, known as an isolated
       network, which gives you
      greater control and security when you
       deploy web applications.
</para>
  <para xml:id="over2">When you create a
       next generation Cloud
      Server, Cloud Networks enables you to
       attach one or more
      networks to your server. You can
       attach an isolated network
      that you have created or a Rackspace
       network. </para>
  <para xml:id="over3">If you install the
       &virt_ext;, you can create
      a virtual interface to a specified
       Rackspace or isolated
      network and attach that network to an
       existing server
      instance. You can also list virtual
       interfaces for and delete
      virtual interfaces from a server
       instance. For information
      about the &virt_ext;, see <xref
       linkend="section_virt_ext"
      />.</para>


etc.


Diane


       ----------------------------------------------
Diane Fleming
Software Developer II - US

diane.fleming at rackspace.com
Cell  512.323.6799
Office 512.874.1260
Skype drfleming0227
Google-plus diane.fleming at gmail.com






On 7/29/13 9:27 AM, "Sean Roberts"
       <seanrob at yahoo-inc.com> wrote:

I'm working on reusing content from remote
       XML formatted sources to
create new content. I'm using xi:include
       xpointer to a section of an
existing XML file. Using the editor oxygen
       I can see the remote content,
so I know my href is valid. But maven fails
       to build the html from the
xml returning bad pointer.

The remote content isn't using DTD or
       XMLschema. I'm hoping I can figure
out how to walk the structure without
       having to.
Any XML peoples that can help?

~sean

       _______________________________________________
Openstack-docs mailing list
Openstack-docs at lists.openstack.org

       http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-docs



       _______________________________________________
       Openstack-docs mailing list
       Openstack-docs at lists.openstack.org
       http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-docs





--
Anne Gentle
annegentle at justwriteclick.com




--
Anne Gentle
annegentle at justwriteclick.com
_______________________________________________
Openstack-docs mailing list
Openstack-docs at lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-docs



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-docs/attachments/20130802/47ec700d/attachment-0001.html>


More information about the Openstack-docs mailing list