<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:gd="http://schemas.google.com/g/2005" xmlns:georss="http://www.georss.org/georss" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-9087462119098741786</atom:id><lastBuildDate>Fri, 30 Aug 2024 09:47:40 +0000</lastBuildDate><category>DITA</category><category>Video</category><category>xslt xml html</category><title>Flow Write</title><description>Lisha's Technical Writing Blog</description><link>http://flowwrite.blogspot.com/</link><managingEditor>noreply@blogger.com (LISHA LI)</managingEditor><generator>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>Lisha's Technical Writing Blog</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-7835225879414613649</guid><pubDate>Mon, 23 Feb 2015 19:24:00 +0000</pubDate><atom:updated>2015-02-23T11:24:15.013-08:00</atom:updated><title>What is API Documentation</title><description>&lt;span style="background-color: white; color: #333333; font-family: Arial, sans-serif; font-size: 13px; line-height: 17px;"&gt;I really like this blog posting for the STC Puget Sound chapter that explains what API documentation is all about. &lt;a href="http://www.stc-psc.org/wp/what-is-api-documentation/"&gt;Click to read&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2015/02/what-is-api-documentation.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-2105281002342469070</guid><pubDate>Fri, 01 Aug 2014 17:21:00 +0000</pubDate><atom:updated>2014-08-01T10:40:27.668-07:00</atom:updated><title>Single-sourcing strategy I used for a Developer Guide  </title><description>I utilized single-sourcing for most of my documentation projects. Here is an example of &amp;nbsp;how I accomplished single-sourcing for a Developer Guide:&lt;br /&gt;
&lt;br /&gt;
1) The document needs to be delivered to two different formats: internal developers as PDF and external developers as HTML. The PDF version includes more topics than the HTML version. To accomplish this, I wrote the source file in DITA XML, and created two different ditamaps: one for PDF and one for HTML. The PDF version ditamap includes several topics that are specific for internal users but most topics are reused by both ditamaps.&lt;br /&gt;
&lt;br /&gt;
2) I used conditional text for content within a topic that is intended for different audiences by applying @audience:&lt;br /&gt;
&lt;br /&gt;
&lt;div audience="”internal”"&gt;
&lt;div audience="”internal”"&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;lt;p audience=”internal”&amp;gt;Information for internal users&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;lt;p audience=”external”&amp;gt;Information for external users&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
3) I used content reference for content duplications. For example: Some APIs have same input parameters. When a parameter was first motioned, I added @id for it:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;lt;p id=”parameterA”&amp;gt;Information about parameter A&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
If the same parameter appeared later in a different document, I used @conref to reference to it:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: #0b5394;"&gt;&amp;lt;p conref=”filename.xml#topicid/parameterA” /&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
4) I used application name as a keyword variable in my document to avoid manually updates if the application name changes later. At the beginning of the ditamap, I used &lt;keydef&gt; to define the application name as a keyword:&lt;/keydef&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div id="”parameterA”"&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;lt;keydef keys="AppName"&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;lt;topicmeta&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;lt;keywords&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;lt;keyword&amp;gt;ACTIVE Passport&amp;lt;/keyword&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;lt;/keywords&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;nbsp;&amp;lt;/topicmeta&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #3d85c6;"&gt;&amp;lt;/keydef&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;div conref="”filename.xml#topicid/parameterA”"&gt;
&lt;/div&gt;
&lt;br /&gt;
Anywhere in a topic, when needed to mention the application name, I used the &lt;keyword&gt; reference:&lt;/keyword&gt;&lt;br /&gt;
&lt;keyword&gt;&lt;br /&gt;&lt;/keyword&gt;
&lt;span style="color: #0b5394;"&gt;&amp;lt;keyword keyref="AppName"&amp;gt;&amp;lt;/keyword&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The application name always changes for a new product. If it happens, I only need to change the keyword in the ditamap.&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2014/08/single-sourcing-in-dita.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-1399457419681060590</guid><pubDate>Mon, 03 Feb 2014 23:00:00 +0000</pubDate><atom:updated>2014-02-03T15:01:15.174-08:00</atom:updated><title>Organizing Web application online help</title><description>&lt;div class="MsoNormal"&gt;
&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Organizing help content is a
very important part in technical writing. I always find it’s quite challenging
and always in the process of making the organization more efficient. These are
the main methods that I am using to organize the help content:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;· &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Organizing by
screen:&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #1f497d;"&gt; List out all the tasks and
topics that relate to each main screen. This organization might help users
stuck on a particular screen. We also provide tooltips and FAQ in the major
screens to help users to find information faster. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;· &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Organizing by
steps:&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #1f497d;"&gt; When creating an event, there are
several steps in the wizard. I make each step as a category, and group all the
related tasks and topics together under the step, and follow the sequence of
the steps.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraph" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;· &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Organizing by
related information:&lt;/span&gt;&lt;/b&gt;&lt;span style="color: #1f497d;"&gt; Related information
contains a series of logically related links placed at the end or along the
side of each topic. This method provides navigation directly within the topic,
where users often spend the most time. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Other methods that I also might
be considering when organizing help content are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraph" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;· &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Organizing by
audience: &lt;/span&gt;&lt;/b&gt;&lt;span style="color: #1f497d;"&gt;Audience may be identified by
their roles. By doing this, you can present the topics most relevant to that
audience.&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraph" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraph" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;· &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Organizing by
skill level: &lt;/span&gt;&lt;/b&gt;&lt;span style="color: #1f497d;"&gt;Skill level can be divided
into beginning and advanced tasks. Users new to the system can see a list of
topics appropriate to beginners, while advanced users can see the more
difficult topics.&lt;b&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraph" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="MsoListParagraph" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="color: #1f497d;"&gt;· &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #1f497d;"&gt;Organizing by
format:&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #1f497d;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt; Format can be grouped by videos,
PDF, online help, or other formats. This helps users looking for help material
based on their leaning preferences.&lt;/span&gt;&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2014/02/organizing-web-application-online-help.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-8775042858572328289</guid><pubDate>Wed, 20 Nov 2013 00:00:00 +0000</pubDate><atom:updated>2013-11-19T16:02:46.182-08:00</atom:updated><title>Digital Rights Management</title><description>&lt;div class="MsoNormal"&gt;
&lt;span style="line-height: 115%;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;Digital Rights Management (DRM) refers to any technology that controls
how the digital content, such as audio and video, can be used and distributed. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="line-height: 115%;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="line-height: 115%;"&gt;DRM is utilized by the digital-content publisher to prevent
unauthorized sharing. For example, the Apple iTunes Store &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;formerly &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;use&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;d&lt;/span&gt;&lt;span style="line-height: 115%;"&gt; a DRM system to limit the number of
computers that songs allowed to be played on. &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;Since
2009, iTunes Stores has removed DRM from its music catalog. &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;However, television shows
and movies are still encoded with DRM restriction. &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;Each &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;downloaded &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;file includ&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;es&lt;/span&gt;&lt;span style="line-height: 115%;"&gt; information about the owner of the file and
how many times the file has been transferred. The&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;
&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;protected files &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;can’t &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;play on unauthorized
computers&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="line-height: 115%;"&gt;DRM is important to d&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;igital-content publishers
&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;since it helps ensure that they will receive the
appropriate revenue for their products. Although digital content is protected
by copyright laws, it is very difficult to police the Web and catch
law-breakers. DRM technology focuses on making it impossible to steal content
in the first place. &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;Typically, DRM encrypts or marks the content with
watermark so that the content cannot be freely distribute&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;d&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;. &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="line-height: 115%;"&gt;Unlike iTunes, s&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;ome online
music stores use more restrictive DRM to allow downloaded songs only to be
played while the customer subscribes to a certain music service. Customers
cannot play those songs if they cancel the subscription.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="line-height: 115%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="line-height: 115%;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;DVD producers use a copy-control technology to prevent or distort
copying of DVDs. &amp;nbsp;E-books are usually
limited to a certain number of reading devices and some e-publishers prevent
any copying or printing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="line-height: 115%;"&gt;&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="line-height: 115%;"&gt;Some mobile manufactures also employ &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;DRM technology
to restrict the use of their content. On Nokia Series 40 phones, the “Send”
option of a DRM-protected file is grayed out to prevent users from sending such
a file via MMS. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;span style="font-family: Verdana, sans-serif;"&gt;&lt;span style="line-height: 115%;"&gt;By controlling the use and distribution of digital
media, DRM helps &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;digital-&lt;/span&gt;&lt;span style="line-height: 115%;"&gt;publishers
limit the illegal sharing of copyrighted works. &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;DRM in some areas is considered a controversial
technology, as some people argue that it takes away rights that consumers should
have. However, digital-content publishers &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;believe &lt;/span&gt;&lt;span style="line-height: 115%;"&gt;DRM is necessary to ensure that they
are paid for their products.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 115%; mso-bidi-language: AR-SA; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: ZH-CN;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2013/11/digital-rights-management.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-6985024894349975834</guid><pubDate>Tue, 19 Nov 2013 23:35:00 +0000</pubDate><atom:updated>2013-11-19T15:53:42.743-08:00</atom:updated><title>SOAP and REST</title><description>&lt;div class="MsoNormal"&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 0in 0in 10pt;"&gt;
&lt;strong&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;What is SOAP?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 0in 0in 10pt;"&gt;
&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-size: 12pt; line-height: 18px;"&gt;SOAP stands for Simple Object Access Protocol. SOAP is a XML-based protocol for communication between applications. SOAP is&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;&amp;nbsp;&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;platform and language independent. SOAP can be used over any transport protocol, such as HTTP, SMTP, TCP, or JMS.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 0in 0in 10pt;"&gt;
&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-size: 12pt; line-height: 18px;"&gt;The SOAP architecture consists of several layers of specifications for message format, message exchange patterns, transport protocol bindings, message processing models, and protocol extensibility.&lt;/span&gt;&lt;span style="color: #404040; font-size: 12pt; line-height: 18px;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 0in 0in 0.0001pt;"&gt;
&lt;span style="font-size: 12pt; line-height: 18px;"&gt;A SOAP message is a XML document containing an Envelope that defines what is in the message and how to process it, a Header that contains header information, and a Body that contains call and response information.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 10pt 0in;"&gt;
&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-size: 12pt; line-height: 18px;"&gt;Below is an example to show a typical SOAP operation. A&amp;nbsp;&lt;span class="SpellE"&gt;GetUserDetails&lt;/span&gt;&amp;nbsp;request is sent to a server. The request has a&amp;nbsp;&lt;span class="SpellE"&gt;UserID&lt;/span&gt;&amp;nbsp;parameter. The server returns a&amp;nbsp;&lt;span class="SpellE"&gt;PhoneNumber&lt;/span&gt;&amp;nbsp;parameter. The result is embedded inside a SOAP XML response Envelope and can be integrated into an application. The namespace for the function is defined in&amp;nbsp;&lt;i&gt;http://www.example.org/phonebook&lt;/i&gt;.&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 0in 0in 10pt;"&gt;
&lt;span style="font-size: 12pt; line-height: 18px;"&gt;The SOAP request could be:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #eeeeee; border: 1pt solid windowtext; padding: 2pt;"&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span class="GramE"&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;&lt;/span&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;version="1.0"?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;lt;&lt;span class="SpellE"&gt;soap&lt;span class="GramE"&gt;:Envelope&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span class="SpellE"&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;xmlns:soap&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;="http://www.w3.org/2001/12/soap-envelope"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span class="SpellE"&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;soap:encodingStyle&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;="http://www.w3.org/2001/12/soap-encoding"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;lt;&lt;span class="SpellE"&gt;soap&lt;span class="GramE"&gt;:body&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;span class="SpellE"&gt;pb&lt;/span&gt;="http://www.example.com/phonebook"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span class="SpellE"&gt;&lt;span class="GramE"&gt;pb:&lt;/span&gt;GetUserDetails&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span class="SpellE"&gt;pb&lt;span class="GramE"&gt;:UserID&lt;/span&gt;&lt;/span&gt;&amp;gt;386&amp;lt;/&lt;span class="SpellE"&gt;pb:UserID&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;span class="SpellE"&gt;pb&lt;span class="GramE"&gt;:GetUserDetails&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;lt;/&lt;span class="SpellE"&gt;soap&lt;span class="GramE"&gt;:Body&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;lt;/&lt;span class="SpellE"&gt;soap&lt;span class="GramE"&gt;:Envelope&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 10pt 0in;"&gt;
&lt;span style="font-size: 12pt; line-height: 18px;"&gt;The SOAP response could be:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #eeeeee; border: 1pt solid windowtext; padding: 2pt;"&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span class="GramE"&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;&lt;/span&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;version="1.0"?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;lt;&lt;span class="SpellE"&gt;soap&lt;span class="GramE"&gt;:Envelope&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span class="SpellE"&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;xmlns:soap&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;="http://www.w3.org/2001/12/soap-envelope"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span class="SpellE"&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;soap:encodingStyle&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #333333; font-size: 12pt;"&gt;="http://www.w3.org/2001/12/soap-encoding"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;lt;&lt;span class="SpellE"&gt;soap&lt;span class="GramE"&gt;:body&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;span class="SpellE"&gt;pb&lt;/span&gt;="http://www.example.com/phonebook"&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span class="SpellE"&gt;&lt;span class="GramE"&gt;pb:&lt;/span&gt;GetUserDetailsResponse&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;span class="SpellE"&gt;pb&lt;span class="GramE"&gt;:PhoneNumber&lt;/span&gt;&lt;/span&gt;&amp;gt;7893652459&amp;lt;/&lt;span class="SpellE"&gt;pb:PhoneNumber&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;span class="SpellE"&gt;pb&lt;span class="GramE"&gt;:GetUserDetailsResponse&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;nbsp;&amp;lt;/&lt;span class="SpellE"&gt;soap&lt;span class="GramE"&gt;:Body&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;&amp;lt;/&lt;span class="SpellE"&gt;soap&lt;span class="GramE"&gt;:Envelope&lt;/span&gt;&lt;/span&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 10pt 0in 5pt;"&gt;
&lt;strong&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;What is REST?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 0in 0in 10pt;"&gt;
&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-size: 12pt; line-height: 18px;"&gt;REST stands for Representational State Transfer. REST is not a protocol but an architectural style for designing network applications. REST is also platform and language independent. It is a lightweight alternative to SOAP and WSDL-based Web Services. Unlike SOAP, REST is not bound to XML. CSV and JSON can also be used.&amp;nbsp;&amp;nbsp;REST doesn’t have standard specifications. It defines a set of architectural principles based on resources. REST uses URI and HTTP for methods&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;GET (retrieve data), POST (update), PUT (add) and DELETE&amp;nbsp;&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;to expose resources.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 0in 0in 10pt;"&gt;
&lt;span style="font-size: 12pt; line-height: 18px;"&gt;A&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;&amp;nbsp;REST&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;&amp;nbsp;request for the above example could be:&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #eeeeee; border: 1pt solid windowtext; padding: 2pt;"&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;http://www.example.com/phonebook/UserDetails/386&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 10pt 0in;"&gt;
&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-size: 12pt; line-height: 18px;"&gt;The response&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;could be a plain text with raw value “7893652459” and is not embedded inside anything.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 0in 0in 10pt;"&gt;
&lt;span style="font-size: 12pt; line-height: 18px;"&gt;In REST,&amp;nbsp;&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;URIs is the equivalent of nouns. In the example, t&lt;/span&gt;he URI method is not called&amp;nbsp;&lt;span class="SpellE"&gt;GetUserDetails&lt;/span&gt;, but&amp;nbsp;&lt;span class="SpellE"&gt;UserDetails&lt;/span&gt;. It is a common convention in REST design to use nouns rather than verbs to represent resources.&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 0in 0in 10pt;"&gt;
&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-size: 12pt; line-height: 18px;"&gt;The example above is a simple REST request with a single parameter. REST can easily handle more complex requests, including multiple parameters. In most cases, you'll just pass along parameters in the URI. For example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="background-color: #eeeeee; border: 1pt solid windowtext; padding: 2pt;"&gt;
&lt;div class="MsoNormal" style="border: none; font-family: Calibri, sans-serif; font-size: 11pt; margin: 0in 0in 0.0001pt; padding: 0in;"&gt;
&lt;span style="color: #333333; font-size: 12pt;"&gt;http://www.example.com/phonebook/UserDetails?firstName=Lisha&amp;amp;lastName=Li&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 10pt 0in 5pt;"&gt;
&lt;strong&gt;&lt;span style="font-size: 12pt; line-height: 18px;"&gt;Summary&lt;/span&gt;&lt;/strong&gt;&lt;b&gt;&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-size: 12pt; line-height: 18px;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin: 10pt 0in;"&gt;
&lt;span style="background-color: white; background-position: initial initial; background-repeat: initial initial; font-size: 12pt; line-height: 18px;"&gt;In summary, both SOAP and REST are used for communication between applications. They are both platform and language independent. SOAP uses interfaces and named spaces to expose operations, while REST uses URI and HTTP methods to expose resources. REST doesn’t enforce message format, while SOAP only permits XML. SOAP has strict specification for every part of implementation, while REST gives the concept and is less restrictive about the implementation. In addition, REST follows stateless model, while SOAP has specifications for&amp;nbsp;&lt;span class="SpellE"&gt;stateful&lt;/span&gt;&amp;nbsp;implementation.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2013/11/soap-and-rest.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-6411103996190727069</guid><pubDate>Wed, 30 Oct 2013 20:53:00 +0000</pubDate><atom:updated>2013-10-30T13:53:37.920-07:00</atom:updated><title>Why users can't find answers in help material</title><description>&lt;iframe allowfullscreen="" frameborder="0" height="356" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/27494915" style="border-width: 1px 1px 0; border: 1px solid #CCC; margin-bottom: 5px;" width="427"&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style="margin-bottom: 5px;"&gt;
&lt;strong&gt; &lt;a href="https://www.slideshare.net/TomJohnson7/why-users-cant-find-answers-in-help-material" target="_blank" title="Why users can't find answers in help material"&gt;Why users can't find answers in help material&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="http://www.slideshare.net/TomJohnson7" target="_blank"&gt;Tom Johnson&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2013/10/why-users-cant-find-answers-in-help.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-9015068567275768284</guid><pubDate>Wed, 09 Jan 2013 07:03:00 +0000</pubDate><atom:updated>2013-01-08T23:33:42.969-08:00</atom:updated><title>IE Display Issue</title><description>The other day, there was a strange IE display issue with my company's online help. Our help is published to HTML output to the&amp;nbsp;several&amp;nbsp;help servers that included six testing help servers and one production server. The help in the production server was displayed fine with IE, but the help pages in all the testing&amp;nbsp;environments were displayed funny, where the top and bottom were blank and only the middle part showed up. There was no problem to display the page with all the other browsers, such as Firefox and Chrome. The help pages are just static HTML with simple JaveScripts, such as Google Analytics codes, and CSS.&lt;br /&gt;
&lt;br /&gt;
When the issue was discovered by QA, at first&amp;nbsp;I thought it must be the configurations in the testing&amp;nbsp;environments were changed recently that had cause the issue. Otherwise, why the exactly same files in the production were totally displayed fine by IE.&lt;br /&gt;
&lt;br /&gt;
I then contacted the IT department who was in charge of the servers and asked if they had changed anything in the testing&amp;nbsp;environments. They denied that it was their configurations in the servers that caused the problem and &amp;nbsp;insisted that it must be the JavasScripts and CSS in my help pages caused the issue. It could be, but it was very difficult to identify the problem since the production was fine, and to make things even more complicated, not all the computer's IE had the display issue. My home computer's IE displayed the help page just fine. In addition, if I opened the HTML help files by IE locally in my personal computer, there was no problem at all. So every time when I modified the help file, I had to deploy it to the testing help server to see the change.&lt;br /&gt;
&lt;br /&gt;
I deleted all the JavaScripts code in the help file, but the problem still existed. I then deleted the external CSS links, the page became normal in IE, which seemed like it was the CSS that caused the problem. I thought it must be one specific class that was unable to be rendered by IE. Therefore, I removed one class at a time from the testing page to see the outcome. Finally, I was able to identify which class caused the problem, but it didn't help. The class was very simple, all it had was a background color is black. Nothing wrong with it but the IE displayed the background color as white, which made the top looked like blank. I then gave up the idea of the CSS's problem. There must be something else.&lt;br /&gt;
&lt;br /&gt;
Meanwhile, someone in the IT discovered that there was a help page didn't have the IE display issue in the testing environments. The page was the homepage of another help system, which was&amp;nbsp;manually&amp;nbsp;created by me and was not as other pages that were automatically generated by my help publishing tool. I checked that page which had the same JavaScripts and CSS with others. I then checked the other tags in the page. To my surprise, there was different metadata tag in that file, which was &amp;lt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt;meta&lt;/span&gt;&lt;span style="font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt;http-equiv&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt;=&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt;"X-UA-Compatible"&lt;/span&gt;&lt;span style="font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt; &lt;/span&gt;&lt;span style="color: red; font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt;content&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt;=&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt;"IE=9"&lt;/span&gt;&lt;span style="font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt; &lt;/span&gt;&lt;span style="color: blue; font-family: Consolas, Courier, monospace; font-size: 14px; line-height: 20px;"&gt;/&amp;gt;.&lt;/span&gt; I didn't know why I put it there initially. According to Microsoft, the meta tag forces a webpage to be rendered in IE 9 mode, which seemed have nothing to do with displaying CSS back background color to white. However, when I included this meta tag into my other help pages, the help pages finally were displayed normal by IE!&lt;br /&gt;
&lt;br /&gt;
It was a relief, but I still don't understand why.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2013/01/ie-display-issue.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-9059823737053836428</guid><pubDate>Fri, 13 Apr 2012 18:51:00 +0000</pubDate><atom:updated>2012-04-13T16:12:24.221-07:00</atom:updated><title>How to write SDK Dcoumentation</title><description>Good SDK documentation is extremely important for the adoption of software platforms. The following results are from a survey on SDK Documentation.&lt;div style="font-weight: normal; "&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;b&gt;Sample code or &lt;/b&gt;&lt;span style="font-size: 100%; "&gt;&lt;b&gt;small example apps&lt;/b&gt;&lt;/span&gt;&lt;b style="font-weight: normal; font-size: 100%; "&gt;.&lt;/b&gt;&lt;span style="font-weight: normal; font-size: 100%; "&gt; Although sample code was not  rated significantly higher than other types of content in the  multiple-choice part of the survey, it was mentioned by 61% of the  respondents in their written comments. It was referred to as "the most  helpful thing". Respondents wanted runnable examples that illustrate  something, not just "Hello World" and talked about the desire for real  world examples. There was a desire for very basic samples that would  lead to more complex ones.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;b style="font-size: 100%; "&gt;Help with getting started.&lt;/b&gt;&lt;span style="font-size: 100%; "&gt; Several  respondents mentioned the difficulty of getting started with a new  platform. One said, "People who make SDK documentation often don't think  like a beginner who is just getting started with their SDK." Another  requested "help with learning curve," and another suggested "going all  the way down to the bottom (installation and setup of tools)". Another  commented, "Once you've got the basics, it's easy to begin poking around  on your own.&lt;/span&gt;&lt;span style="font-size: 100%; "&gt;  &lt;/span&gt;&lt;span style="font-size: 100%; "&gt;But if you can't get started, that's frustrating."&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;b&gt;Explanation of why.&lt;/b&gt; Eight of the respondents  mentioned that it was important to understand why the software platform  or individual APIs should be used. One summarized this as "Why, why,  why, not what, what, what." Another cautioned that this should be from a  programmer's point of view, and not the marketing department. Case  studies and real-world examples were desired. &lt;/p&gt; &lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;b style="font-size: 100%; "&gt;Accuracy is critical. &lt;/b&gt;&lt;span style="font-size: 100%; "&gt;Respondents wanted  "absolute mathematical precision" and "no ambiguity". One respondent  said that "the most unhelpful thing in SDK documentation is incorrect  information," and another said, "Sometimes misinformation is worse than  no information at all." This suggests how valuable technical reviews  are; unfortunately, technical writers often find that getting  developers' time for reviews is very difficult.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;b style="font-size: 100%; "&gt;Ability to find information easily.&lt;/b&gt;&lt;span style="font-size: 100%; "&gt; This  theme came up in several ways. Heavy-cross referencing and indexing was  mentioned, as well as improving search capabilities. The ability to come  at the information in different ways (by topic, alphabetically, etc.)  was also mentioned.&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;b style="font-size: 100%; "&gt;Good overviews. &lt;/b&gt;&lt;span style="font-size: 100%; "&gt;30% of the respondents  mentioned overviews. Respondents desired "a high level overview of the  concepts that bridges into the detailed API documentation" and said that  it was "missing from many API documentations."&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;b style="font-size: 100%; "&gt;Content should be written by someone other than the developer.&lt;/b&gt;&lt;span style="font-size: 100%; "&gt;  &lt;/span&gt;&lt;span style="font-size: 100%; "&gt;Two  developers brought up this issue. One said it was not useful when  documentation "is written by the same person that wrote the API. To  them, everything makes perfect sense and requires little description."  Another said, "Developers should only be the Subject Matter Experts, not  the authors."&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;span style="font-size: 100%; "&gt;&lt;span style="font-size: 100%; "&gt;&lt;b&gt;Flow diagram&lt;/b&gt;. &lt;/span&gt;When explaining tough concepts, a good flow diagram goes a long way and wins developers hearts.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 100%; "&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size: 100%; "&gt;&lt;b&gt;Web APIs.&lt;/b&gt; Authentication is often required for Web APIs, and this needs to be documented in detail as well. If developers need API keys, be sure to give them step-by-step instructions on how to obtain these. Also, don’t forget that Web APIs are built on top of HTTP, which is an incredibly rich protocol. You may have HTTP-related information that requires documentation, such as caching, content type and status codes.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-weight: normal; "&gt;In conclusion, sample code, overviews, and help getting people  started should be given the highest priority. Content needs to explain  why something should be used in addition to how it is used. Also,  because accuracy is considered critical for documentation users,  managers need to be sure that the developers who created the APIs are  available for discussions with the writers and for technical reviews. &lt;/p&gt; &lt;p class="MsoNormal" style="font-weight: normal; "&gt;&lt;span style="font-size: 100%; "&gt;In the end, the best formula for effective SDK  documentation is the combination of good writers who know how to write  for a developer audience and developers who are willing to take the time  to work with them.&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: normal; "&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2012/04/how-to-write-sdk-dcoumentation.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-6262946322960003915</guid><pubDate>Fri, 09 Dec 2011 23:38:00 +0000</pubDate><atom:updated>2011-12-09T15:49:43.489-08:00</atom:updated><title>XMetaL PDF via RenderX TOC indenting problem</title><description>&lt;p class="MsoNormal"&gt;When generating &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PDF&lt;/span&gt; output from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;XMetaL&lt;/span&gt; 6.0, if you are frustrated with the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;TOC&lt;/span&gt; of the "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;XMetaL&lt;/span&gt;  Enhanced &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PDF&lt;/span&gt; via &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;RenderX&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;XEP&lt;/span&gt;" that does not have indenting of the topic title hierarchy at all, I have a simple solution for you:&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Just  copy &lt;span style="font-weight: bold; font-style: italic;"&gt;C:\Documents and Settings\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;lli&lt;/span&gt;\Application Data\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SoftQuad&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;XMetaL&lt;/span&gt; Shared\DITA_OT\demo\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;xmfo&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;cfg&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;fo&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;attrs&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;toc&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;attr&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;xsl&lt;/span&gt;&lt;/span&gt; to the following folder to override the same file in this folder:&lt;/p&gt;&lt;p style="font-weight: bold;" class="MsoNormal"&gt;&lt;em&gt;C:\Documents and  Settings\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;lli&lt;/span&gt;\Application Data\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;SoftQuad&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;XMetaL&lt;/span&gt;  Shared\DITA_OT\demo\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;xmfo&lt;/span&gt;\Customization\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;fo&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;attrs&lt;/span&gt;\&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;xm&lt;/span&gt;-&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;cfg&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="min-height: 8pt; height: 8pt; padding: 0px;"&gt; &lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;strong&gt;Note: you should  back up the original file in the second folder before the copying just in  case.&lt;/strong&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2011/12/xmetal-pdf-via-renderx-toc-indenting.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-5166612921356042258</guid><pubDate>Fri, 30 Oct 2009 22:28:00 +0000</pubDate><atom:updated>2009-11-03T15:06:00.123-08:00</atom:updated><title>Content Reuse Strategies for Building Multiple Markets Online Help</title><description>The project that I am currently working on is to build help for a web-based application that supports cross-market event registrations.&lt;br /&gt;&lt;br /&gt;We write help in DITA. We use DITA OT to publish online help in HTML format, and a tool that I created to delivery &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-corrected"&gt;embedded&lt;/span&gt; XML format help to the application user interface.&lt;br /&gt;&lt;br /&gt;To &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;maximum&lt;/span&gt; the reuse of content, three levels of strategies are adopted: &lt;ul&gt;&lt;li&gt;Topic level &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-corrected"&gt;reuse&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Paragraph level reuse&lt;/li&gt;&lt;li&gt;Phase level reuse&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Topic level reuse&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;ditamap&lt;/span&gt; can reuse &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-error"&gt;content&lt;/span&gt; in the topic level. We have core content for all markets, and market specific content for a specific market. Since &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;maps&lt;/span&gt; only processes topics in the same directory as the map, or in the sub-directories of the map's directory. The structure of the content should be &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-error"&gt;maps&lt;/span&gt; of each market are stored outside of the core and makets directories. A second level of maps can be created to organize a set of topics for one feature within the core or market directories. This second level maps can be reused by different market maps. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span id="SPELLING_ERROR_8" class="blsp-spelling-corrected"&gt;Paragraph&lt;/span&gt; level reuse&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Conditional text can reuse content in the paragraph level. If there are only one or two sentences difference in a topic for different markets, you can add an attribute to indicate which market this paragraph belongs to. By adding a filter ditaval file to the DITA OT, maket specific paragraph will be delivered to each market.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Phase level reuse&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;DITA 1.2 &lt;em&gt;&lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;keydef&lt;/span&gt; &lt;/em&gt;element can reuse content in the phase level. The keydef element can be used in combination with the keyword element in a ditamap to define and set "variables" for small pieces of content that may change fairly often, such as UI labels, product name, version etc. &lt;/p&gt;&lt;p&gt;These keys (or variables) can be redefined later in the same map or in another map and all topics that reference the keys will automatically pick up the changes. For example, you can put a particular product name into a DITA map, and indicate in topics where you want the product name to appear. When you generate output using the map, its topics will display the product name in the appropriate places. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:85%;"&gt;Keydef.ditamap&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;map&amp;gt;&lt;br /&gt;&amp;lt;keydef keys="marketname"&amp;gt;&lt;br /&gt;&amp;lt;topicmeta&amp;gt;&lt;br /&gt;&amp;lt;keywords&amp;gt;&lt;br /&gt;&amp;lt;keyword&amp;gt;Camp&amp;lt;/keyword&amp;gt;&lt;br /&gt;&amp;lt;/keywords&amp;gt;&lt;br /&gt;&amp;lt;/topicmeta&amp;gt;&lt;br /&gt;&amp;lt;/keydef&amp;gt;&lt;br /&gt;&amp;lt;keydef keys="eventname"&amp;gt;&lt;br /&gt;&amp;lt;topicmeta&amp;gt;&lt;br /&gt;&amp;lt;keywords&amp;gt;&lt;br /&gt;&amp;lt;keyword&amp;gt;Camping sites&amp;lt;/keyword&amp;gt;&lt;br /&gt;&amp;lt;/keywords&amp;gt;&lt;br /&gt;&amp;lt;/topicmeta&amp;gt;&lt;br /&gt;&amp;lt;/keydef&amp;gt;&lt;br /&gt;&amp;lt;topicref href="eventsetup.dita"/&amp;gt;&lt;br /&gt;&amp;lt;/map&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;eventsetup.ditamap&lt;/strong&gt;&lt;br /&gt;&amp;lt;concept&amp;gt;&lt;br /&gt;&amp;lt;title&amp;gt;Event Setup&amp;lt;/title&amp;gt;&lt;br /&gt;&amp;lt;conbody&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;You can use ActiveWorks &amp;lt;keyword keyref="marketname"/&amp;gt; to set up&lt;br /&gt;your &amp;lt;keyword keyref="eventname"/&amp;gt;.&amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;/conbody&amp;gt;&lt;br /&gt;&amp;lt;/concept&amp;gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2009/10/content-reuse-strategies-for-building.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-3665530333010073463</guid><pubDate>Fri, 30 Oct 2009 19:03:00 +0000</pubDate><atom:updated>2009-10-30T15:46:43.459-07:00</atom:updated><title>How to create a DITA OT plugin</title><description>When you use DITA OT to publish your DITA content, you might need to customize DITA OT &lt;span id="SPELLING_ERROR_0" class="blsp-spelling-error"&gt;XSL&lt;/span&gt; &lt;span id="SPELLING_ERROR_1" class="blsp-spelling-corrected"&gt;transformation&lt;/span&gt;. To make your DITA OT changes portable, you can create a DITA OT &lt;span id="SPELLING_ERROR_2" class="blsp-spelling-error"&gt;plugin&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;To create a &lt;span id="SPELLING_ERROR_3" class="blsp-spelling-error"&gt;plugin&lt;/span&gt;, you need to first create one or more new or &lt;span id="SPELLING_ERROR_4" class="blsp-spelling-corrected"&gt;overridden&lt;/span&gt; templates &lt;span id="SPELLING_ERROR_5" class="blsp-spelling-error"&gt;xslt&lt;/span&gt; files, second create a &lt;span id="SPELLING_ERROR_6" class="blsp-spelling-error"&gt;plugin&lt;/span&gt;.&lt;span id="SPELLING_ERROR_7" class="blsp-spelling-error"&gt;xml&lt;/span&gt; file to point to your &lt;span id="SPELLING_ERROR_8" class="blsp-spelling-error"&gt;xslt&lt;/span&gt; files, and then install this plug-in to your DITA OT.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;To create templates&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a folder in &lt;em&gt;&lt;span id="SPELLING_ERROR_9" class="blsp-spelling-error"&gt;dita&lt;/span&gt;-&lt;span id="SPELLING_ERROR_10" class="blsp-spelling-error"&gt;ot&lt;/span&gt;/demo&lt;/em&gt; to store your plug-in, such as &lt;em&gt;my-&lt;span id="SPELLING_ERROR_11" class="blsp-spelling-error"&gt;plugin&lt;/span&gt;&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;Create a folder to store your &lt;span id="SPELLING_ERROR_12" class="blsp-spelling-error"&gt;xslt&lt;/span&gt; files in &lt;em&gt;&lt;span id="SPELLING_ERROR_13" class="blsp-spelling-error"&gt;dita&lt;/span&gt;-&lt;span id="SPELLING_ERROR_14" class="blsp-spelling-error"&gt;ot&lt;/span&gt;/demo/my-&lt;span id="SPELLING_ERROR_15" class="blsp-spelling-error"&gt;plugin&lt;/span&gt;&lt;/em&gt;, such as &lt;em&gt;&lt;span id="SPELLING_ERROR_16" class="blsp-spelling-error"&gt;xsl&lt;/span&gt;&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;Create a new &lt;span id="SPELLING_ERROR_17" class="blsp-spelling-error"&gt;xslt&lt;/span&gt; file to contain the template. It's better that one &lt;span id="SPELLING_ERROR_18" class="blsp-spelling-error"&gt;xslt&lt;/span&gt; file only include one function.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;To create &lt;span id="SPELLING_ERROR_19" class="blsp-spelling-error"&gt;plugin&lt;/span&gt;.&lt;span id="SPELLING_ERROR_20" class="blsp-spelling-error"&gt;xml&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Copy a &lt;span id="SPELLING_ERROR_21" class="blsp-spelling-error"&gt;plugin&lt;/span&gt;.&lt;span id="SPELLING_ERROR_22" class="blsp-spelling-error"&gt;xml&lt;/span&gt; file from any existing &lt;span id="SPELLING_ERROR_23" class="blsp-spelling-error"&gt;plugins&lt;/span&gt; into &lt;em&gt;&lt;span id="SPELLING_ERROR_24" class="blsp-spelling-error"&gt;dita&lt;/span&gt;-&lt;span id="SPELLING_ERROR_25" class="blsp-spelling-error"&gt;ot&lt;/span&gt;/demo/my-&lt;span id="SPELLING_ERROR_26" class="blsp-spelling-error"&gt;plugin&lt;/span&gt;&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;If there are more than one &lt;&lt;em&gt;feature&gt;&lt;/em&gt; &lt;span id="SPELLING_ERROR_27" class="blsp-spelling-corrected"&gt;elements&lt;/span&gt;, delete the rest and only keep one &lt;&lt;em&gt;feature&gt;&lt;/em&gt;.&lt;/li&gt;&lt;li&gt;Change the value in the remaining &lt;em&gt;&lt;feature&gt;&lt;/em&gt;element to point to your new &lt;span id="SPELLING_ERROR_28" class="blsp-spelling-error"&gt;xslt&lt;/span&gt; files, &lt;span id="SPELLING_ERROR_29" class="blsp-spelling-corrected"&gt;separated&lt;/span&gt; by commas: &lt;em&gt;&amp;amp;&lt;span id="SPELLING_ERROR_30" class="blsp-spelling-error"&gt;lt&lt;/span&gt;; feature extension="dita.xsl.xml" value="xsl/yourxslt1.xsl,xsl.yourxslt2.xsl" type="file" / &amp;gt;&lt;/em&gt; &lt;feature extension=""&gt;&lt;feature extension="dita.xsl.xhtml" value="xsl/your_xsl1.xsl,xsl/your_xsl2.xsl" type="file"&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;strong&gt;To install your &lt;span id="SPELLING_ERROR_31" class="blsp-spelling-error"&gt;plugin&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;In your &lt;span id="SPELLING_ERROR_32" class="blsp-spelling-error"&gt;dita&lt;/span&gt;-&lt;span id="SPELLING_ERROR_33" class="blsp-spelling-error"&gt;ot&lt;/span&gt; folder, run &lt;em&gt;&lt;span id="SPELLING_ERROR_34" class="blsp-spelling-error"&gt;startcmd&lt;/span&gt;.bat.&lt;/em&gt;&lt;/li&gt;&lt;li&gt;In the &lt;span id="SPELLING_ERROR_35" class="blsp-spelling-error"&gt;cmd&lt;/span&gt;.&lt;span id="SPELLING_ERROR_36" class="blsp-spelling-error"&gt;exe&lt;/span&gt; window, type: &lt;em&gt;ant -f integrator.&lt;span id="SPELLING_ERROR_37" class="blsp-spelling-error"&gt;xml&lt;/span&gt;.&lt;/em&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;The &lt;span id="SPELLING_ERROR_38" class="blsp-spelling-error"&gt;plugin&lt;/span&gt; that you have created can be easily packed and installed once you upgrade your DITA OT, or pass to others.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2009/10/how-to-create-dita-ot-plug-in.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-4312338255989918874</guid><pubDate>Mon, 20 Oct 2008 23:35:00 +0000</pubDate><atom:updated>2011-11-17T12:02:52.250-08:00</atom:updated><title>How to perform your own transformation using DITA-OT</title><description>This task assumes that you have DITA-OT appropriate installed in your computer.&lt;br /&gt;&lt;br /&gt;DITA-OT transform DITA XML documents to other formats. However, you can tranform any XML document from command line using the Xalan XSLT processor, which is included in the DITA-OT.&lt;br /&gt;&lt;br /&gt;To do this:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Have your own XSL stylesheet written and make sure it do what you expect with the XML source files they are designed to transform. You can try out using a browser.&lt;/li&gt;&lt;li&gt;In the DITA-OT folder, click to run startcmd.bat, which automatically set the system environment variables for you.&lt;/li&gt;&lt;li&gt;The command line for most standard transformations is as follows:&lt;br /&gt;java org.apache.xalan.xslt.Process -in xmlSource -xsl stylesheet -out outputfile&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;where xmlSource is the XML source file name, stylesheet is the XSL stylesheet file name, and outputfile is the output file name.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;If you want the output to be displayed on the screen, simply omit the -out flag and argument&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;If you are using an external DTD or Schema, you need to have it to be found by the processor. Or you can just delete it from the source file. Otherwise, the processor will complain that it can't find the DTD or Schema. &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/10/how-to-perform-your-own-transformation.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-232481154511149228</guid><pubDate>Mon, 08 Sep 2008 22:55:00 +0000</pubDate><atom:updated>2008-09-08T16:10:56.890-07:00</atom:updated><title>Remix An User Manual by FLOSS Manual</title><description>The first time when I was using iGoogle, I though that it would be great if a user manual can be customized by the user using drag-and-drop &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;operation&lt;/span&gt;. And now it comes true. Someone is really doing this - &lt;a href="http://en.flossmanuals.net/"&gt;FLOSS Manual&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the Remix section of the &lt;a href="http://en.flossmanuals.net/"&gt;FLOSS Manual,&lt;/a&gt; you can just asseble each chapter or each section of a user manual as you want and then generate to PDF or HTML format. The operation is as simple as you adding widget to your iGoogle homepage.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/09/remix-user-manual-by-floss-manual.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-8985013096034624177</guid><pubDate>Mon, 25 Aug 2008 18:26:00 +0000</pubDate><atom:updated>2008-08-25T11:27:44.306-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DITA</category><title>How to embed YouTube video into DITA</title><description>&lt;p&gt;You can embed an YouTube flash video into your DITA document using the &amp;lt;object&amp;gt; element.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Get the URL of the movie value from YouTube website. For example: &lt;a href="http://www.youtube.com/v/EfmQB0stRRI&amp;amp;26hl=en"&gt;http://www.youtube.com/v/EfmQB0stRRI&amp;amp;26hl=en&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Replace any "&amp;amp;"(ampersand) characters in the URL with "%26"&lt;/li&gt;    &lt;li&gt;Use that URL in the following DITA &amp;lt;object&amp;gt; element:&lt;/li&gt; &lt;/ol&gt;  &lt;pre&gt;&amp;lt;object data="&lt;strong&gt;http://www.youtube.com/v/EfmQB0stRRI%26hl=en&lt;/strong&gt;"&lt;br /&gt;height="355" id="VideoPlayback" type="application/x-shockwave-flash"&lt;br /&gt;width="425"&amp;gt;&lt;br /&gt;&amp;lt;param name="movie"&lt;br /&gt;value="&lt;strong&gt;http://www.youtube.com/v/EfmQB0stRRI%26hl=en&lt;/strong&gt;"/&amp;gt;&lt;br /&gt;&amp;lt;param name="FlashVars" value="playerMode=embedded"/&amp;gt;&lt;br /&gt;&amp;lt;param name="allowScriptAcess" value="sameDomain"/&amp;gt;&lt;br /&gt;&amp;lt;param name="scale" value="noScale"/&amp;gt;&lt;br /&gt;&amp;lt;param name="quality" value="best"/&amp;gt;&lt;br /&gt;&amp;lt;param name="bgcolor" value="#FFF"/&amp;gt;&lt;br /&gt;&amp;lt;param name="salign" value="TL"/&amp;gt;&amp;lt;/object&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/08/how-to-embed-youtube-video-into-dita.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-2918953299170027238</guid><pubDate>Wed, 20 Aug 2008 22:39:00 +0000</pubDate><atom:updated>2008-08-25T12:03:31.237-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DITA</category><title>Which element to choose as the reusable DITA component</title><description>&lt;p&gt;Writing a reusable component allows you to reuse a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;piece&lt;/span&gt; of text insets in your DITA document and reduces the cost for maintenance.&lt;/p&gt;  &lt;h4&gt;Reusable Candidates&lt;/h4&gt;  &lt;p&gt;The following are elements reuse candidates:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;product name&lt;/li&gt;    &lt;li&gt;installation paths&lt;/li&gt;    &lt;li&gt;icon refrence&lt;/li&gt;    &lt;li&gt;note(restrictions, prerequisites, tips)&lt;/li&gt;    &lt;li&gt;individual steps&lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Element to Choose&lt;/h4&gt;  &lt;p&gt;The reusable component itself is a DITA XML file. It should follow the DITA &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;vocabulary&lt;/span&gt; rules. In the reusable component file, you can choose most of the DITA elements to wrap the reusable text; however, which element makes the component most reusable?    &lt;br /&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;For the semantically significant content, use the correct semantic elements, such as: &lt;span style="font-weight: bold"&gt;filepath&lt;/span&gt;, &lt;span style="font-weight: bold"&gt;varname&lt;/span&gt;, and &lt;span style="font-weight: bold"&gt;cmdname&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;For the non-semantic strings, choose the least restrictive element type:&lt;span style="font-weight: bold"&gt;ph&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt; &lt;span style="font-weight: bold"&gt;&lt;/span&gt;  &lt;h4&gt;&lt;strong&gt;Syntax&lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;&lt;strong&gt;Source:&amp;lt;&lt;/strong&gt;element id=&amp;#8220;element-ID&amp;#8221;&amp;gt;content (including subordinate elements&amp;lt;/element&amp;gt;    &lt;br /&gt;&lt;strong&gt;Reuse:&amp;lt;&lt;/strong&gt;element conref=&amp;#8220;source-file.dita#topic-ID/element-ID&amp;#8221;&amp;gt;&amp;lt;/element&amp;gt;    &lt;br /&gt;For example:    &lt;br /&gt;&lt;strong&gt;Source:&amp;lt;&lt;/strong&gt;ph id=&amp;#8220;otk&amp;quot;&amp;gt;DITA Open Toolkit&amp;lt;/ph&amp;gt;    &lt;br /&gt;&lt;strong&gt;Reuse:&lt;/strong&gt; &amp;lt;ph conref=&amp;#8220;contentReuse.dita#conrefs/otk&amp;quot;&amp;gt;&amp;lt;/ph&amp;gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/08/how-to-write-reusable-component-dita.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-5337070158691124158</guid><pubDate>Fri, 08 Aug 2008 19:10:00 +0000</pubDate><atom:updated>2008-08-08T12:13:04.283-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">xslt xml html</category><title>How to Inlucde A JS File in XSL</title><description>&lt;p&gt;In my project, I need to include an external javascript(js) file in xsl. At first, I tried to include a &lt;strong&gt;script&lt;/strong&gt; element in the &lt;strong&gt;head&lt;/strong&gt; written in HTML syntax as :&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;script language="Javascript" src="filename.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When transfering to HTML, it became to&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;script language="Javascript" src="filename.js" /&amp;gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Without the closing tag&amp;lt;/script&amp;gt;, the &lt;strong&gt;script &lt;/strong&gt;element was not recognized by the browser.&lt;/p&gt;  &lt;p&gt;To solve this problem, I have tried a lot of methods, such as adding text to the empty script element as&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&amp;lt;script language="Javascript" src="filename.js"&amp;gt;1&amp;lt;/script&amp;gt;&lt;/strong&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Although it worked fine, the useless text between &lt;strong&gt;script&lt;/strong&gt; tag looked so unprofessional.&lt;/p&gt;  &lt;p&gt;At last, I came across a way to make this work. Rather than including &lt;strong&gt;script&lt;/strong&gt; as an element, I included a line of plain text using &amp;lt;xsl:text&amp;gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;lt;script src="fsq.js" language="Javascript"&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt; &amp;amp;gt;&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:text disable-output-escaping="yes"&amp;gt;&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/xsl:text&amp;gt;&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;This line became &lt;strong&gt;&amp;lt;script language="Javascript" src="filename.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/strong&gt; in HTML.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/08/how-to-inlucde-js-file-in-xsl.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-7922553246798997031</guid><pubDate>Fri, 25 Jul 2008 21:44:00 +0000</pubDate><atom:updated>2008-07-29T14:22:06.953-07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DITA</category><category domain="http://www.blogger.com/atom/ns#">Video</category><title>How to Embed Multimedia Video in DITA</title><description>&lt;p&gt;This document explains how to implement multimedia video in DITA and how to transfer them to HTML format. &lt;/p&gt;  &lt;h4&gt;Supported Video Formats &lt;/h4&gt;  &lt;p&gt;The following are currently the most popular multimedia video formats on the Web:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The Shockwave (Flash) Format (.swf) &lt;/li&gt;    &lt;li&gt;The Windows Media Format (.wmv) &lt;/li&gt;    &lt;li&gt;The AVI Format (.avi) &lt;/li&gt;    &lt;li&gt;The MPEG Format (.mpeg) &lt;/li&gt;    &lt;li&gt;The QuickTime Format (.mov) &lt;/li&gt;    &lt;li&gt;The RealVideo Format (.rm) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Web browsers use the &lt;b&gt;&amp;lt;object&amp;gt;&lt;/b&gt; element to render these video files. The &lt;b&gt;&amp;lt;object&amp;gt;&lt;/b&gt; element has two child elements: &lt;b&gt;&amp;lt;param&amp;gt;&lt;/b&gt; and &lt;b&gt;&amp;lt;embed&amp;gt;&lt;/b&gt;. The &amp;lt;param&amp;gt; element defines run-time settings for the object. The &lt;b&gt;&amp;lt;embed&amp;gt;&lt;/b&gt; element is added to support browsers that don't support the &lt;b&gt;&amp;lt;object&amp;gt;&lt;/b&gt; element. A browser that can parse the object element will ignore the &lt;b&gt;&amp;lt;embed&amp;gt;&lt;/b&gt; element. The object element will be used by new browsers that support ActiveX controls. Older browsers will use the embed element.&lt;/p&gt;  &lt;p&gt;Based on my research, the newer version of IE (IE 5 and later) accepts the &lt;b&gt;&amp;lt;object&amp;gt;&lt;/b&gt; element for all six media types, while other browsers such as Firefox accepts the &lt;b&gt;&amp;lt;object&amp;gt;&lt;/b&gt; element for only Flash(.swf) and WMV formats. &lt;/p&gt;  &lt;p&gt;The DITA standard doesn’t allow &lt;b&gt;&amp;lt;embed&amp;gt;&lt;/b&gt; element within the &lt;b&gt;&amp;lt;object&amp;gt;&lt;/b&gt; element. To solve this problem, you need to modify the DITA-OT dita2htmlImpl.xsl to include &lt;b&gt;&amp;lt;embed&amp;gt;&lt;/b&gt; element while transforming .avi, .mpeg, .mov, and .rm format video. You can also modify the DITA-OT xsl to support other object formats.&lt;/p&gt;  &lt;h4&gt;Implement in DITA&lt;/h4&gt;  &lt;h5&gt;&amp;lt;object&amp;gt; element&lt;/h5&gt;  &lt;p&gt;DITA's &lt;b&gt;&amp;lt;object&amp;gt;&lt;/b&gt; element corresponds to the HTML &lt;b&gt;&amp;lt;object&amp;gt;&lt;/b&gt; element. &lt;/p&gt;  &lt;b&gt;Attributes&lt;/span&gt;&lt;/b&gt;  &lt;p&gt;The following attributes of the &lt;b&gt;&amp;lt;object&amp;gt;&lt;/b&gt; element are required to render video formats:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;classid&lt;/b&gt;: the format of the classid string is "clsid:XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" for registered Microsoft ActiveX Controls. It tells the browser which media player to use to play the video. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;data&lt;/b&gt;: the location or URI of the video file. For .avi, .wmv, and .mepg formats, the full direct URI is needed. Other formats only need relative URIs. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;type&lt;/b&gt; (MIME type): indicates the video type. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;width&lt;/b&gt;: the width of the video file in pixels. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;height&lt;/b&gt;: the height of the video file in pixels. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The following table lists the value of &lt;b&gt;classid&lt;/b&gt; and MIME &lt;b&gt;type&lt;/b&gt; attributes of the six video formats:&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;table border="1" cellpadding="2" cellspacing="0" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="128"&gt;&lt;b&gt;format&lt;/b&gt;&lt;/td&gt;        &lt;td valign="top" width="138"&gt;&lt;b&gt;classid&lt;/b&gt;&lt;/td&gt;        &lt;td valign="top" width="136"&gt;&lt;b&gt;MIME Type&lt;/b&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="127"&gt;swf&lt;/td&gt;        &lt;td valign="top" width="138"&gt;Can be eliminated &lt;/td&gt;        &lt;td valign="top" width="136"&gt;application/x-shockwave-flash&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="126"&gt;wmv&lt;/td&gt;        &lt;td valign="top" width="138"&gt;Can be eliminated&lt;/td&gt;        &lt;td valign="top" width="136"&gt;video/x-ms-wmv&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="126"&gt;avi&lt;/td&gt;        &lt;td valign="top" width="138"&gt;clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95&lt;/td&gt;        &lt;td valign="top" width="136"&gt;application/x-mplayer2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="126"&gt;mepg&lt;/td&gt;        &lt;td valign="top" width="138"&gt;clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95&lt;/td&gt;        &lt;td valign="top" width="136"&gt;application/x-mplayer2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="126"&gt;mov&lt;/td&gt;        &lt;td valign="top" width="138"&gt;clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B&lt;/td&gt;        &lt;td valign="top" width="136"&gt;video/quicktime&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="126"&gt;rm&lt;/td&gt;        &lt;td valign="top" width="138"&gt;clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA&lt;/td&gt;        &lt;td valign="top" width="136"&gt;audio/x-pn-realaudio&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;lt;&lt;span style="font-weight: bold;"&gt;param&lt;/span&gt;&amp;gt; element&lt;/p&gt;  &lt;p&gt;At least one child &amp;lt;param&amp;gt; should be included in a &amp;lt;object&amp;gt; to identify the location of the video data file. &lt;/p&gt;&lt;span style="font-weight: bold;"&gt;Sample Code&lt;/span&gt;&lt;br /&gt;&lt;p&gt;The following lists the coding used to implement the video in DITA for the above example:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SWF&lt;/b&gt;&lt;br /&gt;&amp;lt;object width="700" height="700" type="application/x-shockwave-flash" data="sample.swf"&amp;gt;&lt;p&gt;&lt;/p&gt;&amp;lt;param name="src" value="sample.swf" /&amp;gt;&lt;br /&gt;&amp;lt;param name="autostart" value=" false" /&amp;gt;&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WMV&lt;/b&gt;&lt;br /&gt;&amp;lt;object type="video/x-ms-wmv" data="http://domainname/video/wmvfile.wmv"&lt;br /&gt;width="320" height="260"&amp;gt;&lt;br /&gt;&amp;lt;param name="src" value="http://domainname/video/wmvfile.wmv" /&amp;gt;&lt;br /&gt;&amp;lt;param name="autostart" value="false" /&amp;gt;&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;AVI&lt;/b&gt;&lt;br /&gt;&amp;lt;object type="application/x-mplayer2" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" data=”http://domainname/video/avifile.avi”&amp;gt;&lt;br /&gt;&amp;lt;param name="src" value=" http://domainname/video/avifile.avi" /&amp;gt;&lt;br /&gt;&amp;lt;param name="autostart" value="0" /&amp;gt;&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;MPEG&lt;/b&gt;&lt;br /&gt;&amp;lt;object type="application/x-mplayer2" data="http://domainname/mpegfile.mpeg"&lt;br /&gt;classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"&amp;gt;&lt;br /&gt;&amp;lt;param name="src" value=" http://domainname/video/mpegfile.mpeg" /&amp;gt;&lt;br /&gt;&amp;lt;param name="autostart" value="false" /&amp;gt;&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;QuickTime movie(mov)&lt;/b&gt;&lt;br /&gt;&amp;lt;object type="video/quicktime" width="450" height="230" data="Apple.mov"&lt;br /&gt;classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"&amp;gt;&lt;br /&gt;&amp;lt;param name="src" value="Apple.mov"&amp;gt;&lt;br /&gt;&amp;lt;param name="autostart" value="false" /&amp;gt;&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Real Video Format&lt;/b&gt;&lt;br /&gt;&amp;lt;object type="audio/x-pn-realaudio" width="320" height="240" data="rmfile.rm" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"&amp;gt;&lt;br /&gt;&amp;lt;param name="src" value="rmfile.rm" /&amp;gt;&lt;br /&gt;&amp;lt;param name="autostart" value="false" /&amp;gt;&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/07/how-to-embed-multimedia-video-in-dita.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-3245779550036382040</guid><pubDate>Tue, 13 May 2008 17:05:00 +0000</pubDate><atom:updated>2008-05-13T10:30:35.427-07:00</atom:updated><title>Using SFTP in VB.net</title><description>In my last blog, I talked about using ftp in vb.net. This time I will introduce a way to use SFTP in VB.net.&lt;br /&gt;&lt;br /&gt;Same as call Windows ftp.exe in VB.net, you can call an SFTP client. Since Windows dosen't include any default SFTP client software, you need to find and install one. I used an open source free SFTP client called &lt;a href="http://winscp.net/eng/index.php"&gt;WinSCP&lt;/a&gt;, which supports scripting.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://winscp.net/eng/index.php"&gt;WinSCP&lt;/a&gt; has an very cool command-"synchronize". It can synchronize remote directory with your local.&lt;br /&gt;&lt;br /&gt;The following is an example scripting txt file:&lt;br /&gt;&lt;span style="color:#006600;"&gt;open username:password@hostname&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;synchronize remote [local directory] [remote directory]&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;chmod 777 [remote directory]\*.*&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;close&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;exit&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#000000;"&gt;After having created the scripting file, include the following line in a batch file and let VB.net to call the batch file:&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#006600;"&gt;winscp.exe /console /script=example.txt&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/05/using-sftp-in-vbnet.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-794617498635937152</guid><pubDate>Sat, 03 May 2008 00:06:00 +0000</pubDate><atom:updated>2008-05-02T19:13:30.136-07:00</atom:updated><title>Using FTP in VB.net</title><description>A easy way to use ftp in vb.net is to call Windows ftp.exe.&lt;br /&gt;&lt;br /&gt;First, you need to create a txt file with all the ftp commands.&lt;br /&gt;&lt;br /&gt;An example ftp.txt:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;span style="font-weight: bold;"&gt;open&lt;/span&gt; hostname portnumber&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;username&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;password&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;put&lt;/span&gt; filename&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;bye&lt;br /&gt;exit&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Then, in your vb.net script, use Shell to call ftp.exe:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 204, 0);"&gt;ProcID = Shell("ftp -s:ftp.txt")&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/05/transfering-files-to-ftp-server-using.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-4502892377313182628</guid><pubDate>Wed, 23 Apr 2008 03:28:00 +0000</pubDate><atom:updated>2008-04-22T20:32:54.388-07:00</atom:updated><title>DTD FAQ</title><description>&lt;span xmlns=""&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;How to create an attribute and enforce a limited number of choices?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Enumerated attribute values&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Syntax:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ATTLIST element-name attribute-name (eval|eval|..) default-value&amp;gt;DTD example:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ATTLIST payment type (check|cash) "cash"&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Example 1.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;payment type="check"&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;or&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;payment type="cash"&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Example 2.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This enforces the ALIGN attribute of the P element to have the value of either LEFT, or RIGHT, or CENTRE. A default can be supplied as follows:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ATTLIST P             ALIGN   (LEFT|RIGHT|CENTRE) "LEFT"&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;How to define rules for elements with more than one attribute, and if so how might I do it?&lt;/span&gt;&lt;br /&gt;&lt;p&gt;Defines the attributes list for the specified tag. You can declare multiple attributes at the same time, each with its type and value. An attribute can be of type CDATA, or it can be an item of a collection. Its value can be fixed, implied or required (see below). Here are a few examples:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Example. 1&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!DOCTYPE payment [&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ELEMENT payment (#PCDATA)&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ATTLIST payment type CDATA "check"&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ATTLIST payment bank CDATA "TD"&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;]&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;payment type="check" bank="TD"&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;test&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/payment&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Example 2.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!DOCTYPE payment [&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ELEMENT payment (#PCDATA)&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ATTLIST payment type CDATA "check" bank CDATA "TD"&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;]&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;payment type="check" bank="TD"&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;test&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/payment&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;What are EMPTY Elements and how do I define them?&lt;/span&gt;&lt;br /&gt;&lt;p&gt;The word "EMPTY" designates the element has no content. Here's an example from the HTML 4 transitional DTD:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Example:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ELEMENT ADDRESS (STREET, CITY, STATE, ZIP, COUNTRY)&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ELEMENT STREET EMPTY&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ELEMENT CITY EMPTY&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ELEMENT STATE EMPTY&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ELEMENT ZIP EMPTY&amp;gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;!ELEMENT COUNTRY EMPTY&amp;gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/04/dtd-faq.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-8664811212395783429</guid><pubDate>Tue, 22 Apr 2008 17:20:00 +0000</pubDate><atom:updated>2008-04-22T10:25:59.663-07:00</atom:updated><title>DTD Attribute Value Declarations</title><description>Within each attribute declaration, how the value will appear in the document must be specified as following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;#DEFAULT:  the attribute has a default value.&lt;/li&gt;&lt;li&gt;#REQUIRED: the attribute value must be included in the element.&lt;/li&gt;&lt;li&gt;#IMPLIED: the attribute dose not have to be included&lt;/li&gt;&lt;li&gt;#FIXED: the attribute value is fixed.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/04/dtd-attribute-value-declarations.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-6418569531313636020</guid><pubDate>Tue, 22 Apr 2008 17:10:00 +0000</pubDate><atom:updated>2008-04-22T10:19:06.270-07:00</atom:updated><title>Cardinality of A DTD Element</title><description>An element's cardinality defines how many times it will appear within a content model. DTDs allow four indicators for cardinality:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;[none]: only once&lt;/li&gt;&lt;li&gt;?: 0 or 1&lt;/li&gt;&lt;li&gt;+: 1 or more&lt;/li&gt;&lt;li&gt;*: 0 or more&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/04/cardinality-of-dtd-element.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-8889167843887987868</guid><pubDate>Tue, 22 Apr 2008 17:06:00 +0000</pubDate><atom:updated>2008-04-22T10:10:08.880-07:00</atom:updated><title>How to Valid a XML File</title><description>To valid your XML file, you can:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use an online validator, such as: &lt;a href="http://www.stg.brown/"&gt;http://www.stg.brown&lt;/a&gt;. edu/service/xmlvalid/&lt;/li&gt;&lt;li&gt;Use XML editor, such as: XML SPY or XMLETAL&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/04/how-to-valid-xml-file.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-4908267891641831194</guid><pubDate>Tue, 22 Apr 2008 04:52:00 +0000</pubDate><atom:updated>2008-04-21T21:52:43.328-07:00</atom:updated><title>What are Building Blocks of XML Documents?</title><description>&lt;span xmlns=''&gt;&lt;ul&gt;&lt;li&gt;Elements:  &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Tags: tags are used to mark up elements.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Attributes: attributes provide extra information about elements.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Entities: &lt;br /&gt;&lt;/li&gt;&lt;li&gt;PCDATA: PCDATA means parsed character data between start tags and end tags.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;CDATA: CDATA means the text that will not be parsed which is inside a tag. It is the attribute in DTD.&lt;/li&gt;&lt;/ul&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/04/what-are-building-blocks-of-xml.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-9087462119098741786.post-5085912847308378168</guid><pubDate>Tue, 22 Apr 2008 03:48:00 +0000</pubDate><atom:updated>2008-04-21T20:48:41.722-07:00</atom:updated><title>What is a DTD</title><description>&lt;span xmlns=''&gt;&lt;p&gt;DTD stands for Document Type Definition. It is an extra rules that a XML file must conform to. We say a XML file is valid if it does confirm to the rules of a DTD.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;DTD are written using EBNF(Extended Backus-Naur Form) not XML syntax.&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;test&lt;/div&gt;</description><link>http://flowwrite.blogspot.com/2008/04/what-is-dtd.html</link><author>noreply@blogger.com (LISHA LI)</author><thr:total>0</thr:total></item></channel></rss>