RomaricDrigon\MetaYaml\XsdNodeGenerator\XsdPatternNodeGenerator::build PHP Method

build() public method

public build ( $name, $node, XMLWriter &$writer, $under_root )
$writer XMLWriter
    public function build($name, $node, \XMLWriter &$writer, $under_root)
    {
        // always inside an xsd:element
        $writer->startElementNs('xsd', 'element', null);
        $writer->writeAttribute('name', $name);
        $this->addRequired($node, $writer, $under_root);
        // simpleType with restrictions
        $writer->startElementNs('xsd', 'simpleType', null);
        $writer->startElementNs('xsd', 'restriction', null);
        $writer->writeAttribute('base', 'xsd:string');
        $writer->startElementNs('xsd', 'pattern', null);
        $writer->writeAttribute('value', $node[$this->xsd_generator->getFullName('pattern')]);
        $writer->endElement();
        $writer->endElement();
        $writer->endElement();
        $writer->endElement();
    }

Usage Example

 public function testBase()
 {
     $this->if($xsd_generator = new XsdGenerator())->and($object = new testedClass($xsd_generator))->and($writer = new \XMLWriter())->and($writer->openMemory())->then->variable($object->build('test', array('_pattern' => '/test/'), $writer, false))->isNull()->string($writer->outputMemory())->isEqualTo('<xsd:element name="test" minOccurs="0"><xsd:simpleType><xsd:restriction base="xsd:string">' . '<xsd:pattern value="/test/"/></xsd:restriction></xsd:simpleType></xsd:element>');
 }
XsdPatternNodeGenerator