Report Item 4.01: Fill & Download for Free

GET FORM

Download the form

How to Edit The Report Item 4.01 easily Online

Start on editing, signing and sharing your Report Item 4.01 online following these easy steps:

  • Click on the Get Form or Get Form Now button on the current page to access the PDF editor.
  • Give it a little time before the Report Item 4.01 is loaded
  • Use the tools in the top toolbar to edit the file, and the change will be saved automatically
  • Download your edited file.
Get Form

Download the form

The best-reviewed Tool to Edit and Sign the Report Item 4.01

Start editing a Report Item 4.01 in a minute

Get Form

Download the form

A simple direction on editing Report Item 4.01 Online

It has become very simple these days to edit your PDF files online, and CocoDoc is the best PDF editor you have ever seen to make a lot of changes to your file and save it. Follow our simple tutorial to start!

  • Click the Get Form or Get Form Now button on the current page to start modifying your PDF
  • Create or modify your content using the editing tools on the tool pane on the top.
  • Affter changing your content, add the date and create a signature to complete it perfectly.
  • Go over it agian your form before you save and download it

How to add a signature on your Report Item 4.01

Though most people are accustomed to signing paper documents with a pen, electronic signatures are becoming more accepted, follow these steps to finish the PDF sign!

  • Click the Get Form or Get Form Now button to begin editing on Report Item 4.01 in CocoDoc PDF editor.
  • Click on Sign in the tools pane on the top
  • A popup will open, click Add new signature button and you'll have three choices—Type, Draw, and Upload. Once you're done, click the Save button.
  • Drag, resize and position the signature inside your PDF file

How to add a textbox on your Report Item 4.01

If you have the need to add a text box on your PDF for customizing your special content, do the following steps to carry it out.

  • Open the PDF file in CocoDoc PDF editor.
  • Click Text Box on the top toolbar and move your mouse to drag it wherever you want to put it.
  • Write down the text you need to insert. After you’ve writed down the text, you can take full use of the text editing tools to resize, color or bold the text.
  • When you're done, click OK to save it. If you’re not satisfied with the text, click on the trash can icon to delete it and do over again.

A simple guide to Edit Your Report Item 4.01 on G Suite

If you are finding a solution for PDF editing on G suite, CocoDoc PDF editor is a commendable tool that can be used directly from Google Drive to create or edit files.

  • Find CocoDoc PDF editor and establish the add-on for google drive.
  • Right-click on a PDF file in your Google Drive and click Open With.
  • Select CocoDoc PDF on the popup list to open your file with and allow access to your google account for CocoDoc.
  • Edit PDF documents, adding text, images, editing existing text, mark with highlight, trim up the text in CocoDoc PDF editor before saving and downloading it.

PDF Editor FAQ

How do you value a company from start to finish?

