Beginning XML

Höfundur Joe Fawcett

Útgefandi Wiley Professional Development (P&T)

Snið Page Fidelity

Print ISBN 9781118162132

Útgáfa 5

Útgáfuár 2012

3.090 kr.

Description

Efnisyfirlit

  • Beginning XML
  • About the Authors
  • About the Technical Editor
  • Credits
  • Acknowledgments
  • Contents
  • Introduction
  • Who this Book is for
  • What this Book Covers
  • How this Book is Structured
  • What You Need to Use this Book
  • Conventions
  • Source Code
  • Errata
  • p2p.wrox.com
  • Part I: Introducing XML
  • Chapter 1: What is XML?
  • Steps Leading up to XML: Data Representation and Markups
  • Binary Files
  • Text Files
  • A Brief History of Markup
  • The Birth of XML
  • More Advantages of XML
  • XML Rules
  • Hierarchical Data Representation
  • Interoperability
  • XML in Practice
  • Data Versus Document
  • XML Scenarios
  • XML Technologies
  • Summary
  • Chapter 2: Well-Formed XML
  • What Does Well-Formed Mean?
  • Creating XML in a Text Editor
  • Forbidden Characters
  • XML Prolog
  • Creating Elements
  • Attributes
  • Element and Attribute Content
  • Processing Instructions
  • CDATA Sections
  • Advanced XML Parsing
  • XML Equivalence
  • Whitespace Handling
  • Error Handling
  • The XML Infoset
  • The Document Information Item
  • Element Information Items
  • Attribute Information Items
  • Processing Instruction Information Items
  • Character Information Item
  • Comment Information Item
  • Namespace Information Item
  • The Document Type Declaration Information Item
  • Unexpanded Entity Reference Information Item
  • Unparsed Entity Information Item
  • Notation Information Item
  • Summary
  • Chapter 3: XML Namespaces
  • Defining Namespaces
  • Why Do You Need Namespaces?
  • How Do You Choose a Namespace?
  • URLs, URIs, and URNs
  • Creating Your First Namespace
  • How to Declare a Namespace
  • How Exactly Does Scope Work?
  • Declaring More Than One Namespace
  • Changing a Namespace Declaration
  • Namespace Usage in the Real World
  • XML Schema
  • Documents with Multiple Namespaces
  • When to Use and Not Use Namespaces
  • When Namespaces are Needed
  • When Namespaces Are Not Needed
  • Versioning and Namespaces
  • Common Namespaces
  • The XML Namespace
  • The XMLNS Namespace
  • The XML Schema Namespace
  • The XSLT Namespace
  • The SOAP Namespaces
  • The WSDL Namespace
  • The Atom Namespace
  • The MathML Namespace
  • The Docbook Namespace
  • Summary
  • Part II: Validation
  • Chapter 4: Document Type Definitions
  • What Are Document Type Definitions?
  • Working with DTDs
  • Using jEdit
  • The Document Type Declaration in Detail
  • Sharing DTDs
  • Anatomy of a DTD
  • Element Declarations
  • Attribute Declarations
  • Entity Declarations
  • DTD Limitations
  • Summary
  • Chapter 5: XML Schemas
  • Benefits of XML Schemas
  • XML Schemas Use XML Syntax
  • XML Schema Namespace Support
  • XML Schema Data Types
  • XML Schema Content Models
  • XML Schema Specifications
  • XML Schemas in Practice
  • Defining XML Schemas
  • Declarations
  • Declarations
  • Mixed Content
  • Declarations
  • Declarations
  • An XML Schema for Contacts
  • Data Types
  • Declarations
  • Creating a Schema from Multiple Documents
  • Declarations
  • Declarations
  • Documenting XML Schemas
  • XML Schema 1.1
  • Relaxed Rules
  • Summary
  • Chapter 6: RELAX NG and Schematron
  • Why Do You Need More Ways of Validating XML?
  • Setting Up Your Environment
  • Using RELAX NG
  • Understanding the Basics of RELAX NG
  • Understanding RELAX NG’s Compact Syntax
  • Converting Between the Two RELAX NG Formats
  • Constraining Content
  • Reusing Code in RELAX NG Schema
  • Using Schematron
  • Understanding the Basics of Schematron
  • Choosing a Version of Schematron
  • Understanding the Basic Process
  • Writing Basic Rules in Schematron
  • Creating a Schematron Document
  • Adding More Information to Messages
  • Constraining Values in Schematron
  • Handling Co-Constraints in Schematron
  • Using Schematron from Within XML Schema
  • Summary
  • Part III: Processing
  • Chapter 7: Extracting Data From XML
  • Document Models: Representing XML in Memory
  • Meet the Models: DOM, XDM, and PSVI
  • A Sample DOM Tree
  • DOM Node Types
  • DOM Node Lists
  • The Limitations of DOM
  • The XPath Language
  • XPath Basics
  • XPath Predicates: The Full Story
  • XPath Steps and Axes
  • XPath Expressions
  • Variables in XPath Expressions
  • New Expressions in XPath 2
  • XPath Functions
  • XPath Set Operations
  • XPath and Namespaces
  • Summary
  • Chapter 8: XSLT
  • What XSLT Is Used For
  • XSLT as a Declarative Language
  • How Is XSLT a Functional Language?
  • Setting Up Your XSLT Development Environment
  • Setting Up Saxon for .NET
  • Setting Up Saxon for Java
  • Foundational XSLT Elements
  • The Element
  • The Element
  • The Element
  • The Element
  • The Element
  • Push-Processing versus Pull-Processing
  • The Role of XPath in XSLT
  • Using Named Templates
  • The Element
  • The document() Function in XSLT
  • Conditional Logic
  • The element
  • The Element
  • and Elements
  • Reusing Code in XSLT
  • The Element
  • The Element
  • The Mode Attribute
  • Understanding Built-In Templates and Built-In Rules
  • Using XSLT 2.0
  • Understanding Data Types in XSLT 2.0
  • Creating User-Defined Functions
  • Creating Multiple Output Documents
  • Using the collection() Function
  • Grouping in XSLT 2.0
  • Handling Non-XML Input with XSLT 2.0
  • XSLT and XPath 3.0: What’s Coming Next?
  • Summary
  • Part IV: Databases
  • Chapter 9: XQuery
  • XQuery, XPath, and XSLT
  • XQuery and XSLT
  • XQuery and XPath
  • XQuery in Practice
  • Standalone XQuery Applications
  • Part of SQL
  • Callable from Java or Other Languages
  • A Native-XML Server
  • XQuery Anywhere
  • Building Blocks of XQuery
  • FLWOR Expressions, Modules, and Functions
  • XQuery Expressions Do Not Have a Default Context
  • The Anatomy of a Query Expression
  • The Version Declaration
  • The Query Prolog
  • The Query Body
  • Some Optional XQuery Features
  • XQuery and XPath Full Text
  • The XQuery Update Facility
  • XQuery Scripting Extension
  • Coming in XQuery 3.0
  • Grouping and Windowing
  • The count Clause
  • Try and Catch
  • switch Expressions
  • Function Items and Higher Order Functions
  • JSON Features
  • XQuery, Linked Data, and the Semantic Web
  • Summary
  • Chapter 10: XML and Databases
  • Understanding Why Databases Need to Handle XML
  • Analyzing which XML Features are Needed in a Database
  • Retrieving Documents
  • Retrieving Data from Documents
  • Updating XML Documents
  • Displaying Relational Data as XML
  • Presenting XML as Relational Data
  • Using MySQL with XML
  • Installing MySQL
  • Adding Information in MySQL
  • Querying MySQL
  • Updating XML in MySQL
  • Usability of XML in MySQL
  • Client-Side XML Support
  • Using SQL Server with XML
  • Installing SQL Server
  • Presenting Relational Data as XML
  • Understanding the xml Data Type
  • Creating Indexes with the xml Data Type
  • W3C XML Schema in SQL Server
  • Dealing with Namespaced Documents
  • Using eXist with XML
  • Downloading and Installing eXist
  • Interacting with eXist
  • Summary
  • Part V: Programming
  • Chapter 11: Event-Driven Programming
  • Understanding Sequential Processing
  • Using SAX in Sequential Processing
  • Preparing to Run the Examples
  • Receiving SAX Events
  • Handling Invalid Content
  • Using the DTDHandler Interface
  • EntityResolver Interface
  • Understanding Features and Properties
  • Using XmlReader
  • Using XmlReaderSettings
  • Controlling External Resources
  • Summary
  • Chapter 12: LINQ to XML
  • What Is LINQ?
  • Why You Need LINQ to XML
  • Using LINQ to XML
  • Creating Documents
  • Creating Documents with Namespaces
  • Creating Documents with Prefixed Namespaces
  • Extracting Data from an XML Document
  • Modifying Documents
  • Adding Content to a Document
  • Removing Content from a Document
  • Updating and Replacing Existing Content in a Document
  • Transforming Documents
  • Using VB.NET XML Features
  • Using VB.NET XML Literals
  • Understanding Axis Properties in VB.NET
  • Managing Namespaces in VB.NET
  • Summary
  • Part VI: Communication
  • Chapter 13: RSS, ATOM, and Content Syndication
  • Syndication
  • XML Syndication
  • Syndication Systems
  • Format Anatomy
  • Working with News Feeds
  • Newsreaders
  • Data Quality
  • A Simple Aggregator
  • Modeling Feeds
  • Program Flow
  • Implementation
  • Extending the Aggregator
  • Transforming RSS with XSLT
  • Generating a Feed from Existing Data
  • Processing Feed Data for Display
  • Browser Processing
  • Preprocessing Feed Data
  • Reviewing the Different Formats
  • Useful Resources
  • Summary
  • Chapter 14: Web Services
  • What Is an RPC?
  • RPC Protocols
  • COM and DCOM
  • COBRA and IIOP
  • Java RMI
  • The New RPC Protocol: Web Services
  • The Same Origin Policy
  • Understanding XML-RPC
  • Choosing a Network Transport
  • Understanding REST Services
  • The Web Services Stack
  • SOAP
  • WSDL
  • UDDI
  • Surrounding Specifications
  • Summary
  • Chapter 15: SOAP and WSDL
  • Laying the Groundwork
  • The New RPC Protocol: SOAP
  • Comparing SOAP to REST
  • Basic SOAP Messages
  • More Complex SOAP Interactions
  • Defining Web Services: WSDL
  • Other Bindings
  • Summary
  • Chapter 16: AJAX
  • AJAX Overview
  • AJAX Provides Feedback
  • Loading Incomplete Data With AJAX
  • AJAX Performs Asynchronous Operations
  • Introduction to JavaScript
  • The Web Browser Console
  • Values, Expressions, and Variables
  • Control Flow Statements
  • Properties, Objects, Functions and Classes
  • The XMLHttpRequest Function
  • Using HTTP Methods with AJAX
  • Accessibility Considerations
  • The jQuery Library
  • Learning jQuery
  • The Domain-Specific Language (DSL) Approach
  • jQuery Plug-ins and Add-On Libraries
  • JSON and AJAX
  • JSON Example
  • JSON Syntax
  • JSON and jQuery
  • JSONP and CORS
  • The Web Sever Back End
  • Sending Images and Other Non-Textual Data
  • Performance
  • The Server Logs Are Your Friend
  • A Larger Example
  • Summary
  • Part VII: Display
  • Chapter 17: XHTML and HTML 5
  • Background of SGML
  • HTML and SGML
  • XML and SGML
  • The Open Web Platform
  • Introduction to XHTML
  • The XHTML Element
  • The XHTML Element
  • The XHTML Element
  • More Advanced HTML Topics
  • XHTML and HTML: Problems and Workarounds
  • Cascading Style Sheets (CSS)
  • CSS Levels and Versions
  • CSS at a Glance
  • CSS Selectors
  • CSS Properties
  • CSS Special Rules
  • CSS and XML
  • Separating Style and Markup: Unobtrusive CSS
  • Unobtrusive JavaScript
  • HTML 5
  • Benefits of HTML 5
  • Caveats of HTML 5
  • New Elements in HTML 5
  • Summary
  • Chapter 18: Scalable Vector Graphics (SVG)
  • Scalable Vector Graphics and Bitmaps
  • Procedural Graphics
  • Declarative Graphics
  • Bitmap Graphics
  • Vector Images
  • SVG Images
  • The SVG Graphics Model
  • SVG and CSS
  • SVG Tools
  • SVG Basic Built-in Shapes
  • Rectangles
  • Circles
  • Ellipses
  • Straight Lines
  • Polylines and Polygons
  • SVG Paths
  • SVG Transforms and Groups
  • Transforms
  • Groups
  • SVG Definitions and Metadata
  • The SVG and <desc> Elements</li> <li>The SVG <metadata> Element</li> <li>The SVG <defs> Element and Reusable Content</li> <li>Viewports and Coordinates</li> <li>SVG Colors and Gradients</li> <li>Including Bitmap Images in SVG</li> <li>SVG Text and Fonts</li> <li>SVG Animation Four Ways</li> <li>Synchronized Multimedia Integration Language (SMIL)</li> <li>Scripted Animation</li> <li>CSS Animation</li> <li>External Libraries</li> <li>SVG and HTML 5</li> <li>SVG and Web Apps</li> <li>Making SVG with XQuery or XSLT</li> <li>Resources</li> <li>Summary</li> <li>Part VIII: Case Study</li> <li>Chapter 19: Case Study: XML in publishing</li> <li>Background</li> <li>Project Introduction: Current Workflow</li> <li>Introducing a New XML-Based Workflow</li> <li>Consultations</li> <li>Documenting the Project</li> <li>Prototyping</li> <li>Creating a New Process</li> <li>Challenging Criteria</li> <li>The New Workflow</li> <li>Document Conversion and Technologies</li> <li>Costs and Benefits Analysis</li> <li>Deployment</li> <li>Some Technical Aspects</li> <li>XQuery and Modules</li> <li>XInclude</li> <li>Equations and MathML</li> <li>XProc: An XML Pipelining Language</li> <li>XForms, REST, and XQuery</li> <li>Formatting to PDF with XSL-FO</li> <li>XML Markup for Documentation</li> <li>Markup for the Humanities: TEI</li> <li>The Hoy Books Website</li> <li>Summary</li> <li>Appendix A: Answers to Exercises</li> <li>Appendix B: XPath Functions</li> <li>Appendix C: XML Schema Data Types</li> <li>Index</li> <li>Advertisement</li> </ul> </div><span class="read-more-toggle">Show More</span> <style> .product-desc-toggle { max-height: 200px; overflow: hidden; position: relative; transition: max-height 0.3s ease; } .product-desc-toggle.expanded { max-height: none; } .read-more-toggle { display: inline-block; margin-top: 10px; color: #0071a1; cursor: pointer; font-weight: bold; } </style> <script> document.addEventListener("DOMContentLoaded", function () { const desc = document.querySelector(".product-desc-toggle"); const btn = document.querySelector(".read-more-toggle"); if (desc && btn) { btn.addEventListener("click", function () { desc.classList.toggle("expanded"); btn.textContent = desc.classList.contains("expanded") ? "Show Less" : "Show More"; }); } }); </script> </div> <div class="woocommerce-Tabs-panel woocommerce-Tabs-panel--additional_information panel entry-content wc-tab" id="tab-additional_information" role="tabpanel" aria-labelledby="tab-title-additional_information"> <h2>Additional information</h2> <table class="woocommerce-product-attributes shop_attributes" aria-label="Product Details"> <tr class="woocommerce-product-attributes-item woocommerce-product-attributes-item--attribute_veldu-v%c3%b6ru"> <th class="woocommerce-product-attributes-item__label" scope="row">Veldu vöru</th> <td class="woocommerce-product-attributes-item__value"><p>Rafbók til eignar</p> </td> </tr> </table> </div> <div class="woocommerce-Tabs-panel woocommerce-Tabs-panel--reviews panel entry-content wc-tab" id="tab-reviews" role="tabpanel" aria-labelledby="tab-title-reviews"> <div id="reviews" class="woocommerce-Reviews"> <div id="comments"> <h2 class="woocommerce-Reviews-title"> Reviews </h2> <p class="woocommerce-noreviews">There are no reviews yet.</p> </div> <div id="review_form_wrapper"> <div id="review_form"> <div id="respond" class="comment-respond"> <span id="reply-title" class="comment-reply-title" role="heading" aria-level="3">Be the first to review “Beginning XML” <small><a rel="nofollow" id="cancel-comment-reply-link" href="/rafbaekur/beginning-xml/#respond" style="display:none;">Hætta við svar</a></small></span><form action="https://bokakaup.is/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Netfang þitt verður ekki birt.</span> <span class="required-field-message">Nauðsynlegir reitir eru merktir <span class="required">*</span></span></p><div class="comment-form-rating"><label for="rating" id="comment-form-rating-label">Your rating <span class="required">*</span></label><select name="rating" id="rating" required> <option value="">Rate…</option> <option value="5">Perfect</option> <option value="4">Good</option> <option value="3">Average</option> <option value="2">Not that bad</option> <option value="1">Very poor</option> </select></div><p class="comment-form-comment"><label for="comment">Your review <span class="required">*</span></label><textarea id="comment" name="comment" cols="45" rows="8" required></textarea></p><p class="comment-form-author"><label for="author">Name <span class="required">*</span></label><input id="author" name="author" type="text" autocomplete="name" value="" size="30" required /></p> <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label><input id="email" name="email" type="email" autocomplete="email" value="" size="30" required /></p> <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Save my name, email, and website in this browser for the next time I comment.</label></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Submit" /> <input type='hidden' name='comment_post_ID' value='83942' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p></form> </div><!-- #respond --> </div> </div> <div class="clear"></div> </div> </div> </div> </div> </div> </div> </div> </div> </section> <section class="elementor-section elementor-top-section elementor-element elementor-element-c436e5c elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c436e5c" data-element_type="section"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b9d745c" data-id="b9d745c" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-34359aa elementor-widget elementor-widget-heading" data-id="34359aa" data-element_type="widget" data-widget_type="heading.default"> <div class="elementor-widget-container"> <h2 class="elementor-heading-title elementor-size-default">Aðrar vörur</h2> </div> </div> <div class="elementor-element elementor-element-e177e00 elementor-grid-4 elementor-grid-tablet-3 elementor-grid-mobile-2 elementor-products-grid elementor-wc-products show-heading-yes elementor-widget elementor-widget-woocommerce-product-related" data-id="e177e00" data-element_type="widget" data-widget_type="woocommerce-product-related.default"> <div class="elementor-widget-container"> <section class="related products"> <h2>Related products</h2> <ul class="products elementor-grid columns-4"> <li class="product type-product post-79331 status-publish first instock product_cat-book product_cat-ebook has-post-thumbnail taxable shipping-taxable purchasable product-type-variable"> <a href="https://bokakaup.is/rafbaekur/against-borders/" class="woocommerce-LoopProduct-link woocommerce-loop-product__link"><img width="480" height="736" src="https://bokakaup.is/wp-content/uploads/2025/01/Against Borders - 9781839761966-480.jpg" class="attachment-full size-full" alt="Against Borders" decoding="async" srcset="https://bokakaup.is/wp-content/uploads/2025/01/Against%20Borders%20-%209781839761966-480.jpg 480w, https://bokakaup.is/wp-content/uploads/2025/01/Against%20Borders%20-%209781839761966-480-196x300.jpg 196w" sizes="(max-width: 480px) 100vw, 480px" /><h2 class="woocommerce-loop-product__title">Against Borders</h2> <span class="price"><span class="woocommerce-Price-amount amount"><bdi>2.590 <span class="woocommerce-Price-currencySymbol">kr.</span></bdi></span></span> </a><a href="?add-to-cart=79331&variation_id=79333" data-quantity="1" class="button product_type_variable add_to_cart_button ajax_add_to_cart" data-product_id="79331" data-variation_id="79333" aria-label="Against Borders" rel="nofollow">Add to cart</a> <span id="woocommerce_loop_add_to_cart_link_describedby_79331" class="screen-reader-text"> This product has multiple variants. The options may be chosen on the product page </span> </li> <li class="product type-product post-79307 status-publish instock product_cat-book product_cat-ebook has-post-thumbnail taxable shipping-taxable purchasable product-type-variable"> <a href="https://bokakaup.is/rafbaekur/abnormal-psychology-international-adaptation/" class="woocommerce-LoopProduct-link woocommerce-loop-product__link"><img loading="lazy" width="480" height="615" src="https://bokakaup.is/wp-content/uploads/2025/01/Abnormal Psychology, International Adaptation - 9781119859949-480.jpg" class="attachment-full size-full" alt="Abnormal Psychology, International Adaptation" decoding="async" srcset="https://bokakaup.is/wp-content/uploads/2025/01/Abnormal%20Psychology,%20International%20Adaptation%20-%209781119859949-480.jpg 480w, https://bokakaup.is/wp-content/uploads/2025/01/Abnormal%20Psychology,%20International%20Adaptation%20-%209781119859949-480-234x300.jpg 234w" sizes="(max-width: 480px) 100vw, 480px" /><h2 class="woocommerce-loop-product__title">Abnormal Psychology, International Adaptation</h2> <span class="price"><span class="woocommerce-Price-amount amount"><bdi>8.790 <span class="woocommerce-Price-currencySymbol">kr.</span></bdi></span></span> </a><a href="https://bokakaup.is/rafbaekur/abnormal-psychology-international-adaptation/" aria-describedby="woocommerce_loop_add_to_cart_link_describedby_79307" data-quantity="1" class="button product_type_variable add_to_cart_button" data-product_id="79307" data-product_sku="" aria-label="Select options for “Abnormal Psychology, International Adaptation”" rel="nofollow">Select options</a> <span id="woocommerce_loop_add_to_cart_link_describedby_79307" class="screen-reader-text"> This product has multiple variants. The options may be chosen on the product page </span> </li> <li class="product type-product post-79299 status-publish instock product_cat-book product_cat-ebook has-post-thumbnail taxable shipping-taxable purchasable product-type-variable"> <a href="https://bokakaup.is/rafbaekur/a-vindication-of-the-rights-of-woman/" class="woocommerce-LoopProduct-link woocommerce-loop-product__link"><img loading="lazy" width="480" height="766" src="https://bokakaup.is/wp-content/uploads/2025/01/A Vindication of the Rights of Woman - 9780486115542-480.jpg" class="attachment-full size-full" alt="A Vindication of the Rights of Woman" decoding="async" srcset="https://bokakaup.is/wp-content/uploads/2025/01/A%20Vindication%20of%20the%20Rights%20of%20Woman%20-%209780486115542-480.jpg 480w, https://bokakaup.is/wp-content/uploads/2025/01/A%20Vindication%20of%20the%20Rights%20of%20Woman%20-%209780486115542-480-188x300.jpg 188w" sizes="(max-width: 480px) 100vw, 480px" /><h2 class="woocommerce-loop-product__title">A Vindication of the Rights of Woman</h2> <span class="price"><span class="woocommerce-Price-amount amount"><bdi>190 <span class="woocommerce-Price-currencySymbol">kr.</span></bdi></span></span> </a><a href="?add-to-cart=79299&variation_id=79301" data-quantity="1" class="button product_type_variable add_to_cart_button ajax_add_to_cart" data-product_id="79299" data-variation_id="79301" aria-label="A Vindication of the Rights of Woman" rel="nofollow">Add to cart</a> <span id="woocommerce_loop_add_to_cart_link_describedby_79299" class="screen-reader-text"> This product has multiple variants. The options may be chosen on the product page </span> </li> <li class="product type-product post-79289 status-publish last instock product_cat-book product_cat-ebook has-post-thumbnail taxable shipping-taxable purchasable product-type-variable"> <a href="https://bokakaup.is/rafbaekur/a-concise-history-of-italy/" class="woocommerce-LoopProduct-link woocommerce-loop-product__link"><img loading="lazy" width="480" height="756" src="https://bokakaup.is/wp-content/uploads/2025/01/A Concise History of Italy - 9781107720244-480.jpg" class="attachment-full size-full" alt="A Concise History of Italy" decoding="async" srcset="https://bokakaup.is/wp-content/uploads/2025/01/A%20Concise%20History%20of%20Italy%20-%209781107720244-480.jpg 480w, https://bokakaup.is/wp-content/uploads/2025/01/A%20Concise%20History%20of%20Italy%20-%209781107720244-480-190x300.jpg 190w" sizes="(max-width: 480px) 100vw, 480px" /><h2 class="woocommerce-loop-product__title">A Concise History of Italy</h2> <span class="price"><span class="woocommerce-Price-amount amount"><bdi>3.590 <span class="woocommerce-Price-currencySymbol">kr.</span></bdi></span></span> </a><a href="?add-to-cart=79289&variation_id=79291" data-quantity="1" class="button product_type_variable add_to_cart_button ajax_add_to_cart" data-product_id="79289" data-variation_id="79291" aria-label="A Concise History of Italy" rel="nofollow">Add to cart</a> <span id="woocommerce_loop_add_to_cart_link_describedby_79289" class="screen-reader-text"> This product has multiple variants. The options may be chosen on the product page </span> </li> </ul> </section> </div> </div> </div> </div> </div> </section> </div> <div data-elementor-type="footer" data-elementor-id="62" class="elementor elementor-62 elementor-location-footer" data-elementor-post-type="elementor_library"> <section class="elementor-section elementor-top-section elementor-element elementor-element-8b34938 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8b34938" data-element_type="section" data-settings="{"background_background":"classic"}"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-24f10246" data-id="24f10246" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-154141ab elementor-widget elementor-widget-image" data-id="154141ab" data-element_type="widget" data-widget_type="image.default"> <div class="elementor-widget-container"> <a href="https://bokakaup.is"> <img fetchpriority="high" width="3199" height="913" src="https://bokakaup.is/wp-content/uploads/2025/01/cropped-BokakaupLogo.png" class="attachment-full size-full wp-image-110218" alt="" srcset="https://bokakaup.is/wp-content/uploads/2025/01/cropped-BokakaupLogo.png 3199w, https://bokakaup.is/wp-content/uploads/2025/01/cropped-BokakaupLogo-300x86.png 300w, https://bokakaup.is/wp-content/uploads/2025/01/cropped-BokakaupLogo-1024x292.png 1024w, https://bokakaup.is/wp-content/uploads/2025/01/cropped-BokakaupLogo-768x219.png 768w, https://bokakaup.is/wp-content/uploads/2025/01/cropped-BokakaupLogo-1536x438.png 1536w, https://bokakaup.is/wp-content/uploads/2025/01/cropped-BokakaupLogo-2048x585.png 2048w, https://bokakaup.is/wp-content/uploads/2025/01/cropped-BokakaupLogo-600x171.png 600w" sizes="(max-width: 3199px) 100vw, 3199px" /> </a> </div> </div> <div class="elementor-element elementor-element-7d606d5 elementor-widget elementor-widget-text-editor" data-id="7d606d5" data-element_type="widget" data-widget_type="text-editor.default"> <div class="elementor-widget-container"> <p>Bókakaup sérhæfir sig í sölu á rafbókum.</p> </div> </div> </div> </div> <div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-2dbb2b11" data-id="2dbb2b11" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-30be3dc2 elementor-widget elementor-widget-heading" data-id="30be3dc2" data-element_type="widget" data-widget_type="heading.default"> <div class="elementor-widget-container"> <h2 class="elementor-heading-title elementor-size-default">Bókakaup</h2> </div> </div> <div class="elementor-element elementor-element-7c85427b elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="7c85427b" data-element_type="widget" data-widget_type="icon-list.default"> <div class="elementor-widget-container"> <ul class="elementor-icon-list-items"> <li class="elementor-icon-list-item"> <a href="https://bokakaup.is/product-category/rafbaekur/"> <span class="elementor-icon-list-text">Rafbækur</span> </a> </li> <li class="elementor-icon-list-item"> <a href="https://bokakaup.is/ferlid/"> <span class="elementor-icon-list-text">Ferlið</span> </a> </li> <li class="elementor-icon-list-item"> <a href="https://bokakaup.is/hafdu-samband/"> <span class="elementor-icon-list-text">Hafa Samband</span> </a> </li> </ul> </div> </div> </div> </div> <div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-6729659d" data-id="6729659d" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-2837e901 elementor-widget elementor-widget-heading" data-id="2837e901" data-element_type="widget" data-widget_type="heading.default"> <div class="elementor-widget-container"> <h2 class="elementor-heading-title elementor-size-default">Um okkur</h2> </div> </div> <div class="elementor-element elementor-element-19032d4a elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="19032d4a" data-element_type="widget" data-widget_type="icon-list.default"> <div class="elementor-widget-container"> <ul class="elementor-icon-list-items"> <li class="elementor-icon-list-item"> <a href="https://bokakaup.is/thjonustuskilmalar/"> <span class="elementor-icon-list-text">Þjónustuskilmálar</span> </a> </li> <li class="elementor-icon-list-item"> <a href="https://bokakaup.is/personuverndarskilmalar/"> <span class="elementor-icon-list-text">Persónuverndarskilmálar </span> </a> </li> </ul> </div> </div> </div> </div> <div class="elementor-column elementor-col-25 elementor-top-column elementor-element elementor-element-21628d01" data-id="21628d01" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> <div class="elementor-element elementor-element-3ac43d0d elementor-widget elementor-widget-heading" data-id="3ac43d0d" data-element_type="widget" data-widget_type="heading.default"> <div class="elementor-widget-container"> <h2 class="elementor-heading-title elementor-size-default">Skráðu þig á póstlistann okkar</h2> </div> </div> <div class="elementor-element elementor-element-3d06ca22 elementor-button-align-stretch elementor-widget elementor-widget-form" data-id="3d06ca22" data-element_type="widget" data-settings="{"step_next_label":"Next","step_previous_label":"Previous","button_width":"100","step_type":"number_text","step_icon_shape":"circle"}" data-widget_type="form.default"> <div class="elementor-widget-container"> <form class="elementor-form" method="post" name="New Form"> <input type="hidden" name="post_id" value="62"/> <input type="hidden" name="form_id" value="3d06ca22"/> <input type="hidden" name="referer_title" value="Architectural Detailing: Function, Constructibility, Aesthetics" /> <input type="hidden" name="queried_id" value="83900"/> <div class="elementor-form-fields-wrapper elementor-labels-above"> <div class="elementor-field-type-email elementor-field-group elementor-column elementor-field-group-email elementor-col-100 elementor-field-required"> <input size="1" type="email" name="form_fields[email]" id="form-field-email" class="elementor-field elementor-size-sm elementor-field-textual" placeholder="Netfangið þitt" required="required" aria-required="true"> </div> <div class="elementor-field-group elementor-column elementor-field-type-submit elementor-col-100 e-form__buttons"> <button class="elementor-button elementor-size-sm" type="submit"> <span class="elementor-button-content-wrapper"> <span class="elementor-button-text">Skrá mig</span> </span> </button> </div> </div> </form> </div> </div> <div class="elementor-element elementor-element-651346de e-grid-align-left elementor-shape-rounded elementor-grid-0 elementor-widget elementor-widget-social-icons" data-id="651346de" data-element_type="widget" data-widget_type="social-icons.default"> <div class="elementor-widget-container"> <div class="elementor-social-icons-wrapper elementor-grid"> <span class="elementor-grid-item"> <a class="elementor-icon elementor-social-icon elementor-social-icon-facebook elementor-repeater-item-72c9a09" target="_blank"> <span class="elementor-screen-only">Facebook</span> <svg class="e-font-icon-svg e-fab-facebook" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z"></path></svg> </a> </span> <span class="elementor-grid-item"> <a class="elementor-icon elementor-social-icon elementor-social-icon-twitter elementor-repeater-item-132e75c" target="_blank"> <span class="elementor-screen-only">Twitter</span> <svg class="e-font-icon-svg e-fab-twitter" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path></svg> </a> </span> <span class="elementor-grid-item"> <a class="elementor-icon elementor-social-icon elementor-social-icon-youtube elementor-repeater-item-fd7b913" target="_blank"> <span class="elementor-screen-only">Youtube</span> <svg class="e-font-icon-svg e-fab-youtube" viewBox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z"></path></svg> </a> </span> </div> </div> </div> </div> </div> </div> </section> <section class="elementor-section elementor-top-section elementor-element elementor-element-4f14af5 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4f14af5" data-element_type="section" data-settings="{"background_background":"classic"}"> <div class="elementor-container elementor-column-gap-default"> <div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-57f587b1" data-id="57f587b1" data-element_type="column"> <div class="elementor-widget-wrap elementor-element-populated"> </div> </div> </div> </section> </div> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script> jQuery(function($) { // Function to inject the checkbox function addTermsCheckbox() { if ($('#custom_terms_checkbox').length === 0) { $('form.checkout .form-row.place-order').prepend(` <p class="form-row validate-required" id="custom_terms_wrapper"> <label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox"> <input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="custom_terms_checkbox" id="custom_terms_checkbox" /> <span>Ég hef lesið og samþykki skilmála</span> </label> </p> `); } } // Add it on page load addTermsCheckbox(); // Re-add it after WooCommerce AJAX updates the checkout $('body').on('updated_checkout', function() { addTermsCheckbox(); }); // Prevent form submission if checkbox isn't checked $('form.checkout').on('checkout_place_order', function(){ if (!$('#custom_terms_checkbox').is(':checked')) { alert('Samþykktu skilmála til að halda áfram.'); return false; } }); }); </script> <style> .custom-radio-section { display: none; } </style> <div class="xoo-wsc-markup-notices"></div> <div class="xoo-wsc-markup"> <div class="xoo-wsc-modal"> <div class="xoo-wsc-container"> <div class="xoo-wsc-basket"> <span class="xoo-wsc-items-count">0</span> <span class="xoo-wsc-bki xoo-wsc-icon-basket1"></span> </div> <div class="xoo-wsc-header"> <div class="xoo-wsch-top"> <div class="xoo-wsc-notice-container" data-section="cart"><ul class="xoo-wsc-notices"></ul></div> <div class="xoo-wsch-basket"> <span class="xoo-wscb-icon xoo-wsc-icon-bag2"></span> <span class="xoo-wscb-count">0</span> </div> <span class="xoo-wsch-text">Karfan þín</span> <span class="xoo-wsch-close xoo-wsc-icon-cross"></span> </div> </div> <div class="xoo-wsc-body"> <div class="xoo-wsc-empty-cart"><span>Karfan þín er tóm</span><a class="xoo-wsc-btn" href="https://bokakaup.is/product-category/rafbaekur/">Aftur í búð</a></div> </div> <div class="xoo-wsc-footer"> <div class="xoo-wsc-ft-buttons-cont"> <a href="#" class="xoo-wsc-ft-btn xoo-wsc-btn xoo-wsc-cart-close xoo-wsc-ft-btn-continue">Continue Shopping</a> </div> </div> <span class="xoo-wsc-loader"></span> <span class="xoo-wsc-icon-spinner8 xoo-wsc-loader-icon"></span> </div> <span class="xoo-wsc-opac"></span> </div> </div> <script type="text/javascript"> jQuery(document).ready(function(jQuery) { // Listen for DOM changes when the View Cart button is inserted jQuery(document).on('click', '.add_to_cart_button', function() { // Wait for the button to appear and change its text setTimeout(function() { jQuery('.added_to_cart.wc-forward').text('Ganga frá kaupum'); }, 500); // Add a slight delay to ensure the button is loaded }); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { $('#coupon_code').attr('placeholder', 'Afsláttarkóði'); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { $('.button.woocommerce-button.button.e-apply-coupon').text('Virkja'); }); </script> <script type="text/javascript"> jQuery(document).ready(function($) { $('select').each(function() { var $this = $(this); var firstOption = $this.find('option:first-child'); if (firstOption.text() === 'Choose an option') { firstOption.text('Valmöguleikar'); } }); }); </script> <script type='text/javascript'> const lazyloadRunObserver = () => { const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => { entries.forEach( ( entry ) => { if ( entry.isIntersecting ) { let lazyloadBackground = entry.target; if( lazyloadBackground ) { lazyloadBackground.classList.add( 'e-lazyloaded' ); } lazyloadBackgroundObserver.unobserve( entry.target ); } }); }, { rootMargin: '200px 0px 200px 0px' } ); lazyloadBackgrounds.forEach( ( lazyloadBackground ) => { lazyloadBackgroundObserver.observe( lazyloadBackground ); } ); }; const events = [ 'DOMContentLoaded', 'elementor/lazyload/observe', ]; events.forEach( ( event ) => { document.addEventListener( event, lazyloadRunObserver ); } ); </script> <div class="pswp" tabindex="-1" role="dialog" aria-modal="true" aria-hidden="true"> <div class="pswp__bg"></div> <div class="pswp__scroll-wrap"> <div class="pswp__container"> <div class="pswp__item"></div> <div class="pswp__item"></div> <div class="pswp__item"></div> </div> <div class="pswp__ui pswp__ui--hidden"> <div class="pswp__top-bar"> <div class="pswp__counter"></div> <button class="pswp__button pswp__button--zoom" aria-label="Zoom in/out"></button> <button class="pswp__button pswp__button--fs" aria-label="Toggle fullscreen"></button> <button class="pswp__button pswp__button--share" aria-label="Share"></button> <button class="pswp__button pswp__button--close" aria-label="Close (Esc)"></button> <div class="pswp__preloader"> <div class="pswp__preloader__icn"> <div class="pswp__preloader__cut"> <div class="pswp__preloader__donut"></div> </div> </div> </div> </div> <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap"> <div class="pswp__share-tooltip"></div> </div> <button class="pswp__button pswp__button--arrow--left" aria-label="Previous (arrow left)"></button> <button class="pswp__button pswp__button--arrow--right" aria-label="Next (arrow right)"></button> <div class="pswp__caption"> <div class="pswp__caption__center"></div> </div> </div> </div> </div> <script> (function () { var c = document.body.className; c = c.replace(/woocommerce-no-js/, 'woocommerce-js'); document.body.className = c; })(); </script> <script type="text/template" id="tmpl-variation-template"> <div class="woocommerce-variation-description">{{{ data.variation.variation_description }}}</div> <div class="woocommerce-variation-price">{{{ data.variation.price_html }}}</div> <div class="woocommerce-variation-availability">{{{ data.variation.availability_html }}}</div> </script> <script type="text/template" id="tmpl-unavailable-variation-template"> <p role="alert">Sorry, this product is unavailable. Please choose a different combination.</p> </script> <link rel='stylesheet' id='wc-blocks-style-css' href='https://bokakaup.is/wp-content/plugins/woocommerce/assets/client/blocks/wc-blocks.css?ver=wc-9.8.4' media='all' /> <link rel='stylesheet' id='widget-image-css' href='https://bokakaup.is/wp-content/plugins/elementor/assets/css/widget-image.min.css?ver=3.25.11' media='all' /> <link rel='stylesheet' id='widget-heading-css' href='https://bokakaup.is/wp-content/plugins/elementor/assets/css/widget-heading.min.css?ver=3.25.11' media='all' /> <link rel='stylesheet' id='widget-text-editor-css' href='https://bokakaup.is/wp-content/plugins/elementor/assets/css/widget-text-editor.min.css?ver=3.25.11' media='all' /> <link rel='stylesheet' id='widget-icon-list-css' href='https://bokakaup.is/wp-content/plugins/elementor/assets/css/widget-icon-list.min.css?ver=3.25.11' media='all' /> <link rel='stylesheet' id='widget-social-icons-css' href='https://bokakaup.is/wp-content/plugins/elementor/assets/css/widget-social-icons.min.css?ver=3.25.11' media='all' /> <link rel='stylesheet' id='e-apple-webkit-css' href='https://bokakaup.is/wp-content/plugins/elementor/assets/css/conditionals/apple-webkit.min.css?ver=3.25.11' media='all' /> <link rel='stylesheet' id='elementor-icons-ekiticons-css' href='https://bokakaup.is/wp-content/plugins/elementskit-lite/modules/elementskit-icon-pack/assets/css/ekiticons.css?ver=3.3.7' media='all' /> <script src="https://bokakaup.is/wp-content/themes/hello-elementor/assets/js/hello-frontend.min.js?ver=3.1.1" id="hello-theme-frontend-js"></script> <script src="https://bokakaup.is/wp-content/plugins/elementskit-lite/libs/framework/assets/js/frontend-script.js?ver=3.3.7" id="elementskit-framework-js-frontend-js"></script> <script id="elementskit-framework-js-frontend-js-after"> var elementskit = { resturl: 'https://bokakaup.is/wp-json/elementskit/v1/', } </script> <script src="https://bokakaup.is/wp-content/plugins/elementskit-lite/widgets/init/assets/js/widget-scripts.js?ver=3.3.7" id="ekit-widget-scripts-js"></script> <script src="https://bokakaup.is/wp-content/plugins/woocommerce/assets/js/sourcebuster/sourcebuster.min.js?ver=9.8.4" id="sourcebuster-js-js"></script> <script id="wc-order-attribution-js-extra"> var wc_order_attribution = {"params":{"lifetime":1.0000000000000000818030539140313095458623138256371021270751953125e-5,"session":30,"base64":false,"ajaxurl":"https:\/\/bokakaup.is\/wp-admin\/admin-ajax.php","prefix":"wc_order_attribution_","allowTracking":true},"fields":{"source_type":"current.typ","referrer":"current_add.rf","utm_campaign":"current.cmp","utm_source":"current.src","utm_medium":"current.mdm","utm_content":"current.cnt","utm_id":"current.id","utm_term":"current.trm","utm_source_platform":"current.plt","utm_creative_format":"current.fmt","utm_marketing_tactic":"current.tct","session_entry":"current_add.ep","session_start_time":"current_add.fd","session_pages":"session.pgs","session_count":"udata.vst","user_agent":"udata.uag"}}; </script> <script src="https://bokakaup.is/wp-content/plugins/woocommerce/assets/js/frontend/order-attribution.min.js?ver=9.8.4" id="wc-order-attribution-js"></script> <script src="https://bokakaup.is/wp-content/plugins/elementor-pro/assets/lib/sticky/jquery.sticky.min.js?ver=3.23.3" id="e-sticky-js"></script> <script src="https://bokakaup.is/wp-includes/js/underscore.min.js?ver=1.13.7" id="underscore-js"></script> <script id="wp-util-js-extra"> var _wpUtilSettings = {"ajax":{"url":"\/wp-admin\/admin-ajax.php"}}; </script> <script src="https://bokakaup.is/wp-includes/js/wp-util.min.js?ver=6.8.1" id="wp-util-js"></script> <script id="wc-add-to-cart-variation-js-extra"> var wc_add_to_cart_variation_params = {"wc_ajax_url":"\/?wc-ajax=%%endpoint%%","i18n_no_matching_variations_text":"Sorry, no products matched your selection. Please choose a different combination.","i18n_make_a_selection_text":"Please select some product options before adding this product to your cart.","i18n_unavailable_text":"Sorry, this product is unavailable. Please choose a different combination.","i18n_reset_alert_text":"Your selection has been reset. Please select some product options before adding this product to your cart."}; </script> <script src="https://bokakaup.is/wp-content/plugins/woocommerce/assets/js/frontend/add-to-cart-variation.min.js?ver=9.8.4" id="wc-add-to-cart-variation-js" defer data-wp-strategy="defer"></script> <script src="https://bokakaup.is/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=3.23.3" id="elementor-pro-webpack-runtime-js"></script> <script src="https://bokakaup.is/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=3.25.11" id="elementor-webpack-runtime-js"></script> <script src="https://bokakaup.is/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=3.25.11" id="elementor-frontend-modules-js"></script> <script src="https://bokakaup.is/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script> <script src="https://bokakaup.is/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script id="wp-i18n-js-after"> wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); </script> <script id="elementor-pro-frontend-js-before"> var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/bokakaup.is\/wp-admin\/admin-ajax.php","nonce":"7f76014b21","urls":{"assets":"https:\/\/bokakaup.is\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/bokakaup.is\/wp-json\/"},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"woocommerce":{"menu_cart":{"cart_page_url":"https:\/\/bokakaup.is","checkout_page_url":"https:\/\/bokakaup.is\/checkout\/","fragments_nonce":"4e3cca1d59"}},"facebook_sdk":{"lang":"is_IS","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/bokakaup.is\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; </script> <script src="https://bokakaup.is/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=3.23.3" id="elementor-pro-frontend-js"></script> <script src="https://bokakaup.is/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js"></script> <script id="elementor-frontend-js-before"> var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Share on Facebook","shareOnTwitter":"Share on Twitter","pinIt":"Pin it","download":"Download","downloadImage":"Download image","fullscreen":"Fullscreen","zoom":"Zoom","share":"Share","playVideo":"Play Video","previous":"Previous","next":"Next","close":"Close","a11yCarouselWrapperAriaLabel":"Carousel | Horizontal scrolling: Arrow Left & Right","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile Portrait","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile Landscape","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Laptop","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":false},"version":"3.25.11","is_static":false,"experimentalFeatures":{"e_font_icon_svg":true,"additional_custom_breakpoints":true,"e_swiper_latest":true,"e_nested_atomic_repeaters":true,"e_optimized_control_loading":true,"e_onboarding":true,"e_css_smooth_scroll":true,"theme_builder_v2":true,"hello-theme-header-footer":true,"home_screen":true,"nested-elements":true,"editor_v2":true,"e_element_cache":true,"link-in-bio":true,"floating-buttons":true,"display-conditions":true,"form-submissions":true,"taxonomy-filter":true,"search":true},"urls":{"assets":"https:\/\/bokakaup.is\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/bokakaup.is\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/bokakaup.is\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"842bbef595"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title","lightbox_description_src":"description","woocommerce_notices_elements":[],"hello_header_logo_type":"logo","hello_header_menu_layout":"horizontal","hello_footer_logo_type":"logo"},"post":{"id":83942,"title":"Beginning%20XML%20%E2%80%93%20B%C3%B3kakaup","excerpt":"<p> <span class=\"book_meta_name\"> H\u00f6fundur <\/span> <span class=\"book_meta_value\"> Joe Fawcett <\/span> <\/p><p> <span class=\"book_meta_name\"> \u00datgefandi <\/span> <span class=\"book_meta_value\"> Wiley Professional Development (P&T) <\/span> <\/p><p> <span class=\"book_meta_name\"> Sni\u00f0 <\/span> <span class=\"book_meta_value\"> Page Fidelity <\/span> <\/p><p> <span class=\"book_meta_name\"> Print ISBN <\/span> <span class=\"book_meta_value\"> 9781118162132 <\/span> <\/p><p> <span class=\"book_meta_name\"> \u00datg\u00e1fa <\/span> <span class=\"book_meta_value\"> 5 <\/span> <\/p><p> <span class=\"book_meta_name\"> \u00datg\u00e1fu\u00e1r <\/span> <span class=\"book_meta_value\"> 2012 <\/span> <\/p>","featuredImage":"https:\/\/bokakaup.is\/wp-content\/uploads\/2025\/01\/Beginning XML - 9781118226124-480.jpg"}}; </script> <script src="https://bokakaup.is/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=3.25.11" id="elementor-frontend-js"></script> <script src="https://bokakaup.is/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=3.23.3" id="pro-elements-handlers-js"></script> <script src="https://bokakaup.is/wp-content/plugins/elementskit-lite/widgets/init/assets/js/animate-circle.min.js?ver=3.3.7" id="animate-circle-js"></script> <script id="elementskit-elementor-js-extra"> var ekit_config = {"ajaxurl":"https:\/\/bokakaup.is\/wp-admin\/admin-ajax.php","nonce":"47e474dd2f"}; </script> <script src="https://bokakaup.is/wp-content/plugins/elementskit-lite/widgets/init/assets/js/elementor.js?ver=3.3.7" id="elementskit-elementor-js"></script> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', function() { var labels = document.querySelectorAll('span.wc-block-components-totals-item__label'); labels.forEach(function(label) { if (label.textContent.trim() === 'Total') { // Assuming 'Total' is the text to replace label.textContent = 'Samtals'; } }); }); </script> </body> </html> <!-- Page supported by LiteSpeed Cache 6.5.2 on 2025-05-18 23:18:44 -->