Use the arguments and argument nodes. These call setData on the block. As such, you can retrieve these values later by calling the getData() method.
<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:View/
Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="block.name">
<arguments>
<argument name="test_variable" xsi:type="string">
I'm here at Bajaj Blog
</argument>
</arguments>
</referenceBlock>
</body>
</page>
Arguments values set in a layout file can be accessed in templates using the get{ArgumentName}() and has{ArgumentName}() methods. The latter returns a boolean defining whether there’s any value set. {ArgumentName} is obtained from the name attribute the following way: for getting the value of <argument name=”some_string”> the method name is getSomeString().
Example: Setting a value of css_class in the [app/code/Magento/Theme/view/frontend/layout/default.xml] layout file:
<arguments>
<argument name="css_class" xsi:type="string">header links</argument>
</arguments>
Using the value of css_class in [app/code/Magento/Theme/view/frontend/templates/html/title.phtml]:
$cssClass = $this->hasCssClass() ? ' ' . $this->getCssClass() : '';