There is a large and active community of professionals who do just this at SumZero. Here's a copy-pasted (and then slightly reformatted) example from one of their recent Weekly Top Ideas:This is SumZero's Weekly Top Idea for March 11th, 2013. Click here to rate this idea or add comments to the site.Company:OfficeMax Inc. (OMX)Submitted By:Michael Shea (Midsummer Capital LLC)Submitted On:Mar 07, 2013 at 06:46PMRecommendation:LongExpected Timeframe:1 Year To 2 YearsSituation:Event / Special SituationsPrice At Recommendation:$11.75Target Price:$17.50ThesisThe pending merger – and the potential for value creation – between OfficeMax (OMX) and Office Depot (ODP) is fundamentally misunderstood by the market, particularly as the investor base rotates toward merger arbitrageurs, likely due to the following factors:(1) Corporate Governance – Pundits and investors expressed concern/confusion as the companies did not offer a definitive plan for management succession. Further, in unorthodox fashion, the combined board will have equal representation from each company, potentially setting the stage for a “culture clash”.(2) Business Outlook – Skeptics believe that the office supplies brick-and-mortar business is in secular decline and may suffer the same fate as traditional book, music and consumer-electronics retailers.(3) Deal Dissolution/Regulatory Obstacle(s) - Undue concern regarding antitrust issues and possible deal rejection by the FTC, possibly stemming from residual pain (for the “arb” crowd) when the Staples/Office Depot deal broke in 1997.(4) Valuation – Back-of-the-envelope calculations suggests that the combined business, pro forma, trades at an enterprise value of ~6X TTM EBITDA; a seemingly fair/appropriate multiple given the cost synergy opportunities ($400mm to $600mm), against the backdrop of low-to-negative top-line growth prospects.Though some of these risks and concerns (addressed in further detail, below) are partially valid, it is our belief that they are being placed in an improper/incomplete context. The reality is, when adjusting for “hidden” assets (ODP’s Grupo Gigante stake; OMX’s BCC stake) and “phantom” liabilities (OMX’s non-recourse debt), the combined businesses trade at a TEV of ~3.5X TTM EBITDA, before synergies. Further, management’s guidance for cost/G&A synergies is completely incremental to the opportunities from:(a) geographic synergies (store consolidation in overlapping markets);(b) each company’s respective plan to “right-size” the store base (move to smaller locations as leases roll off); and(c) ODP’s plan to reduce the G&A cost structure of its European business. At this valuation, and given the potential upside, we believe investors are being amply compensated for the attendant risks.In the past, we have studied both OMX and ODP, on a stand-alone basis. In our view, each story presents a high level of analytical complexity, particularly in terms of valuation. The merger of OMX and ODP compounds the issue of complexity, creating a special situation. We think it would require advanced prior knowledge of each company to contextualize all the moving pieces in order to handicap the fair value of the combined businesses.Though the full run-rate of synergies likely won’t be reached until 2016, we believe there are a number of potential catalysts over the next 12-to-18 months that will restore faith in the merger (in its consummation and merits) and cause shares to re-rate higher:(1) OMX pays out a $1.50 special dividend, funded by a $129mm payment from BCC;(2) ODP monetizes its stake in the Mexican JV (recent offer of ~$690mm from Gigante);(3) OMX monetizes its Croxley business;(4) OMX and ODP offer a clear plan for management succession;(5) the FTC grants deal approval;(6) the merger is completed; and(7) as the holder base rotates back to fundamental investors that possess a longer-term orientation and can spend the time to more carefully scrutinize the underlying value drivers.Corporate GovernanceMarket participants expressed sharp disappointment and criticism regarding the failure of ODP/OMX to put forth a clear plan on management succession . In the merger press release, ODP and OMX stated they would consider both acting CEOs (Neil Austrian of ODP; Ravi Saligram of OMX), as well as vet outside candidates. Additionally, and in unorthodox fashion, the new board of directors would be comprised equally of OMX and ODP members. The obvious concern is that the absence of a clear successor as CEO, in concert with a staggered board, could set the stage for some sort of power struggle or “culture clash”. Though this point of concern is a reasonable one, the merger conference call did not point to any underlying sense of tension or rancor. In fact, both CEOs seemed very enthusiastic about the potential of the deal and were at grips with the possibility that one or both of them might not run the combined company. Further, the executives ostensibly maintained a strong rapport with one another and seemed to share a similar vision as to the direction of the combined enterprise. Perhaps they were feigning excitement, but, if so, it was a persuasive performance.The fears of a negative outcome due to weak corporate governance - specifically a poorly-executed merger stemming from “culture clash” – seem somewhat overblown. Also, ODP’s 4Q12 results, which were released on the morning of 2/20/13, inadvertently revealed the terms of the merger, which was not yet finalized. The premature release of the merger details likely truncated/accelerated the respective management teams’ plans for discussing the deal, which may explain the omission of naming of a CEO.Business OutlookWhile we acknowledge that office supplies retailers face secular pressure and intense competition from other channels (e.g. e-commerce and big-box retailers), we think skeptics have unfairly assumed that OMX, ODP, and SPLS will inexorably suffer the same fate as other defunct retail models, particularly brick-and-mortar book, music and consumer-electronics retailers. To us, there is a distinct difference between to the two camps. Books, CDs and TVs represented attractive “loss leaders”, particularly for big-box retailers (and AMZN), to drive traffic away from traditional points-of-sale and into their stores; the idea being for consumers to make unplanned, ancillary purchases of products in higher-margin categories. Such a phenomenon or trend in office supplies strikes us as less of risk. Also, OMX and ODP generate a large percentage of their revenue (52% and 30%, respectively) and income from their US-based contract/business-to-business (“B2B”) operations. The B2B business model strikes us as carrying much less risk of obsolescence.Certainly, a lot of business has migrated away to the e-commerce channel. As of right now, the OMX and ODP have a mismatch between their assets (20k-25k sq. ft. stores) and liabilities (operating leases); they don’t need all that retail space anymore. Consequently, assets turns have gone down and margins have compressed, leading to lower ROICs/ROEs. Fortunately, both companies have very short lease-maturity profiles. The vast majority of OMX and ODP’s leases will expire over the next 2-3 years. This will provide the companies with opportunities to right-size their respective store footprints by rolling into smaller stores sizes. In theory, by rolling into smaller stores (~5k prototype for ODP; ~17k prototype for OMX), the stores could dramatically reduce rent expense, while conserving high levels of sales productivity (for analysis, see Starboard Value’s letter to ODP ), which should be highly accretive to operating income. ODP estimated it could generate an additional $60mm in EBIT from such an initiative by 2015.In the event of a merger, the combined business should be able to cull stores in overlapping geographies. Though it’s difficult to quantify the impact of this strategy, hopefully the following exercise is instructive (the inputs below are based on a recent JP Morgan note)Assuming the combined businesses shuttered 250-500 stores in overlapping geographies, we estimate there are another 800-1,050 stores that would be up for lease renewal through 2015-2016. Based on the estimated split (OMX to ODP stores), and, for argument’s sake, assuming each store base pursued its own downsizing model, we approximate the combined company could improve consolidated EBITDA by another $65mm-$85mm.Deal Dissolution/Regulatory Obstacle(s)Compared to other perceived risks, it would seem the market is pricing in the probability of deal dissolution or government intervention fairly, as evidenced by the reasonable merger arbitrage spread (~5%, see below). Further, most sell-side analysts have addressed the possibility of FTC objection as remote (though one desk pegged the odds of a deal as a “coin flip”). However, some traders and investors may still be haunted by being on the wrong side of the “busted” SPLS/ODP merger (ODP stock declined approximately -40%, from $15/sh to $9/sh on news of FTC objections) back in the spring of 1997. The FTC went to court, and won, to block the merger, citing the deal would result in higher prices and decreased competition. FTC officials argued that SPLS, ODP and OMX competed primarily with one another, and not against other suppliers of office goods. Clearly, with the proliferation of e-commerce and big-box retail systems, the retail landscape has changed drastically. Today, the FTC would be hard pressed to argue that the combination of ODP/OMX (aggregate market share of ~5%) would wield monopolistic pricing power or “unfair” levels of market share. There is the possibility, however small, the ineptitude of government regulators wins out.Even if the deal breaks, for regulatory reasons or otherwise, OMX trades less than 10% above where it was prior to news of the merger. ODP actually trades below the price of stock when rumors of the deal were reported (4Q12 results were below consensus estimates), so downside seems rather limited from these levels. Even in the absence of a merger, OMX and ODP would likely warrant investment consideration, given their misunderstood NAVs and company-specific levers to pull to enhance profitability (see below).ValuationFor OMX and ODP, due to “hidden” assets and “phantom” liabilities, looking at valuation multiples requires more than a “back-of-the-envelope” calculation (or a Bloomberg reference). Though the sell-side appears attuned to the assets/liabilities (affecting valuation) outside of the core businesses, there does not seem to be a great deal of continuity across analysts in accounting for them, which makes it difficult to gauge what valuation multiples the market is looking at. Most analysts derive their price targets from simple and arbitrary P/E and EV/EBITDA multiples; both of these methods have flaws. Before looking at the businesses on a combined basis, it’s easier to first look at ODP and OMX separately.ODP is the more straightforward case of the two. A quick TEV calculation suggests ODP trades between 5X and 6X TTM EBITDA (multiple quoted on Bloomberg is 5.0X). At first glance, this might seem like a full multiple for a low-to-no growth business with secular headwinds.However, to simply capitalize forward EBITDA at a low growth multiple diminishes the value of the company’s “crown jewel” asset, its 50% stake in Office Depot de Mexico. For the year, the company received $34mm in income from its stake in the business. Capitalizing this pre-tax income stream in the range of 5X to 6X (ODP’s multiple) would impute a fair value of $170mm to $205mm. Note: To be clear, our TTM EBITDA figure excludes the JV income, which is not consistent with the company’s adjusted EBITDA convention. On February 21st, it was reported that ODP’s partner in Mexico, Grupo Gigante, offered to buy-out the remaining half of the business for $8.78bn Pesos, which, at current exchange rates, translates into just under $690mm dollars (~60% of ODP’s market cap; over +250% higher than if capitalized at ODP’s consolidated multiple). Though ODP has not responded to the offer, this is about as fair a proxy for value of the JV asset as one could use. If we adjust enterprise value for Gigante’s bid for ODP’s JV stake, we can see the core business trades at less than 3X EBITDA; a highly distressed multiple. For those especially punctilious about valuation, ODP trades at ~3.5X on a EV/EBITDAR basis (PV of OpLeases added back to net debt; rent expense added to EBITDA).Thinking about valuation another way, if we capitalize core EBITDA at the prevailing “face” multiple and add back the value of Gigante’s bid, it imputes an equity value of over $6/shareThe above price target and valuation multiples exclude the potential accretion to EBITDA from: (1) store closures; (2) a right-sizing of the store base as leases roll off; (3) restructuring/reduction in G&A costs (see slides 41-42 in management’s investor presentation from November of last year ).Adjusting OMX’s enterprise value and valuation multiples for unusual balance sheet items is a slightly trickier exercise than for ODP. Again, at first blush, OMX appears to trade between 7X-8X EBITDA (multiple quoted on Bloomberg is 8.4X). Now, OMX likely deserves to trade at higher multiple (though 2 turns might be excessive) given its better operating margin and lower exposure to European markets. However, one could reasonably make the argument that 7X to 8X EBITDA for an office supplies retailer/distributor is a full, if not overly rich, cap rate.As with ODP, some sell-side analysts impute their price targets by placing low-growth multiples on forward EBITDA. Unlike ODP, OMX currently reports positive TTM operating EPS, so some analysts derive their targets based on P/E multiples, which is even more crude in terms of valuation methodology, given the company’s capital structure (P/E multiples, as a rough shorthand for DCF analysis, should only be reserved for companies with fully “equitized” balance sheets.). Note: OMX, with TTM operating EPS of $0.78, trades at a P/E multiple of about 15X, which seems reasonable-to-high.The first step in adjusting OMX’s capital structure would be to remove $750mm in non-recourse debt from the net debt calculation. Why? In October, 2004, as part of a larger transaction, OfficeMax Inc., formerly known as Boise Cascade Corporation, sold (its) timberland assets for $1,650mm, with $15mm in cash upfront plus credit-enhanced timber installment notes of $1,635mm. The notes were issued by single-member limited liability companies formed by Boise Cacade, LLC (the purchaser). The notes are 15-year non-amortizing obligations, issued in two equal $817.5mm tranches. To support the issuance of the installment notes, the note issuers transferred $1,635mm in cash to Lehman and Wachovia. The two banks issued collateral notes to the note issuers. The structure allowed OfficeMax to defer recognition of the capital gain and payment of the related taxes on the sale of the timberland assets until 2020, the maturity date of the installment notes. In December, 2004, OMX completed a securitization transaction in which the company’s interest in the installment notes and related guarantees were transferred to wholly-owned bankruptcy remote subsidiaries (a special purpose vehicle). The subsidiaries pledged the installment notes and related guarantees and issued securitized notes in the amount of $1,470mm, or 90% of face of the installment notes. The securitization notes are 15-year non-amortizing. OMX received $1470mm in cash upfront and expected to earn $82.5mm per year in interest income from the installment notes and expected to incur annual interest expense of $80.5mmm.Lehman’s bankruptcy and the ensuing saga created some complications (which is why the liability is now down to $750mm), but, simply put, the special purpose vehicle allowed the company to sell assets and collect payment, without paying taxes until 2020. The structure is completely non-recourse to company and there is an offsetting note receivable. In our view, this liability should be excluded as debt all together, or netted against the receivable, in which case, represents a net asset. The only thing OMX has to deal with is the tax liability when the structure unwinds in 2020. On present value basis, we estimate the liability at just below $150mm.The second step would be to account for OMX’s ownership in Boise Cascade (BCC), a residual of the aforementioned deal. Currently, OMX is owed a $129mm dividend from BCC (which we expect will be paid out as a special dividend), while owning 6mm shares of company stock, currently trading at ~$27/sh. In total, OMX’s Boise Cascade-related assets are worth ~$290mm.Third, we add the value of the company’s New Zealand-based Croxley business, which is under strategic review, at $50mm (an estimate of book value).Lastly, we add pension underfunding of $301mm , to net debt (note: ODP’s pension plan is fully funded).Adjusting for all of these items, OMX trades at a much more modest multiple of between 4X to 5X EBITDA. As a point of reference, we estimate this is the multiple Cerberus roughly paid in its acquisition of SuperValu stores (a rough proxy for a stressed sale of a low-margin retailer). On an EV/EBITDAR basis, OMX trades roughly at ~4X.If we invert the exercise, capitalizing the core business at the prevailing cap rate, and then adjusting for the “hidden” assets/liabilities, it yields a price target of ~$19/sh.Admittedly, 7X-8X might too aggressive a cap range, but even we add half a turn to ODP’s ostensible EBITDA multiple, it imputes a price target of OMX of $15/sh, versus a trading price of less than $12/sh today.So, on a stand-alone basis, both businesses appear to be trading at compelling multiples, though this dynamic has been obfuscated by several “tricky” balance sheet items. These multiples are predicated on trailing EBITDA figures, and do not incorporate the expected cost synergies ($400mm-$600mm) in a marriage of the two companies. On trailing performance, and adjusted for non-core assets/liabilities, the combined companies trade at just 3x-4x EBITDA, which seems too low given the enhanced competitive position achieved through the merger.Further, the projected cost savings/synergies from ODP/OMX are based strictly on increased (economies of) scale and/or the elimination of redundancies in the supply chain, purchasing, advertising, and other basic infrastructure. The guidance does not include, and is completely incremental to, retail/real estate opportunities. Adjusting EBITDA to include the mid-point of management’s guidance for merger synergies, as well as adding implementation costs and capital expenditures to net debt, OMX/ODP would trade at just 2x-3x EBITDAWe can take this exercise one step further by looking at the implied valuation multiples, based on “Potential” EBITDA, or assuming ODP and OMX, together, succeed in pulling all of the aforementioned levers for earnings improvement and achieve this run-rate by 2015-2016. On long-run potential, ODP/OMX trades at just 1.5X-2.0X EBITDA. Clearly, there is much execution risk underlying these figures. However, hopefully it’s illustrative of what the long-term/upside case can look like, from an earnings perspective.Since this analysis ignores, or is agnostic to, the present value of cash flows, we have included a DCF analysis, as well. This model front-loads the implementation costs/investments and linearly scales in realized synergies over a 3-year time period. Assuming no expansion in the terminal multiple (3.5X) and a 20% WACC, which we view as conservative inputs, shares trade at ~45% discount to intrinsic value. Obviously, given the lumpiness and uncertainty of future cash flows, as well as the length of projections, the results of such a model should be taken with a healthy dose of salt. However, the point of the exercise is to show that if the deal is successful, even using very modest inputs (the multiple should expand if the deal works), there is material upside from current levels. And, currently trading at 3X-4X TTM EBITDA (before synergies) we think there is a considerable margin of safety in case the merger does not come to fruition or its execution does not fully meet management’s guidance/expectations.Structuring the TradeIn our opinion, the best way to own the future cash flows of the combined business is to purchase OMX outright. Assuming OMX management fully acts on it authorization to pay out a special dividend of up to $1.50, which we think is likely, shares would trade at about $10.26, ex dividend. The exchange ratio for the merger is 2.69 ODP shares: 1 OMX share. With ODP’s share price at $4.01, OMX’s deal-adjusted price is $10.79, representing a 5.1% risk-arbitrage spread. By going long OMX, investors can pocket the special dividend (~13% of market cap) and capture the deal spread. Put another way, if the deal were to go through, for about every 8 shares of OMX, you would receive an extra share of the pro forma entity, essentially for free (note: it’s an all-stock deal; not beta-neutral). Risks:• The merger is not consummated, for regulatory reasons or otherwise• ODP fails to monetize its JV stake• OMX opts to forego paying a special dividend• OMX fails to sell its Croxley business• Fundamentals of the retail, wholesale/B2B, and/or European office supplies business performs/deteriorates worse than expectedo Secular threat from AMZNo Paperless Office• Management’s cost synergy estimates prove to be too sanguine• Strategies for real estate/geographic prove ineffective• Corporate governance concerns are not addressed in a timely and/or satisfactory mannerImportant Information

