@@ -1417,6 +1417,24 @@ abc`)).rejects.toBeTruthy();
1417
1417
] ) ;
1418
1418
} ) ;
1419
1419
1420
+ // 2.8
1421
+ it ( 'its:dir on node elements' , async ( ) => {
1422
+ const array = await parse ( parser , `<?xml version="1.0"?>
1423
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1424
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
1425
+ xmlns:ex="http://example.org/stuff/1.0/"
1426
+ xmlns:its="http://www.w3.org/2005/11/its">
1427
+ <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar" xml:lang="en-us" its:dir="ltr">
1428
+ <dc:title>RDF 1.1 XML Syntax</dc:title>
1429
+ </rdf:Description>
1430
+ </rdf:RDF>` ) ;
1431
+ return expect ( array )
1432
+ . toBeRdfIsomorphic ( [
1433
+ quad ( 'http://www.w3.org/TR/rdf-syntax-grammar' , 'http://purl.org/dc/elements/1.1/title' ,
1434
+ '"RDF 1.1 XML Syntax"@en-us--ltr' ) ,
1435
+ ] ) ;
1436
+ } ) ;
1437
+
1420
1438
// 2.7
1421
1439
it ( 'xml:lang on nested node elements' , async ( ) => {
1422
1440
const array = await parse ( parser , `<?xml version="1.0"?>
@@ -1438,6 +1456,28 @@ abc`)).rejects.toBeTruthy();
1438
1456
] ) ;
1439
1457
} ) ;
1440
1458
1459
+ // 2.8
1460
+ it ( 'its:dir on nested node elements' , async ( ) => {
1461
+ const array = await parse ( parser , `<?xml version="1.0"?>
1462
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1463
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
1464
+ xmlns:ex="http://example.org/stuff/1.0/"
1465
+ xmlns:its="http://www.w3.org/2005/11/its">
1466
+ <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar" xml:lang="en-us" its:dir="ltr">
1467
+ <ex:editor>
1468
+ <rdf:Description>
1469
+ <dc:title>RDF 1.1 XML Syntax</dc:title>
1470
+ </rdf:Description>
1471
+ </ex:editor>
1472
+ </rdf:Description>
1473
+ </rdf:RDF>` ) ;
1474
+ return expect ( array )
1475
+ . toBeRdfIsomorphic ( [
1476
+ quad ( 'http://www.w3.org/TR/rdf-syntax-grammar' , 'http://example.org/stuff/1.0/editor' , '_:b' ) ,
1477
+ quad ( '_:b' , 'http://purl.org/dc/elements/1.1/title' , '"RDF 1.1 XML Syntax"@en-us--ltr' ) ,
1478
+ ] ) ;
1479
+ } ) ;
1480
+
1441
1481
// 2.7
1442
1482
it ( 'xml:lang resets on node elements' , async ( ) => {
1443
1483
const array = await parse ( parser , `<?xml version="1.0"?>
@@ -1459,6 +1499,28 @@ abc`)).rejects.toBeTruthy();
1459
1499
] ) ;
1460
1500
} ) ;
1461
1501
1502
+ // 2.8
1503
+ it ( 'its:dir resets on node elements' , async ( ) => {
1504
+ const array = await parse ( parser , `<?xml version="1.0"?>
1505
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1506
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
1507
+ xmlns:ex="http://example.org/stuff/1.0/"
1508
+ xmlns:its="http://www.w3.org/2005/11/its">
1509
+ <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar" xml:lang="en-us" its:dir="ltr">
1510
+ <ex:editor>
1511
+ <rdf:Description xml:lang="" its:dir="">
1512
+ <dc:title>RDF 1.1 XML Syntax</dc:title>
1513
+ </rdf:Description>
1514
+ </ex:editor>
1515
+ </rdf:Description>
1516
+ </rdf:RDF>` ) ;
1517
+ return expect ( array )
1518
+ . toBeRdfIsomorphic ( [
1519
+ quad ( 'http://www.w3.org/TR/rdf-syntax-grammar' , 'http://example.org/stuff/1.0/editor' , '_:b' ) ,
1520
+ quad ( '_:b' , 'http://purl.org/dc/elements/1.1/title' , '"RDF 1.1 XML Syntax"' ) ,
1521
+ ] ) ;
1522
+ } ) ;
1523
+
1462
1524
// 2.7
1463
1525
it ( 'xml:lang on property elements' , async ( ) => {
1464
1526
const array = await parse ( parser , `<?xml version="1.0"?>
@@ -1476,6 +1538,24 @@ abc`)).rejects.toBeTruthy();
1476
1538
] ) ;
1477
1539
} ) ;
1478
1540
1541
+ // 2.8
1542
+ it ( 'its:dir on property elements' , async ( ) => {
1543
+ const array = await parse ( parser , `<?xml version="1.0"?>
1544
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1545
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
1546
+ xmlns:ex="http://example.org/stuff/1.0/"
1547
+ xmlns:its="http://www.w3.org/2005/11/its">
1548
+ <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
1549
+ <dc:title xml:lang="en-us" its:dir="rtl">RDF 1.1 XML Syntax</dc:title>
1550
+ </rdf:Description>
1551
+ </rdf:RDF>` ) ;
1552
+ return expect ( array )
1553
+ . toBeRdfIsomorphic ( [
1554
+ quad ( 'http://www.w3.org/TR/rdf-syntax-grammar' , 'http://purl.org/dc/elements/1.1/title' ,
1555
+ '"RDF 1.1 XML Syntax"@en-us--rtl' ) ,
1556
+ ] ) ;
1557
+ } ) ;
1558
+
1479
1559
// 2.7
1480
1560
it ( 'xml:lang resets on property elements' , async ( ) => {
1481
1561
const array = await parse ( parser , `<?xml version="1.0"?>
@@ -1497,6 +1577,28 @@ abc`)).rejects.toBeTruthy();
1497
1577
] ) ;
1498
1578
} ) ;
1499
1579
1580
+ // 2.8
1581
+ it ( 'its:dir resets on property elements' , async ( ) => {
1582
+ const array = await parse ( parser , `<?xml version="1.0"?>
1583
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1584
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
1585
+ xmlns:ex="http://example.org/stuff/1.0/"
1586
+ xmlns:its="http://www.w3.org/2005/11/its">
1587
+ <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar" xml:lang="en-us" its:dir="rtl">
1588
+ <ex:editor>
1589
+ <rdf:Description>
1590
+ <dc:title xml:lang="" its:dir="">RDF 1.1 XML Syntax</dc:title>
1591
+ </rdf:Description>
1592
+ </ex:editor>
1593
+ </rdf:Description>
1594
+ </rdf:RDF>` ) ;
1595
+ return expect ( array )
1596
+ . toBeRdfIsomorphic ( [
1597
+ quad ( 'http://www.w3.org/TR/rdf-syntax-grammar' , 'http://example.org/stuff/1.0/editor' , '_:b' ) ,
1598
+ quad ( '_:b' , 'http://purl.org/dc/elements/1.1/title' , '"RDF 1.1 XML Syntax"' ) ,
1599
+ ] ) ;
1600
+ } ) ;
1601
+
1500
1602
// 2.7
1501
1603
it ( 'mixed xml:lang usage' , async ( ) => {
1502
1604
const array = await parse ( parser , `<?xml version="1.0"?>
@@ -1532,6 +1634,42 @@ abc`)).rejects.toBeTruthy();
1532
1634
] ) ;
1533
1635
} ) ;
1534
1636
1637
+ // 2.8
1638
+ it ( 'mixed its:dir usage' , async ( ) => {
1639
+ const array = await parse ( parser , `<?xml version="1.0"?>
1640
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
1641
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
1642
+ xmlns:ex="http://example.org/stuff/1.0/"
1643
+ xmlns:its="http://www.w3.org/2005/11/its">
1644
+ <rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar">
1645
+ <dc:title>RDF 1.1 XML Syntax</dc:title>
1646
+ <dc:title xml:lang="en" its:dir="ltr">RDF 1.1 XML Syntax</dc:title>
1647
+ <dc:title xml:lang="en-US" its:dir="rtl">RDF 1.1 XML Syntax</dc:title>
1648
+ </rdf:Description>
1649
+
1650
+ <rdf:Description rdf:about="http://example.org/buecher/baum" xml:lang="de" its:dir="ltr">
1651
+ <dc:title>Der Baum</dc:title>
1652
+ <dc:description>Das Buch ist außergewöhnlich</dc:description>
1653
+ <dc:title xml:lang="en" its:dir="rtl">The Tree</dc:title>
1654
+ </rdf:Description>
1655
+ </rdf:RDF>` ) ;
1656
+ return expect ( array )
1657
+ . toBeRdfIsomorphic ( [
1658
+ quad ( 'http://www.w3.org/TR/rdf-syntax-grammar' , 'http://purl.org/dc/elements/1.1/title' ,
1659
+ '"RDF 1.1 XML Syntax"' ) ,
1660
+ quad ( 'http://www.w3.org/TR/rdf-syntax-grammar' , 'http://purl.org/dc/elements/1.1/title' ,
1661
+ '"RDF 1.1 XML Syntax"@en--ltr' ) ,
1662
+ quad ( 'http://www.w3.org/TR/rdf-syntax-grammar' , 'http://purl.org/dc/elements/1.1/title' ,
1663
+ '"RDF 1.1 XML Syntax"@en-us--rtl' ) ,
1664
+ quad ( 'http://example.org/buecher/baum' , 'http://purl.org/dc/elements/1.1/title' ,
1665
+ '"Der Baum"@de--ltr' ) ,
1666
+ quad ( 'http://example.org/buecher/baum' , 'http://purl.org/dc/elements/1.1/description' ,
1667
+ '"Das Buch ist au\u00DFergew\u00F6hnlich"@de--ltr' ) ,
1668
+ quad ( 'http://example.org/buecher/baum' , 'http://purl.org/dc/elements/1.1/title' ,
1669
+ '"The Tree"@en--rtl' ) ,
1670
+ ] ) ;
1671
+ } ) ;
1672
+
1535
1673
// 2.9
1536
1674
it ( 'rdf:datatype on property elements' , async ( ) => {
1537
1675
const array = await parse ( parser , `<?xml version="1.0"?>
0 commit comments