| 1387 | */ |
| 1388 | |
| 1389 | static const xmlChar * |
| 1390 | xmlSchemaGetComponentTargetNs(xmlSchemaBasicItemPtr item) |
| 1391 | { |
| 1392 | if (item == NULL) { |
| 1393 | return (NULL); |
| 1394 | } |
| 1395 | switch (item->type) { |
| 1396 | case XML_SCHEMA_TYPE_ELEMENT: |
| 1397 | return (((xmlSchemaElementPtr) item)->targetNamespace); |
| 1398 | case XML_SCHEMA_TYPE_ATTRIBUTE: |
| 1399 | return (((xmlSchemaAttributePtr) item)->targetNamespace); |
| 1400 | case XML_SCHEMA_TYPE_ATTRIBUTEGROUP: |
| 1401 | return (((xmlSchemaAttributeGroupPtr) item)->targetNamespace); |
| 1402 | case XML_SCHEMA_TYPE_BASIC: |
| 1403 | return (BAD_CAST "http://www.w3.org/2001/XMLSchema"); |
| 1404 | case XML_SCHEMA_TYPE_SIMPLE: |
| 1405 | case XML_SCHEMA_TYPE_COMPLEX: |
| 1406 | return (((xmlSchemaTypePtr) item)->targetNamespace); |
| 1407 | case XML_SCHEMA_TYPE_GROUP: |
| 1408 | return (((xmlSchemaModelGroupDefPtr) item)->targetNamespace); |
| 1409 | case XML_SCHEMA_TYPE_IDC_KEY: |
| 1410 | case XML_SCHEMA_TYPE_IDC_UNIQUE: |
| 1411 | case XML_SCHEMA_TYPE_IDC_KEYREF: |
| 1412 | return (((xmlSchemaIDCPtr) item)->targetNamespace); |
| 1413 | case XML_SCHEMA_TYPE_ATTRIBUTE_USE: |
| 1414 | if (WXS_ATTRUSE_DECL(item) != NULL) { |
| 1415 | return(xmlSchemaGetComponentTargetNs( |
| 1416 | WXS_BASIC_CAST WXS_ATTRUSE_DECL(item))); |
| 1417 | } |
| 1418 | /* TODO: Will returning NULL break something? */ |
| 1419 | break; |
| 1420 | case XML_SCHEMA_EXTRA_QNAMEREF: |
| 1421 | return (((xmlSchemaQNameRefPtr) item)->targetNamespace); |
| 1422 | case XML_SCHEMA_TYPE_NOTATION: |
| 1423 | return (((xmlSchemaNotationPtr) item)->targetNamespace); |
| 1424 | default: |
| 1425 | /* |
| 1426 | * Other components cannot have names. |
| 1427 | */ |
| 1428 | break; |
| 1429 | } |
| 1430 | return (NULL); |
| 1431 | } |
| 1432 | |
| 1433 | static const xmlChar* |
| 1434 | xmlSchemaGetComponentQName(xmlChar **buf, |
no outgoing calls
no test coverage detected