For gifts, is it better to give gift cards or cash?

Cash for the following reasons:First, cash is not a thoughtless gift and there's no reason to claim that giving gift cards have 'slightly more' thought behind them. You could easily argue that cash is the ultimate gift card while limited gift cards reduce your friend or loved one to a predictable shopper.A survey for the 2017 Health of Cash report by Cardtronics found that even though Americans are more likely to give a gift card as a present, more people would prefer receiving cash instead (50% cash vs 29% gift card). And why wouldn't they? Cash is accepted just about everywhere, has no expiration date, mandatory mailing list subscriptions or HIDDEN FEES!Second, how often do you spend the exact value in a gift card and no more? Imagine you've been given a $50 gift card to use for your online purchases, but what you want costs $55.99 (delivery costs, darling). Do you choose something else, or do you now have to spend $5.99 of your own money as well? This is great for retailers, but consumers are left to navigate a maze of federal, state and corporate policies, and often end up with worthless overvalued gift cards.Alternatively, you could opt for a variety of lower priced items and end up spending $45.99 with the gift card. But that's okay because you'll spend the next $4.01 on your next shop. But then a week passes and you cannot seem to remember where you left the gift card! Life gets in the way, work is crazy, attending the kids' school plays come first and suddenly it's a year or so later, you finally find the card but lo and behold, the expiration date was last week. Nothing left to do but accept the loss. But hey, it wasn't your money anyways it was a gift. This thought(less) process doesn't happen with cash.Third, cash is the number one contingency payment plan. With 2017's many life-destroying natural disasters dominating the headlines and an increasingly politically violent world, we're reminded time and time again how in a crisis, we turn to cash for water, food, medicine, supplies and transport. When the sky is falling, you can pray for bars on your phone to save you but it's the paper in your wallet that will get you what you need, when you need it - and gift cards are no matchFrom Google search

What is Defines the document type?

“Document type definition - Wikipedia”“A document type definition (DTD) is a set of markup declarations that define a document type for an SGML-family markup language (GML, SGML, XML, HTML).A DTD defines the valid building blocks of an XML document. It defines the document structure with a list of validated elements and attributes. A DTD can be declared inline inside an XML document, or as an external reference. XML uses a subset of SGML DTD.As of 2009, newer XML namespace-aware schema languages (such as W3C XML Schema and ISO RELAX NG) have largely superseded DTDs. A namespace-aware version of DTDs is being developed as Part 9 of ISO DSDL. DTDs persist in applications that need special publishing characters, such as the XML and HTML Character Entity References, which derive from larger sets defined as part of the ISO SGML standard effort.Associating DTDs with documentsA DTD is associated with an XML or SGML document by means of a document type declaration (DOCTYPE). The DOCTYPE appears in the syntactic fragment doctypedecl near the start of an XML document. The declaration establishes that the document is an instance of the type defined by the referenced DTD.DOCTYPEs make two sorts of declaration:an optional external subsetan optional internal subset.The declarations in the internal subset form part of the DOCTYPE in the document itself. The declarations in the external subset are located in a separate text file. The external subset may be referenced via a public identifier and/or a system identifier. Programs for reading documents may not be required to read the external subset.Any valid SGML or XML document that references an external subset in its DTD, or whose body contains references to parsed external entities declared in its DTD (including those declared within its internal subset), may only be partially parsed but cannot be fully validated by validating SGML or XML parsers in their standalone mode (this means that these validating parsers don't attempt to retrieve these external entities, and their replacement text is not accessible).However, such documents are still fully parsable in the non-standalone mode of validating parsers, which signals an error if it can't locate these external entities with their specified public identifier (FPI) or system identifier (a URI), or are inaccessible. (Notations declared in the DTD are also referencing external entities, but these unparsed entities are not needed for the validation of documents in the standalone mode of these parsers: the validation of all external entities referenced by notations is left to the application using the SGML or XML parser). Non-validating parsers may eventually attempt to locate these external entities in the non-standalone mode (by partially interpreting the DTD only to resolve their declared parsable entities), but do not validate the content model of these documents.ExamplesThe following example of a DOCTYPE contains both public and system identifiers:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> All HTML 4.01 documents conform to one of three SGML DTDs. The public identifiers of these DTDs are constant and are as follows:-//W3C//DTD HTML 4.01//EN-//W3C//DTD HTML 4.01 Transitional//EN-//W3C//DTD HTML 4.01 Frameset//ENThe system identifiers of these DTDs, if present in the DOCTYPE, are URI references. A system identifier usually points to a specific set of declarations in a resolvable location. SGML allows mapping public identifiers to system identifiers in catalogues that are optionally available to the URI resolvers used by document parsing software.This DOCTYPE can only appear after the optional XML declaration, and before the document body, if the document syntax conforms to XML. This includes XHTML documents:<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- the XHTML document body starts here--> <html xmlns="http://www.w3.org/1999/xhtml">  ... </html> An additional internal subset can also be provided after the external subset:<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" [  <!-- an internal subset can be embedded here --> ]> <!-- the XHTML document body starts here--> <html xmlns="http://www.w3.org/1999/xhtml">  ... </html> Alternatively, only the internal subset may be provided:<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html [  <!-- an internal subset can be embedded here --> ]> <!-- the XHTML document body starts here--> <html xmlns="http://www.w3.org/1999/xhtml">  ... </html> Finally, the document type definition may include no subset at all; in that case, it just specifies that the document has a single top-level element (this is an implicit requirement for all valid XML and HTML documents, but not for document fragments or for all SGML documents, whose top-level elements may be different from the implied root element), and it indicates the type name of the root element:<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html> <!-- the XHTML document body starts here--> <html xmlns="http://www.w3.org/1999/xhtml">  ... </html> Markup declarationsDTDs describe the structure of a class of documents via element and attribute-list declarations. Element declarations name the allowable set of elements within the document, and specify whether and how declared elements and runs of character data may be contained within each element. Attribute-list declarations name the allowable set of attributes for each declared element, including the type of each attribute value, if not an explicit set of valid values.DTD markup declarations declare which element types, attribute lists, entities, and notations are allowed in the structure of the corresponding class of XML documents.Element type declarationsAn element type declaration defines an element and its possible content. A valid XML document contains only elements that are defined in the DTD.Various keywords and characters specify an element's content:EMPTY for specifying that the defined element allows no content, i.e., it cannot have any children elements, not even text elements (if there are whitespaces, they are ignored);ANY for specifying that the defined element allows any content, without restriction, i.e., that it may have any number (including none) and type of children elements (including text elements);or an expression, specifying the only elements allowed as direct children in the content of the defined element; this content can be either : a mixed content, which means that the content may include at least one text element and zero or more named elements, but their order and number of occurrences cannot be restricted; this can be:( #PCDATA ): historically meaning parsed character data, this means that only one text element is allowed in the content (no quantifier is allowed);( #PCDATA | ''element name'' | ... )*: a limited choice (in an exclusive list between parentheses and separated by "|" pipe characters and terminated by the required "*" quantifier) of two or more child elements (including only text elements or the specified named elements) may be used in any order and number of occurrences in the http://content.an element content, which means that there must be no text elements in the children elements of the content (all whitespaces encoded between child elements are then ignored, just like comments). Such element content is specified as content particle in a variant of Backus–Naur form without terminal symbols and element names as non-terminal symbols. Element content consists of : a content particle can be either the name of an element declared in the DTD, or a sequence list or choice list. It may be followed by an optional quantifier. a sequence list means an ordered list (specified between parentheses and separated by a "," comma character) of one or more content particles: all the content particles must appear successively as direct children in the content of the defined element, at the specified position and relative order; a choice list means a mutually exclusive list (specified between parentheses and separated by a "|" pipe character) of two or more content particles: only one of these content particles may appear in the content of the defined element at the same position. A quantifier is a single character that immediately follows the specified item it applies to, to restrict the number of successive occurrences of these items at the specified position in the content of the element; it may be either:+ for specifying that there must be one or more occurrences of the item — the effective content of each occurrence may be different;* for specifying that any number (zero or more) of occurrences is allowed — the item is optional and the effective content of each occurrence may be different;? for specifying that there must not be more than one occurrence — the item is optional; If there is no quantifier, the specified item must occur exactly one time at the specified position in the content of the element.For example:<!ELEMENT html (head, body)> <!ELEMENT p (#PCDATA | p | ul | dl | table | h1|h2|h3)*> Element type declarations are ignored by non-validating SGML and XML parsers (in which cases, any elements are accepted in any order, and in any number of occurrences in the parsed document), but these declarations are still checked for form and validity.Attribute list declarationsAn attribute list specifies for a given element type the list of all possible attribute associated with that type. For each possible attribute, it contains:the declared name of the attribute,its data type (or an enumeration of its possible values),and its default value.[4]For example:<!ATTLIST img  src CDATA #REQUIRED  id ID #IMPLIED  sort CDATA #FIXED "true"  print (yes | no) "yes" > Here are some attribute types supported by both SGML and XML:CDATAthis type means characters data and indicates that the effective value of the attribute can be any textual value, unless the attribute is specified as fixed (the comments in the DTD may further document values that are effectively accepted, but the DTD syntax does not allow such precise specification);ID the effective value of the attribute must be a valid identifier, and it is used to define and anchor to the current element the target of references using this defined identifier (including as document fragment identifiers that may be specified at end of an URI after a "#" sign); it is an error if distinct elements in the same document are defining the same identifier; the uniqueness constraint also implies that the identifier itself carries no other semantics and that identifiers must be treated as opaque in applications; XML also predefines the standard pseudo-attribute "xml:id" with this type, without needing any declaration in the DTD, so the uniqueness constraint also applies to these defined identifiers when they are specified anywhere in a XML document.IDREF or IDREFSthe effective value of the attribute can only be a valid identifier (or a space-separated list of such identifiers) and must be referencing the unique element defined in the document with an attribute declared with the type ID in the DTD (or the unique element defined in an XML document with a pseudo-attribute "xml:id") and whose effective value is the same identifier;NMTOKEN or NMTOKENSthe effective value of the attribute can only be a valid name token (or a spaced-separated list of such name tokens), but it is not restricted to a unique identifier within the document; this name may carry supplementary and application-dependent semantics and may require additional naming constraints, but this is out of scope of the DTD;ENTITY or ENTITIESthe effective value of the attribute can only be the name of an unparsed external entity (or a space-separated list of such names), which must also be declared in the document type declaration; this type is not supported in HTML parsers, but is valid in SGML and XML 1.0 or 1.1 (including XHTML and SVG);(''value1''|...)the effective value of the attribute can only be one of the enumerated list (specified between parentheses and separated by a "|" pipe character) of textual values, where each value in the enumeration is possibly specified between 'single' or "double" quotation marks if it's not a simple name token;NOTATION (''notation1''|...)the effective value of the attribute can only be any one of the enumerated list (specified between parentheses and separated by a "|" pipe character) of notation names, where each notation name in the enumeration must also be declared in the document type declaration; this type is not supported in HTML parsers, but is valid in SGML and XML 1.0 or 1.1 (including XHTML and SVG).A default value can define whether an attribute must occur (#REQUIRED) or not (#IMPLIED), or whether it has a fixed value (#FIXED), or which value should be used as a default value ("…") in case the given attribute is left out in an XML tag.Attribute list declarations are ignored by non-validating SGML and XML parsers (in which cases any attribute is accepted within all elements of the parsed document), but these declarations are still checked for well-formedness and validity.Entity declarationsAn entity is similar to a macro. The entity declaration assigns it a value that is retained throughout the document. A common use is to have a name more recognizable than a numeric character reference for an unfamiliar character. Entities help to improve legibility of an XML text. In general, there are two types: internal and external.Internal (parsed) entities are associating a name with any arbitrary textual content defined in their declaration (which may be in the internal subset or in the external subset of the DTD declared in the document). When a named entity reference is then encountered in the rest of the document (including in the rest of the DTD), and if this entity name has effectively been defined as a parsed entity, the reference itself is replaced immediately by the textual content defined in the parsed entity, and the parsing continues within this replacement text. Predefined named character entities are similar to internal entities: 5 of them however are treated specially in all SGML, HTML and XML parsers. These entities are a bit different from normal parsed entities, because when a named character entity reference is encountered in the document, the reference is also replaced immediately by the character content defined in the entity, but the parsing continues after the replacement text, which is immediately inserted literally in the currently parsed token (if such character is permitted in the textual value of that token). This allows some characters that are needed for the core syntax of HTML or XML themselves to be escaped from their special syntactic role (notably "&" which is reserved for beginning entity references, "<" or ">" which delimit the markup tags, and "double" or 'single' quotation marks, which delimit the values of attributes and entity definitions). Predefined character entities also include numeric character references that are handled the same way and can also be used to escape the characters they represent, or to bypass limitations in the character repertoire supported by the document Encoding.in domain name is for sale. Inquire now. basic profiles for SGML or in HTML documents, the declaration of internal entities is not possible (because external DTD subsets are not retrieved, and internal DTD subsets are not supported in these basic profiles).Instead, HTML standards predefine a large set of several hundred named character entities, which can still be handled as standard parsed entities defined in the DTD used by the parser.External entities refer to external storage objects. They are just declared by a unique name in the document, and defined with a public identifier (an FPI) and/or a system identifier (interpreted as an URI) specifying where the source of their content. They exist in fact in two variants : parsed external entities (most often defined with a SYSTEM identifier indicating the URI of their content) that are not associated in their definition to a named annotation, in which case validating XML or SGML parsers retrieve their contents and parse them as if they were declared as internal entities (the external entity containing their effective replacement text); unparsed external entities that are defined and associated with an annotation name, in which case they are treated as opaque references and signalled as such to the application using the SGML or XML parser: their interpretation, retrieval and parsing is left to the application, according to the types of annotations it supports (see the next section about annotations and for examples of unparsed external entities).External entities are not supported in basic profiles for SGML or in HTML documents, but are valid in full implementations of SGML and in XML 1.0 or 1.1 (including XHTML and SVG, even if they are not strictly needed in those document types).An example of internal entity declarations (here in an internal DTD subset of an SGML document) is:<!DOCTYPE sgml [  <!ELEMENT sgml ANY>  <!ENTITY % std "standard SGML">  <!ENTITY % signature " &#x2014; &author;.">  <!ENTITY % question "Why couldn&#x2019;t I publish my books directly in %std;?">  <!ENTITY % author "William Shakespeare"> ]>  <sgml>&question;&signature;</sgml> Internal entities may be defined in any order, as long as they are not referenced and parsed in the DTD or in the body of the document, in their order of parsing: it is valid to include a reference to a still undefined entity within the content of a parsed entity, but it is invalid to include anywhere else any named entity reference before this entity has been fully defined, including all other internal entities referenced in its defined content (this also prevents circular or recursive definitions of internal entities). This document is parsed as if it was:<!DOCTYPE sgml [  <!ELEMENT sgml ANY>  <!ENTITY % std "standard SGML">  <!ENTITY % signature " — &author;.">  <!ENTITY % question "Why couldn’t I publish my books directly in standard SGML?">  <!ENTITY % author "William Shakespeare"> ]>  <sgml>Why couldn’t I publish my books directly in standard SGML? — William Shakespeare.</sgml> Reference to the "author" internal entity is not substituted in the replacement text of the "signature" internal entity. Instead, it is replaced only when the "signature" entity reference is parsed within the content of the "sgml" element, but only by validating parsers (non-validating parsers do not substitute entity references occurring within contents of element or within attribute values, in the body of the document.This is possible because the replacement text specified in the internal entity definitions permits a distinction between parameter entity references (that are introduced by the "%" character and whose replacement applies to the parsed DTD contents) and general entity references (that are introduced by the "&" character and whose replacement is delayed until they are effectively parsed and validated). The "%" character for introducing parameter entity references in the DTD loses its special role outside the DTD and it becomes a literal character.However, the references to predefined numeric character entities are substituted wherever they occur, without needing a validating parser (they are only introduced by the "&" character).Notation declarationsNotations are used in SGML or XML. They provide a complete reference to unparsed external entities whose interpretation is left to the application (which interprets them directly or retrieves the external entity themselves), by assigning them a simple name, which is usable in the body of the document. For example, notations may be used to reference non-XML data in an XML 1.1 document. For example, to annotate SVG images to associate them with a specific renderer:<!NOTATION type-image-svg SYSTEM "image/svg"> This declares the MIME type of external images with this type, and associates it with a notation name "type-image-svg". However, notation names usually follow a naming convention that is specific to the application generating or using the notation: notations are interpreted as additional meta-data whose effective content is an external entity and either a PUBLIC FPI, registered in the catalogues used by XML or SGML parsers, or a SYSTEM URI, whose interpretation is application dependent (here a MIME type, interpreted as a relative URI, but it could be an absolute URI to a specific renderer, or a URN indicating an OS-specific object identifier such as a UUID).The declared notation name must be unique within all the document type declaration, i.e. in the external subset as well as the internal subset, at least for conformance with XML. Notations can be associated to unparsed external entities included in the body of the SGML or XML document. The PUBLIC or SYSTEM parameter of these external entities specifies the FPI and/or the URI where the unparsed data of the external entity is located, and the additional NDATA parameter of these defined entities specifies the additional notation (i.e., effectively the MIME type here). For example:<!DOCTYPE sgml [  <!ELEMENT sgml (img)*>   <!ELEMENT img EMPTY>  <!ATTLIST img  data ENTITY #IMPLIED>   <!ENTITY example1SVG SYSTEM "example1.svg" NDATA example1SVG-rdf>  <!NOTATION example1SVG-rdf SYSTEM "example1.svg.rdf"> ]>  <sgml>  <img data="example1SVG" /> </sgml> Within the body of the SGML document, these referenced external entities (whose name is specified between "&" and ";") are not replaced like usual named entities (defined with a CDATA value), but are left as distinct unparsed tokens that may be used either as the value of an element attribute (like above) or within the element contents, provided that either the DTD allows such external entities in the declared content type of elements or in the declared type of attributes (here the ENTITY type for the data attribute), or the SGML parser is not validating the content.Notations may also be associated directly to elements as additional meta-data, without associating them to another external entity, by giving their names as possible values of some additional attributes (also declared in the DTD within the <!ATTLIST ...> declaration of the element). For example:<!DOCTYPE sgml [  <!ELEMENT sgml (img)*>  <!--  the optional "type" attribute value can only be set to this notation.  -->  <!ATTLIST sgml  type NOTATION (  type-vendor-specific ) #IMPLIED>   <!ELEMENT img ANY> <!-- optional content can be only parsable SGML or XML data -->  <!--  The optional "title" attribute value must be parsable as text.  The optional "data" attribute value is set to an unparsed external entity.  The optional "type" attribute value can only be one of the two notations.  -->  <!ATTLIST img  title CDATA #IMPLIED  data ENTITY #IMPLIED  type NOTATION (  type-image-svg |  type-image-gif ) #IMPLIED>   <!--  Notations are referencing external entities and may be set in the "type" attributes above,  or must be referenced by any defined external entities that cannot be parsed.  -->  <!NOTATION type-image-svg PUBLIC "-//W3C//DTD SVG 1.1//EN"  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">  <!NOTATION type-image-gif PUBLIC "image/gif">  <!NOTATION type-vendor-specific PUBLIC "application/VND.specific+sgml">   <!ENTITY example1SVGTitle "Title of example1.svg"> <!-- parsed internal entity -->  <!ENTITY example1SVG SYSTEM "example1.svg"> <!-- parsed external entity -->  <!ENTITY example1GIFTitle "Title of example1.gif"> <!-- parsed internal entity -->  <!ENTITY example1GIF SYSTEM "example1.gif" NDATA type-image-gif> <!-- unparsed external entity --> ]>  <sgml type="type-vendor-specific">  <!-- an SVG image is parsable as valid SGML or XML text -->  <img title="&example1SVGTitle;" type="type-image-svg">&example1SVG;</img>   <!-- it can also be referenced as an unparsed external entity -->  <img title="&example1SVGTitle;" data="example1SVG" />   <!-- a GIF image is not parsable and can only be referenced as an external entity -->  <img title="&example1GIFTitle;" data="example1GIF" /> </sgml> The example above shows a notation named "type-image-svg" that references the standard public FPI and the system identifier (the standard URI) of an SVG 1.1 document, instead of specifying just a system identifier as in the first example (which was a relative URI interpreted locally as a MIME type). This annotation is referenced directly within the unparsed "type" attribute of the "img" element, but its content is not retrieved. It also declares another notation for a vendor-specific application, to annotate the "sgml" root element in the document. In both cases, the declared notation named is used directly in a declared "type" attribute, whose content is specified in the DTD with the "NOTATION" attribute type (this "type" attribute is declared for the "sgml" element, as well as for the "img" element).However, the "title" attribute of the "img" element specifies the internal entity "example1SVGTitle" whose declaration that does not define an annotation, so it is parsed by validating parsers and the entity replacement text is "Title of example1.svg".The content of the "img" element references another external entity "example1SVG" whose declaration also does not define an notation, so it is also parsed by validating parsers and the entity replacement text is located by its defined SYSTEM identifier "example1.svg" (also interpreted as a relative URI). The effective content for the "img" element be the content of this second external resource. The difference with the GIF image, is that the SVG image is parsed within the SGML document, according to the declarations in the DTD, where the GIF image is just referenced as an opaque external object (which is not parsable with SGML) via its "data" attribute (whose value type is an opaque ENTITY).Only one notation name may be specified in the value of ENTITY attributes (there's no support in SGML, XML 1.0 or XML 1.1 for multiple notation names in the same declared external ENTITY, so separate attributes are needed). However multiple external entities may be referenced (in a space-separated list of names) in attributes declared with type ENTITIES, and where each named external entity is also declared with its own notation).Notations are also completely opaque for XML and SGML parsers, so they are not differentiated by the type of the external entity that they may reference (for these parsers they just have a unique name associated to a public identifier (an FPI) and/or a system identifier (a URI)).Some applications (but not XML or SGML parsers themselves) also allow referencing notations indirectly by naming them in the "URN:''name''" value of a standard CDATA attribute, everywhere a URI can be specified. However this behaviour is application-specific, and requires that the application maintains a catalog of known URNs to resolve them into the notations that have been parsed in a standard SGML or XML parser. This use allows notations to be defined only in a DTD stored as an external entity and referenced only as the external subset of documents, and allows these documents to remain compatible with validating XML or SGML parsers that have no direct support for notations.Notations are not used in HTML, or in basic profiles for XHTML and SVG, because:All external entities used by these standard document types are referenced by simple attributes, declared with the CDATA type in their standard DTD (such as the "href" attribute of an anchor "a" element, or the "src" attribute of an image "img" element, whose values are interpreted as a URI, without needing any catalogue of public identifiers, i.e., known FPI)All external entities for additional meta-data are referenced by either : Additional attributes (such as type, which indicates the MIME type of the external entity, or the charset attribute, which indicates its encoding)Additional elements (such as link or meta in HTML and XHTML) within their own attributes Standard pseudo-attributes in XML and XHTML (such as xml:lang, or xmlns and xmlns:* for namespace declarations).Even in validating SGML or XML 1.0 or XML 1.1 parsers, the external entities referenced by an FPI and/or URI in declared notations are not retrieved automatically by the parsers themselves. Instead, these parsers just provide to the application the parsed FPI and/or URI associated to the notations found in the parsed SGML or XML document, and with a facility for a dictionary containing all notation names declared in the DTD; these validating parsers also check the uniqueness of notation name declarations, and report a validation error if some notation names are used anywhere in the DTD or in the document body but not declared:If the application can't use any notation (or if their FPI and/or URI are unknown or not supported in their local catalogue), these notations may be either ignored silently by the application or the application could signal an error.Otherwise, the applications decide themselves how to interpret them, then if the external entities must be retrieved and then parsed separately.Applications may then signal an error, if such interpretation, retrieval or separate parsing fails.Unrecognized notations that may cause an application to signal an error should not block interpretation of the validated document using them.XML DTDs and schema validationThe XML DTD syntax is one of several XML schema languages. However, many of the schema languages do not fully replace the XML DTD. Notably, the XML DTD allows defining entities and notations that have no direct equivalents in DTD-less XML (because internal entities and parsable external entities are not part of XML schema languages, and because other unparsed external entities and notations have no simple equivalent mappings in most XML schema languages).Most XML schema languages are only replacements for element declarations and attribute list declarations, in such a way that it becomes possible to parse XML documents with non-validating XML parsers (if the only purpose of the external DTD subset was to define the schema). In addition, documents for these XML schema languages must be parsed separately, so validating the schema of XML documents in pure standalone mode is not really possible with these languages: the document type declaration remains necessary for at least identifying (with a XML Catalogue) the schema used in the parsed XML document and that is validated in another language.A common misconception holds that a non-validating XML parser does not have to read document type declarations, when in fact, the document type declarations must still be scanned for correct syntax as well as validity of declarations, and the parser must still parse all entity declarations in the internal subset, and substitute the replacement texts of internal entities occurring anywhere in the document type declaration or in the document body.A non-validating parser may, however, elect not to read parsable external entities (including the external subset), and does not have to honour the content model restrictions defined in element declarations and in attribute list declarations.If the XML document depends on parsable external entities (including the specified external subset, or parsable external entities declared in the internal subset), it should assert standalone="no" in its XML declaration. The validating DTD may be identified by using XML Catalogues to retrieve its specified external subset.In the example below, the XML document is declared with standalone="no" because it has an external subset in its document type declaration:<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE people_list SYSTEM "example.dtd"> <people_list /> If the XML document type declaration includes any SYSTEM identifier for the external subset, it can't be safely processed as standalone: the URI should be retrieved, otherwise there may be unknown named character entities whose definition may be needed to correctly parse the effective XML syntax in the internal subset or in the document body (the XML syntax parsing is normally performed after the substitution of all named entities, excluding the five entities that are predefined in XML and that are implicitly substituted after parsing the XML document into lexical tokens). If it just includes any PUBLIC identifier, it may be processed as standalone, if the XML processor knows this PUBLIC identifier in its local catalogue from where it can retrieve an associated DTD entity.XML DTD schema exampleAn example of a very simple external XML DTD to describe the schema of a list of persons might consist of:<!ELEMENT people_list (person)*> <!ELEMENT person (name, birthdate?, gender?, socialsecuritynumber?)> <!ELEMENT name (#PCDATA)> <!ELEMENT birthdate (#PCDATA)> <!ELEMENT gender (#PCDATA)> <!ELEMENT socialsecuritynumber (#PCDATA)> Taking this line by line:people_list is a valid element name, and an instance of such an element contains any number of person elements. The * denotes there can be 0 or more person elements within the people_list element.person is a valid element name, and an instance of such an element contains one element named name, followed by one named birthdate (optional), then gender (also optional) and socialsecuritynumber (also optional). The ? indicates that an element is optional. The reference to the name element name has no ?, so a person element must contain a name element.name is a valid element name, and an instance of such an element contains "parsed character data" (#PCDATA).birthdate is a valid element name, and an instance of such an element contains parsed character data.gender is a valid element name, and an instance of such an element contains parsed character data.socialsecuritynumber is a valid element name, and an instance of such an element contains parsed character data.An example of an XML file that uses and conforms to this DTD follows. The DTD is referenced here as an external subset, via the SYSTEM specifier and a URI. It assumes that we can identify the DTD with the relative URI reference "example.dtd"; the "people_list" after "!DOCTYPE" tells us that the root tags, or the first element defined in the DTD, is called "people_list":<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE people_list SYSTEM "example.dtd"> <people_list>  <person>  <name>Fred Bloggs</name>  <birthdate>2008-11-27</birthdate>  <gender>Male</gender>  </person> </people_list> One can render this in an XML-enabled browser (such as Internet Explorer or Mozilla Firefox) by pasting and saving the DTD component above to a text file named example.dtd and the XML file to a differently-named text file, and opening the XML file with the browser. The files should both be saved in the same directory. However, many browsers do not check that an XML document confirms to the rules in the DTD; they are only required to check that the DTD is syntactically correct. For security reasons, they may also choose not to read the external DTD.The same DTD can also be embedded directly in the XML document itself as an internal subset, by encasing it within [square brackets] in the document type declaration, in which case the document no longer depends on external entities and can be processed in standalone mode:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE people_list [  <!ELEMENT people_list (person*)>  <!ELEMENT person (name, birthdate?, gender?, socialsecuritynumber?)>  <!ELEMENT name (#PCDATA)>  <!ELEMENT birthdate (#PCDATA)>  <!ELEMENT gender (#PCDATA)>  <!ELEMENT socialsecuritynumber (#PCDATA)> ]> <people_list>  <person>  <name>Fred Bloggs</name>  <birthdate>2008-11-27</birthdate>  <gender>Male</gender>  </person> </people_list> Alternatives to DTDs (for specifying schemas) are available:XML Schema, also referred to as XML Schema Definition (XSD), has achieved Recommendation status within the W3C,[8] and is popular for "data oriented" (that is, transactional non-publishing) XML use because of its stronger typing and easier round-tripping to Java declarations.[citation needed] Most of the publishing world has found that the added complexity of XSD would not bring them any particular benefits,[citation needed] so DTDs are still far more popular there. An XML Schema Definition is itself an XML document while a DTD is not.RELAX NG, which is also a part of DSDL, is an ISO international standard.[9] It is more expressive than XSD,[citation needed] while providing a simpler syntax,[citation needed] but commercial software support has been slow in coming.Security[edit]An XML DTD can be used to create a denial of service (DoS) attack by defining nested entities that expand exponentially, or by sending the XML parser to an external resource that never returns. For this reason, .NET Framework provides a property that allows prohibiting or skipping DTD parsing, and recent versions of Microsoft Office applications (Microsoft Office 2010 and higher) refuse to open XML files that contain DTD declarations”.

Comments from Our Customers

Very easy to get used to. This should be called PDF-Text for Dummies. I literally had this program up and running in less than 5 minutes of downloading and installing it.

Justin Miller